Account API
Enables users to manage their Vonage API Account by programmable means. More information is available here: https://developer.nexmo.com/en/account/overview.
Available Operations
Top Up Account Balance
You can top up your account using this API when you have enabled auto-reload in the dashboard. The amount added by the top-up operation will be the same amount as was added in the payment when auto-reload was enabled. Your account balance is checked every 5-10 minutes and if it falls below the threshold and auto-reload is enabled, then it will be topped up automatically. Use this endpoint if you need to top up at times when your credit may be exhausted more quickly than the auto-reload may occur.
8ef2447e69604f642ae59363aa5f781bThe transaction reference of the transaction when balance was added and auto-reload was enabled on your account.
Example Request
POST /account/top-up HTTP/1.1
Host: rest.nexmo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 36
trx=8ef2447e69604f642ae59363aa5f781bPOST /account/top-up HTTP/1.1
Host: rest.nexmo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 36
trx=8ef2447e69604f642ae59363aa5f781bAvailable Operations
Change Account Settings
Update the default webhook URLs associated with your account:
- Callback URL for incoming SMS messages
- Callback URL for delivery receipts
Note that the URLs you provide must be valid and active. Vonage will check that they return a 200 OK response before the setting is saved.
https://example.com/webhooks/inbound-smsThe default webhook URL for inbound SMS. If an SMS is received at a Vonage number that does not have its own inbound SMS webhook configured, Vonage makes a request here. Send an empty string to unset this value.
https://example.com/webhooks/delivery-receiptThe webhook URL that Vonage makes a request to when a delivery receipt is available for an SMS sent by one of your Vonage numbers. Send an empty string to unset this value.
Example Request
POST /account/settings HTTP/1.1
Host: rest.nexmo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 114
moCallBackUrl=https://example.com/webhooks/inbound-sms&drCallBackUrl=https://example.com/webhooks/delivery-receiptPOST /account/settings HTTP/1.1
Host: rest.nexmo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 114
moCallBackUrl=https://example.com/webhooks/inbound-sms&drCallBackUrl=https://example.com/webhooks/delivery-receipthttps://example.com/webhooks/inbound-smsThe current or updated inbound message webhook URI
https://example.com/webhooks/delivery-receiptThe current or updated delivery receipt webhook URI
30The maximum number of outbound messages per second.
30The maximum number of inbound messages per second.
30The maximum number of API calls per second.
Example Response
{
"mo-callback-url": "https://example.com/webhooks/inbound-sms",
"dr-callback-url": "https://example.com/webhooks/delivery-receipt",
"max-outbound-request": 30,
"max-inbound-request": 30,
"max-calls-per-second": 30
}Secret Management
Many of the Vonage APIs are accessed using an API key and secret. It is recommended that you change or "rotate" your secrets from time to time for security purposes. This section provides the API interface for achieving this. Note: to work on secrets for your secondary accounts, you may authenticate with your primary credentials and supply the secondary API keys as URL parameters to these API endpoints.
Available Operations
Authentication
| Key | Description | Where | Example |
|---|---|---|---|
| Authorization | Base64 encoded API key and secret joined by a colon. | Headers | Basic <base64> |
| Provide an `Authorization` header, with a value of "Basic" followed by the result of base64-encoding your Vonage API key and secret separated by a colon. You can find your API key and secret on the [dashboard](${CUSTOMER_DASHBOARD_URL}) and more information is available [on the developer portal](https://developer.nexmo.com/concepts/guides/authentication#header-based-api-key-and-secret-authentication). If your API key were aaa012 and your API secret were abc123456789 then your HTTP header would be: `Authorization: Basic YWFhMDEyOmFiYzEyMzQ1Njc4OQ==` |
Links related to this resource
This resource
The URI for this resource
The single secrets key returns an array of API secrets
Array of API secrets
Links related to this resource
This resource
The URI for this resource
ad6dc56f-07b5-46e1-a527-85530e625800Secret ID
2017-03-02T16:34:49ZCreation date/time for this secret
Example Response
{
"_links": {
"self": {
"href": "string"
}
},
"_embedded": {
"secrets": [
{
"_links": {
"self": {
"href": "string"
}
},
"id": "ad6dc56f-07b5-46e1-a527-85530e625800",
"created_at": "2017-03-02T16:34:49Z"
}
]
}
}Authentication
| Key | Description | Where | Example |
|---|---|---|---|
| Authorization | Base64 encoded API key and secret joined by a colon. | Headers | Basic <base64> |
| Provide an `Authorization` header, with a value of "Basic" followed by the result of base64-encoding your Vonage API key and secret separated by a colon. You can find your API key and secret on the [dashboard](${CUSTOMER_DASHBOARD_URL}) and more information is available [on the developer portal](https://developer.nexmo.com/concepts/guides/authentication#header-based-api-key-and-secret-authentication). If your API key were aaa012 and your API secret were abc123456789 then your HTTP header would be: `Authorization: Basic YWFhMDEyOmFiYzEyMzQ1Njc4OQ==` |
example-4PI-secretThe new secret must follow these rules:
- minimum 8 characters
- maximum 25 characters
- minimum 1 lower case character
- minimum 1 upper case character
- minimum 1 digit
Example Request
{
"secret": "example-4PI-secret"
}{
"secret": "example-4PI-secret"
}Links related to this resource
This resource
The URI for this resource
ad6dc56f-07b5-46e1-a527-85530e625800Secret ID
2017-03-02T16:34:49ZCreation date/time for this secret
Example Response
{
"_links": {
"self": {
"href": "string"
}
},
"id": "ad6dc56f-07b5-46e1-a527-85530e625800",
"created_at": "2017-03-02T16:34:49Z"
}Authentication
| Key | Description | Where | Example |
|---|---|---|---|
| Authorization | Base64 encoded API key and secret joined by a colon. | Headers | Basic <base64> |
| Provide an `Authorization` header, with a value of "Basic" followed by the result of base64-encoding your Vonage API key and secret separated by a colon. You can find your API key and secret on the [dashboard](${CUSTOMER_DASHBOARD_URL}) and more information is available [on the developer portal](https://developer.nexmo.com/concepts/guides/authentication#header-based-api-key-and-secret-authentication). If your API key were aaa012 and your API secret were abc123456789 then your HTTP header would be: `Authorization: Basic YWFhMDEyOmFiYzEyMzQ1Njc4OQ==` |
Links related to this resource
This resource
The URI for this resource
ad6dc56f-07b5-46e1-a527-85530e625800Secret ID
2017-03-02T16:34:49ZCreation date/time for this secret
Example Response
{
"_links": {
"self": {
"href": "string"
}
},
"id": "ad6dc56f-07b5-46e1-a527-85530e625800",
"created_at": "2017-03-02T16:34:49Z"
}Authentication
| Key | Description | Where | Example |
|---|---|---|---|
| Authorization | Base64 encoded API key and secret joined by a colon. | Headers | Basic <base64> |
| Provide an `Authorization` header, with a value of "Basic" followed by the result of base64-encoding your Vonage API key and secret separated by a colon. You can find your API key and secret on the [dashboard](${CUSTOMER_DASHBOARD_URL}) and more information is available [on the developer portal](https://developer.nexmo.com/concepts/guides/authentication#header-based-api-key-and-secret-authentication). If your API key were aaa012 and your API secret were abc123456789 then your HTTP header would be: `Authorization: Basic YWFhMDEyOmFiYzEyMzQ1Njc4OQ==` |
Errors
The following is a non-exhaustive list of error codes that may occur while using this API.
These codes are in addition to any of our generic error codes.
| Code | Information |
|---|---|
| validation | Description The provided payload is invalid Resolution Modify your request to provide a valid payload.
|
| delete-last-secret | Description You can not delete your only API secret Resolution Add another API secret before deleting this one |