The Payments API gives you full programmatic control over the payment lifecycle. You can charge cards directly from your server without a hosted page, retrieve individual payments or paginated transaction lists, and issue refunds — all authenticated with your API key. Every charge is automatically deduplicated within a one-minute window, and 3D Secure challenges are surfaced as a structuredDocumentation Index
Fetch the complete documentation index at: https://docs.useaxra.com/llms.txt
Use this file to discover all available pages before exploring further.
requires_action response so you can redirect the cardholder without changing your integration.
The base URL for all Axra Pay API requests is
https://api.useaxra.com/api/v1. All requests must be made over HTTPS.Checkout sessions
Hosted checkout for cards and local rails.
Card payments
Server-to-server card charging.
Local payment methods
Bank transfers, mobile money, and instant EFT settled in USDC.
Charge a card (server-to-server)
POST /business/payment/charge
Use this endpoint to charge a card directly from your server. You must have server-to-server (S2S) charging enabled on your business account. If the card requires a 3DS challenge, the response will contain a requiresAction object instead of an immediate succeeded status — see 3DS authentication for the full flow.
Authentication
Pass your API key in thex-api-key header, or include a valid JWT Authorization: Bearer <token> header on every request.
Request parameters
Card details — provide eithercard or savedTokenId, not both.
Charge amount in major currency units (e.g.,
49.99 for $49.99). Do not pass cents.ISO 4217 currency code in lowercase (e.g.,
"usd", "eur", "ngn").Raw card details. Required if
savedTokenId is not provided. Supply this object only over a server-to-server connection — never expose card data on the client.A previously saved card token. Required if
card is not provided. Tokens are created when saveCard: true is included in a prior charge request.Customer email address. Used to send payment receipts.
A short description of the payment (e.g.,
"Order #1042"). Stored on the payment record and visible in your dashboard.Customer’s IP address. Recommended — Axra Pay’s fraud scoring engine uses this signal to assess risk.
URL to redirect the customer to after they complete (or cancel) a 3DS challenge. Required if your cards may trigger 3DS.
Customer billing address. Improves authorization rates and is required by some card networks for address verification.
When
true, Axra Pay tokenizes the card and returns a savedTokenId you can use for future charges without requiring the customer to re-enter card details.Arbitrary key-value pairs (string keys, string or number values). Stored on the payment and returned in webhook events. Useful for attaching internal order IDs or customer references.
Responses
Immediate success —status: "succeeded"
Unique Axra Pay identifier for this payment.
"succeeded" — the charge was accepted by the card network.Charged amount in major currency units, matching the request.
ISO 4217 currency code.
Axra transaction reference for this charge. Required when calling
POST /business/payment/confirm-3ds.ISO 8601 timestamp of when the charge was created.
status: "requires_action"
"requires_action" — the card issuer requires an additional authentication step before completing the charge.Example
Confirm a 3DS challenge
POST /business/payment/confirm-3ds
After a customer completes a 3DS challenge and is redirected back to your returnUrl, call this endpoint with the transactionId from the original charge response to finalize the payment.
Call this endpoint after the customer has completed the 3DS challenge in their browser. Calling it prematurely will result in a failed confirmation.
Request parameters
The
transactionId returned in the original POST /business/payment/charge response when status was "requires_action".Response fields
The Axra Pay payment identifier.
Final charge status:
"succeeded" or "failed".true if authentication and charge completed successfully.Transaction reference, matching the value from the original charge.
Example
Get a payment
GET /business/payment/:paymentId
Retrieve the full details of a single payment by its ID. Use this endpoint to check the current status of a payment, inspect fee breakdowns, or confirm settlement.
Path parameters
The unique Axra Pay payment ID (e.g.,
pay_01HXYZ123456).Response fields
Unique payment identifier.
Your Axra Pay business ID.
Charged amount in major currency units.
ISO 4217 currency code.
Payment lifecycle status.
"COMPLETED" means the payment has been confirmed and funds are allocated for settlement. Other possible values: "PENDING", "FAILED", "REFUNDED".Payment method type (e.g.,
"card").Axra transaction reference for the charge. Use when contacting support about a specific payment.
Settlement state:
"PENDING", "SETTLED", or "FAILED".ISO 8601 timestamp of when the funds were settled to your account.
null if not yet settled.All metadata key-value pairs submitted with the original charge, plus an Axra-generated
feeBreakdown object showing processing fees.ISO 8601 creation timestamp.
ISO 8601 timestamp of the last status change.
Example
List payments
GET /business/payments
Retrieve a paginated list of all payments for your business, ordered by creation time (most recent first).
Query parameters
Page number to retrieve. Starts at
1.Number of payments per page. Maximum
100.Response fields
Array of payment objects. Each object has the same structure as the Get a payment response.
Example
Refund a payment
POST /business/payment/:paymentId/refund
Issue a full refund for a completed payment. The refund is applied to the original card and the payment status is updated to "REFUNDED".
Path parameters
The ID of the payment to refund.
Response fields
The ID of the refunded payment.
"REFUNDED" on success.Unique identifier for the refund record.
Example
Error responses
| Status | Reason |
|---|---|
400 | Payment is not in COMPLETED status, or is older than 180 days. |
404 | No payment found with the given paymentId. |
Idempotency
Axra Pay automatically deduplicates charge requests to prevent accidental double charges. If two requests are made within the same one-minute window with the same combination of:- Business ID
- Card last four digits (or
savedTokenId) amountcurrency
Rate limiting
| Context | Limit |
|---|---|
| API requests | Per-business limit — contact support@useaxra.com for your current threshold. |
| Checkout charge attempts | Max 5 attempts per session per 15-minute window. |
429 Too Many Requests response. Implement exponential backoff before retrying.