Scopes

Every API key is minted with a list of scopes that determine what it can do. Scopes are checked at the gateway before your request reaches the underlying service.

A request with a key that doesn’t carry the required scope returns:

{
  "success": false,
  "error": {
    "code": "FORBIDDEN",
    "message": "This endpoint requires the 'payments:create' scope."
  }
}

HTTP 403.

Available scopes

ScopeEndpointsNotes
payments:createPOST /v1/paymentsCreate PaymentIntents. The most common scope for checkout integrations.
payments:readGET /v1/payments/*Retrieve payments, list payments. Read-only.
refunds:createPOST /v1/refundsIssue refunds. Sensitive — keep separate from your checkout key when possible.
transfers:createPOST /v1/transfersWallet-to-wallet sends. Required for platforms that move money between Soxara users on their users’ behalf.
gift_cards:redeemPOST /v1/gift-cards/{id}/redeemRedeem a gift card at the point of sale. Typical scope for POS terminals.
gift_cards:createPOST /v1/gift-cardsIssue new gift cards. Sensitive — separate from redeem.
bill_payments:createPOST /v1/bill-paymentsInitiate utility bill payments (LEC, LWSC, etc.).
webhooks:managePOST/PATCH/DELETE /v1/webhook-endpointsConfigure webhook endpoints. Usually a separate “admin” key, not your checkout key.
merchant:readGET /v1/merchantRead your own merchant profile, scope-list, settlement schedule.

Picking scopes

Two rules:

  1. Least privilege. A frontend checkout integration needs payments:create only. A back-office refund worker needs refunds:create and nothing else. A POS terminal needs gift_cards:redeem and that’s it.

  2. One key per role. Don’t mint one master key with every scope and use it everywhere. If your POS gets compromised, the only blast radius is gift card redemption — not your entire payment surface.

Default scopes

A new key created from the business dashboard defaults to:

  • payments:create
  • payments:read

These are the minimum to handle a checkout flow. Add more scopes to the key, or mint a separate key, as your integration grows.

What scope a request needs

Every endpoint in the API Reference lists its required scope at the top of the page. A request without that scope fails fast at the gateway — your downstream services never see the call.