Quickstart
Sign in at /login, then open Dashboard → Developers → API Keys. Create a scoped key and save its secret immediately: secret keys are shown once. Send API requests only from your backend.
Explore typed contracts, exact payment verification rules, signed webhooks and safely gated production capabilities.
Backend-only keys with explicit capabilities.
Signed delivery with duplicate-safe processing.
Unavailable rails cannot be executed from the console.
Sign in at /login, then open Dashboard → Developers → API Keys. Create a scoped key and save its secret immediately: secret keys are shown once. Send API requests only from your backend.
Send agb_pk_ in x-public-key and agb_sk_ in x-secret-key. Available scopes are banks:read, transactions:read, virtual_accounts:write, and payouts:write. A missing scope returns a 403 FORBIDDEN error.
Send Idempotency-Key on payout requests and other retryable mutations. Reusing a key with a changed body returns 409 IDEMPOTENCY_CONFLICT.
Register an HTTPS endpoint in Dashboard → Developers → Webhook Endpoints. Verify x-arizona-signature as a lowercase hexadecimal HMAC-SHA256 digest of the unchanged raw HTTP body, using the endpoint signing secret shown once during setup. Events are payment.success and payment.failed. Example: {"eventId":"evt_01J...","type":"payment.success","createdAt":"2026-09-05T12:00:00.000Z","data":{"customerReference":"order_4021","status":"SUCCESS"}}. Reject invalid signatures and ignore duplicate eventId values.
Every API error contains exactly requestId, code, and a safe message. Use requestId when contacting support.
Create an idempotent sandbox payment and receive an Arizona-hosted checkout URL.
/api/v1/paymentsIdempotency-KeyUnique retry key for this payment request.
amountMinorPositive amount in kobo.
currencyNGN for this staging release.
customerReferenceUnique merchant order reference.
emailCustomer email.
callbackUrlHTTPS merchant return URL. A redirect never proves payment.
curl --request POST \
--url 'https://www.arizonaglobalbank.org/api/v1/payments' \
--header 'x-public-key: agb_pk_your_public_key' \
--header 'x-secret-key: agb_sk_your_secret_key' \
--header 'Idempotency-Key: payment_order_4021' \
--header 'content-type: application/json' \
--data '{"amountMinor":500000,"currency":"NGN","customerReference":"order_4021","email":"customer@example.com","callbackUrl":"https://merchant.example/paid"}'{
"requestId": "req_01JABC123",
"code": "PAYMENT_CREATED",
"data": {
"internalReference": "txn_66d9e21",
"customerReference": "order_4021",
"amountMinor": 500000,
"currency": "NGN",
"status": "PENDING",
"checkoutUrl": "https://www.arizonaglobalbank.org/pay/order_4021"
}
}401 UNAUTHORIZEDAPI credentials are missing, invalid, or inactive.
403 FORBIDDENThe API key does not have the required scope.
409 IDEMPOTENCY_CONFLICTThe key or customer reference conflicts with an existing request.
503 FEATURE_UNAVAILABLENo authorized provider is configured for the selected gateway mode.
Check application and database readiness without authentication.
/api/healthcurl --request GET \
--url 'https://www.arizonaglobalbank.org/api/health'{
"status": "ready",
"service": "arizona-global-bank-web",
"database": "connected",
"checkedAt": "2026-09-05T12:00:00.000Z"
}503 SERVICE_UNAVAILABLEThe application or database is not ready.
Return banks supplied by the configured banking provider.
/api/v1/bankscountryISO 3166-1 alpha-2 country code. Defaults to NG.
curl --request GET \
--url 'https://www.arizonaglobalbank.org/api/v1/banks' \
--header 'x-public-key: agb_pk_your_public_key' \
--header 'x-secret-key: agb_sk_your_secret_key'{
"requestId": "req_01JABC123",
"code": "BANKS_RETRIEVED",
"data": [
{
"code": "044",
"name": "Access Bank"
}
]
}401 UNAUTHORIZEDAPI credentials are missing, invalid, or inactive.
403 FORBIDDENThe API key does not have the required scope.
503 PROVIDER_UNAVAILABLEThe banking provider cannot currently serve the request.
Read an existing transaction by your own customer reference. Redirects and provider acceptance do not prove payment.
/api/v1/verify-transaction/{customerReference}customerReferenceThe exact reference your integration assigned to an existing transaction.
curl --request GET \
--url 'https://www.arizonaglobalbank.org/api/v1/verify-transaction/{customerReference}' \
--header 'x-public-key: agb_pk_your_public_key' \
--header 'x-secret-key: agb_sk_your_secret_key'{
"requestId": "req_01JABC123",
"code": "TRANSACTION_FOUND",
"data": {
"internalReference": "66d9e21...",
"customerReference": "order_4021",
"providerReference": null,
"currency": "NGN",
"amountMinor": 500000,
"status": "PENDING",
"createdAt": "2026-09-05T12:00:00.000Z"
}
}401 UNAUTHORIZEDAPI credentials are missing, invalid, or inactive.
403 FORBIDDENThe API key does not have the required scope.
404 TRANSACTION_NOT_FOUNDNo transaction belongs to this business and reference.
503 SERVICE_UNAVAILABLEThe application or database is unavailable.
This provider-dependent rail is not enabled.
/api/v1/virtual-accountcustomerIdYour stable customer identifier.
emailVerified customer email address.
curl --request POST \
--url 'https://www.arizonaglobalbank.org/api/v1/virtual-account' \
--header 'x-public-key: agb_pk_your_public_key' \
--header 'x-secret-key: agb_sk_your_secret_key' \
--header 'content-type: application/json' \
--data '{"customerId":"cus_2048","email":"customer@example.com"}'{
"requestId": "req_01JABC123",
"code": "FEATURE_UNAVAILABLE",
"message": "Virtual accounts are disabled pending provider, ledger, and reconciliation readiness."
}401 UNAUTHORIZEDAPI credentials are missing, invalid, or inactive.
403 FORBIDDENThe API key does not have the required scope.
503 FEATURE_UNAVAILABLEVirtual accounts are not currently enabled.
This provider-dependent rail is not enabled.
/api/v1/payoutsIdempotency-KeyUnique retry key for this payout request.
amountMinorPositive amount in kobo.
currencyISO currency code; initially NGN.
bankCodeProvider bank code from the banks endpoint.
accountNumberDestination account number.
customerReferenceUnique reference assigned by your integration.
curl --request POST \
--url 'https://www.arizonaglobalbank.org/api/v1/payouts' \
--header 'x-public-key: agb_pk_your_public_key' \
--header 'x-secret-key: agb_sk_your_secret_key' \
--header 'Idempotency-Key: payout_2048' \
--header 'content-type: application/json' \
--data '{"amountMinor":1000000,"currency":"NGN","bankCode":"058","accountNumber":"0123456789","customerReference":"payout_2048"}'{
"requestId": "req_01JABC123",
"code": "FEATURE_UNAVAILABLE",
"message": "Payouts are disabled pending ledger migration and provider configuration."
}401 UNAUTHORIZEDAPI credentials are missing, invalid, or inactive.
403 FORBIDDENThe API key does not have the required scope.
409 IDEMPOTENCY_CONFLICTThe key was already used with a different request body.
503 FEATURE_UNAVAILABLEPayouts are not currently enabled.
API contracts now distinguish availability, integer minor-unit amounts and normalized lifecycle states.
Application and database readiness are available through the health endpoint.
Contact support@arizonaglobalbank.org with the safe request ID—never send secret keys.