Error codes · Permissions and account
Insufficient scope
Code
insufficient_scopeStatus403
If this was an orderBought nothing — an earlier copy may have: resume the same id
Send it again unchanged?No — change something first
.NET SDK
AuthorizationExceptionAn earlier copy of this order may have gone through
This request bought nothing, but it was refused before Anis looked at the order, so it says nothing about an earlier attempt with the same operation id. Fix the cause first (restore access, or fix how the request is signed), then resume the same id (or read it with GET /orders/{operationId}). Never place it again under a new id.
What it means
Your application may not make this call: its permissions do not include the one this route needs, or the call came from an address outside the application’s allowed networks. Both get this same answer on purpose.
What to do
- Read your profile (
GET /profile) from the same host. If it answers, your network is accepted: compare the permissions it lists with the one this route needs. If it is refused asinsufficient_scopetoo, the cause is the network you call from (or a missingprofile:read). - Check that you call from one of the networks agreed with Anis.
- Ask Anis staff to change either; the change applies to your next call.
- On an order: refused before Anis looked at the order, so it says nothing about an earlier attempt with the same operation id. Restore access first, then resume the same id (or read it with
GET /orders/{operationId}). Never place it again under a new id.
Where you can meet it
- GETRead your profile
/v1/profile - GETList wallets
/v1/wallets - GETRead a wallet
/v1/wallets/{walletId} - GETList catalogue categories
/v1/wallets/{walletId}/catalog/categories - GETList subcategories of a category
/v1/wallets/{walletId}/catalog/categories/{categoryId}/subcategories - GETRead a subcategory
/v1/wallets/{walletId}/catalog/subcategories/{subcategoryId} - GETList cards for sale
/v1/wallets/{walletId}/catalog/subcategories/{subcategoryId}/cards - GETRead a catalogue card
/v1/wallets/{walletId}/catalog/cards/{cardId} - POSTPlace an order
/v1/wallets/{walletId}/orders - GETRead an order
/v1/orders/{operationId} - GETList owned cards
/v1/wallets/{walletId}/owned-cards - GETRead an owned card
/v1/wallets/{walletId}/owned-cards/{soldCardId} - POSTReveal a card
/v1/wallets/{walletId}/owned-cards/{soldCardId}/reveal - POSTReveal an invoice
/v1/wallets/{walletId}/invoices/{invoiceId}/owned-cards/reveal - POSTCheck your signature
/v1/diagnostics/signature - GETList your allowed addresses
/v1/application/networks - POSTAllow one more address
/v1/application/networks - POSTRemove an address you added
/v1/application/networks/remove - GETGet meter packages
/v1/wallets/{walletId}/meter-packages - GETGet my meter charges
/v1/wallets/{walletId}/meter-charges - POSTCharge a meter
/v1/wallets/{walletId}/meter-charges - GETRead a meter charge
/v1/meter-charges/{operationId} - GETGet direct recharge products
/v1/wallets/{walletId}/direct-recharge-products - GETRead a direct recharge product
/v1/wallets/{walletId}/direct-recharge-products/{productId} - GETGet recipient locations
/v1/wallets/{walletId}/direct-recharge-products/{productId}/locations - GETQuote a direct recharge product
/v1/wallets/{walletId}/direct-recharge-products/{productId}/quote - GETGet my direct recharges
/v1/wallets/{walletId}/direct-recharges - POSTRequest a direct recharge product
/v1/wallets/{walletId}/direct-recharges - GETRead a direct recharge
/v1/direct-recharges/{operationId} - PATCHCorrect a suspended recipient
/v1/direct-recharges/{operationId}/recipient - GETRead your webhook endpoint
/v1/webhook-endpoint - PUTSet your webhook endpoint
/v1/webhook-endpoint - POSTTest your webhook endpoint
/v1/webhook-endpoint/test - GETGet webhook deliveries
/v1/webhook-events - POSTRedeliver a webhook
/v1/webhook-events/{eventId}/redeliver
Example
The body of the refusal. Its type is the address of this page.
{
"type": "https://developers.anis.ly/errors/insufficient-scope",
"title": "Insufficient scope",
"status": 403,
"code": "insufficient_scope",
"requestId": "01J9R2K8T4V6XQ0M3B7C5D9E1F"
}