S2S Flow Payload
Request and response payloads for APM methods that return actionType: NONE.
3 min readUpdated Apr 8, 2026
S2S (server-to-server) APM methods return actionType: NONE — the payment is processed entirely on the backend with no customer redirect or QR code.
All S2S methods use the standard POST /api/v1/payments/apm endpoint.
#Required Request Fields
Top-Level Fields
| Field | Type | Description |
|---|---|---|
callbackUrl | String | URL to receive transaction status updates |
successRedirectUrl | String | URL to redirect the customer after successful payment |
failureRedirectUrl | String | URL to redirect the customer after failed payment |
Billing Details (ApmBillingDetails)
| Field | Type | Description |
|---|---|---|
email | String | The customer's email address used for communication or receipts |
#Payload Structure
S2S methods may require additional method-specific fields (e.g. bank account details, customer identity). Refer to the APM Payload References for required fields per method.
{
"paymentMethod": "EFT",
"paymentType": "BANK_TRANSFER",
"account": "4051111222",
"bank": "absa",
"customer": "John Doe"
}Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
paymentMethod | Enum | Yes | S2S method identifier (e.g. EFT) |
paymentType | Enum | Yes | Payment type for the method (e.g. BANK_TRANSFER) |
| additional fields | — | Method-specific | Varies by method — see APM Payload References |
#Expected apmResponseData
{
"paymentMethod": "EFT",
"paymentType": "BANK_TRANSFER",
"actionType": "NONE",
"redirectUrl": null,
"iframeUrl": null,
"qrData": null,
"qrDeepLink": null,
"providerTransactionId": "820030759747217453",
"extra": null
}#Response Fields
| Field | Type | Required | Description |
|---|---|---|---|
paymentMethod | Enum | Yes | The S2S method used |
paymentType | Enum | Yes | Payment type |
actionType | Enum | Yes | Always NONE |
redirectUrl | String | No | Always null for S2S methods |
iframeUrl | String | No | Always null for S2S methods |
qrData | String | No | Always null for S2S methods |
qrDeepLink | String | No | Always null for S2S methods |
providerTransactionId | String | No | Transaction ID in the provider's system |
extra | Map | No | Additional key-value metadata |
The response may be immediately final (SUCCEED or FAILED) or async (PROCESSING / PENDING). In the async case, wait for the webhook — do not rely on the initial transactionStatus.
#See Also
- POST /api/v1/payments/apm — Full endpoint reference
- Payment Flow — End-to-end APM payment flows
- Apple Pay Payload — S2S Apple Pay (unique token structure)
- APM Payload References — All supported payment methods
Was this helpful?