1. Authorization
Kobble
  • Introduction
  • API Fundamentals
    • Idempotency
    • Rate Limits
    • Healthcheck
      GET
  • Authorization
    • Authorization
    • Get access token
      POST
  • Beneficiaries
    • List all beneficiaries
      GET
    • Get beneficiary by ID
      GET
    • Create beneficiary
      POST
    • Create Payid beneficiary
      POST
    • Update beneficiary
      PATCH
  • Cards
    • Cards API
    • Card Creation Flow — Developer Guide & Onboarding
    • Get all cards
      GET
    • Create a new card
      POST
    • Get card by ID
      GET
    • Update card status
      PATCH
    • Replace or renew card
      POST
    • Generate card secret
      POST
    • Generate MeaWallet widget session token
      POST
  • Card Programs
    • Card Programs API
    • Get all programs
      GET
    • Create a new program
      POST
    • Get program by ID
      GET
  • Clients
    • Clients API
    • Get all clients
    • Get client by ID
    • Create a new client
    • Update client status
  • Endusers
    • Endusers API
    • Usage of Metadata on Endusers
    • Get all endusers
    • Create a new enduser
    • Get enduser by ID
    • Update enduser
  • Transactions
    • Transactions API
    • Get all transactions
    • Create a transaction
    • Get transaction by ID
    • Create manual credit transaction
    • Create manual debit transaction
  • Wallets
    • Wallets API
    • Get all wallets
    • Create a new wallet
    • Get wallet by ID
    • Update wallet
  • Relays
    • Relays API
    • Create subscription
  • Webhooks
    • Webhooks API
    • Webhook Signature Verification
    • Create a webhook
    • Report completed
    • Get all webhooks
    • Delete a webhook
  • Wallet Statements
    • Request a wallet statement
    • List wallet statements
    • Get a wallet statement
    • Get a wallet statement download URL
  • Card Art
    • Get a card art upload URL
    • Register a card art
    • List card arts
    • Get a card art
    • Update a card art
    • Activate a card art
    • Archive a card art
  • Verifications
    • List verifications for a subject
    • Create a verification (in development)
    • Get verification by ID
    • Get a Sum Sub SDK session token
    • Record a client-asserted outcome
  • Schemas
    • Schemas
    • CardWidgetSessionTokenResponse
    • 202 Accepted
    • Webhook
    • 201 Created
    • Relay
    • Create Beneficiary with bank details
    • Client
    • Beneficiary
    • Card
    • CardCreateInputDto
    • CardStatusUpdateDto
    • CardRenewReplaceInputDto
    • Program
    • MetadataKobbleDebit1
    • ProgramCreateInputDto
    • Person
    • Company
    • Enduser
    • Enduser Create Person Input
    • Enduser Create Company Input
    • Metadata
    • Enduser Create Input DTO
    • Transaction
    • TransactionCreateManualCreditInputDto
    • TransactionCreateInputDto
    • Wallet
    • WalletCreateInputDto
    • WalletUpdateInputDto
    • WalletStatement
    • WebhookNotification
    • ReportCompletedEntity
    • ReportCompletedNotification
    • CardArt
    • CardArtDetail
    • CardArtUploadUrlInput
    • CardArtUploadUrlResponse
    • CardArtCreateInput
    • CardArtPatchInput
    • Error
    • RelayCreateResponse
    • ScreeningSummary
    • VerificationPartyLink
    • Verification
    • VerificationSessionToken
  1. Authorization

Authorization

Kobble Authorization API#

Overview#

The Authorization API provides a secure mechanism to obtain an access token using the OAuth 2.0 client credentials flow. This access token is required to authenticate API requests in the system.

Authentication#

Every business endpoint requires two headers:
HeaderValue
AuthorizationBearer <access token>
x-client-idYour Kobble client identifier
The Bearer prefix is required. A token sent without it is rejected.
Request the access token from the Cognito host for your environment, not from the API host:
EnvironmentToken endpoint
Productionhttps://cognito.apikobble.net/oauth2/token
Staginghttps://cognito.staging.apikobble.net/oauth2/token
Tokens are valid for 3600 seconds. The token response carries no refresh token, so request a new token before the current one expires.
Two endpoints need no authentication: GET /customers/v1/health and POST /oauth2/token.
When authentication fails:
401 — the access token is missing or invalid.
403 — the token is valid but is not authorised for this operation, for example a missing scope. A 403 raised by client identification carries an empty body, {}.

Base URLs#

Use the appropriate base URL depending on the environment:
Production: https://apikobble.net/
Staging: https://staging.apikobble.net/
Ensure you prepend the base URL to each endpoint while making requests.
Each environment has its own Cognito user pool, so your staging client ID and secret will not authenticate against production. Production credentials are issued separately as part of go-live.

Endpoint#

URL:
oauth2/token
Method:
POST
Content-Type:
application/x-www-form-urlencoded

Request Parameters#

ParameterTypeRequiredDescription
grant_typestringYesOAuth 2.0 grant type. Must be client_credentials.
client_idstringYesThe client identifier issued during registration.
client_secretstringYesThe secret key associated with the client.
scopestringYesThe access scope. Options are:
- client/read
- client/write
- administrator/read
- administrator/write

Sample Request#

Sample Response#

Authorization API Notes and Error Codes#

Notes#

1.
The access_token is a JWT used to authenticate subsequent API requests.
2.
The token's lifespan is defined in the expires_in field (in seconds). A new token must be requested once it expires.
3.
The scope determines the level of access granted. Use the following based on your needs:
Read-only access:
client/read
administrator/read
Write access:
client/write
administrator/write
4.
Keep your client_secret secure and never expose it in your application code or client-side scripts.

Error Codes#

Status CodeDescription
400Bad Request - Invalid parameters or missing data.
401Unauthorized - Invalid credentials or token.
403Forbidden - The client is not allowed access to the requested resource.
500Internal Server Error - An issue occurred on the server.
Modified at 2026-09-16 02:23:39
Previous
Healthcheck
Next
Get access token
Built with