Origin-Based Voice Pricing

Plivo has started charging for outbound calls on the basis of the origin (caller ID). The corresponding prices are reflected on the pricing page and the Plivo console but are not yet reflected on our Pricing API. We’ll be releasing these new prices on our Pricing APIs beginning February 15, 2021, so that you have enough time to update your implementations, if you need to.

Destination-Based Pricing (current behavior)

Today, if you access the Plivo Pricing API to request the current voice pricing for a country, you’ll receive the unique voice price per destination prefix, if applicable, as shown below:

{
  "api_id": "7ff5505c-93ca-11e7-9bde-024427e23b8c",
  "country": "United States",
  "country_code": 1,
  "country_iso": "US",
  "message": {
    "inbound": {
      "rate": "0.00000"
    },
    "outbound": {
      "rate": "0.00350"
    },
    "outbound_networks_list": [{
        "group_name": "US",
        "rate": "0.00350"
      },
      {
        "group_name": "United States — AT&T Mobility",
        "rate": "0.00350"
      }
    ]
  },
  "phone_numbers": {
    "local": {
      "rate": "0.80000"
    },
    "tollfree": {
      "rate": "1.00000"
    }
  },
  "voice": {
    "inbound": {
      "ip": {
        "rate": "0.00300"
      },
      "local": {
        "rate": "0.00850"
      },
      "tollfree": {
        "rate": "0.02100"
      }
    },
    "outbound": {
      "ip": {
        "rate": "0.00300"
      },
      "local": {
        "rate": "0.00750"
      },
      "rates": [{
        "prefix": [
          "1"
        ],
        "rate": "0.00750"
      }],
      "tollfree": {
        "rate": null
      }
    }
  }
}

Origination-Based Pricing (starting February 15, 2021)

On being accessed, the Plivo Pricing API will start reflecting origin-based voice prices as well, as shown below:

{
 "api_id": "7ff5505c-93ca-11e7-9bde-024427e23b8a",
  "country": "United States",
  "country_code": 1,
  "country_iso": "US",
  "message": {
    "inbound": {
      "rate": "0.00000"
    },
    "outbound": {
      "rate": "0.00350"
    },
    "outbound_networks_list": [{
        "group_name": "US",
        "rate": "0.00350"
      },
      {
        "group_name": "United States - AT&T Mobility",
        "rate": "0.00350"
      }
    ]
  },
  "phone_numbers": {
    "local": {
      "rate": "0.80000"
    },
    "tollfree": {
      "rate": "1.00000"
    }
  },
  "voice": {
    "inbound": {
      "ip": {
        "rate": "0.00300"
      },
      "local": {
        "rate": "0.00850"
      },
      "tollfree": {
        "rate": "0.02100"
      }
    },
    "outbound": {
      "ip": {
        "rate": "0.00300"
      },
      "local": {
        "rate": "0.00750"
      },
      "rates": [
        {
          "prefix": [
            "1"
          ],
          "origination_prefix": [
            ""  //blank string represents default rate
          ],
          "rate": "0.00750"
        },
        {
          "prefix": [
            "1"
          ],
          "origination_prefix": [
            "1232", "1434", "1652"
          ],
          "rate": "0.0150"
        }
      ],
      "tollfree": {
        "rate": null
      }
    }
  }
}

What does this mean for your implementations?

  1. The new identifier origination_prefix will be added to each destination prefix voice rate. A blank string for this identifier represents the default rate for the destination prefix.
  2. Each destination prefix may now have more than one rate associated with it, with each rate corresponding to a set of origins.

If you have any questions concerning origin-based prices, or about these changes, reach out to our support team.