Skip to content
API DocsDocs

apmPayload References

14 min readUpdated Aug 1, 2025

This document provides a complete reference of all payment methods and payment types supported by the Exirom APM API. Use the paymentMethod and paymentType fields in your apmPayload when initiating transactions.

All APM transactions use the same endpoint (POST /api/v1/payments/apm). The apmPayload object varies per payment method — see Initiating a Payment for the full request structure.


#Smart Routing Methods

Smart methods automatically route to the best provider based on the user’s country, currency, device, and merchant configuration. Use these when you want Exirom to handle provider selection.

Payment MethodPayment TypeDescriptionGuide
SMART_APM(auto)Unified smart routing — automatically selects the optimal localized methodSmart Routing
SMART_E_WALLETE_WALLETSmart e-wallet routing across multiple providersSmart E-Wallets
SMART_MOBILE_WALLETMOBILE_WALLETSmart mobile wallet routing (Google Pay, Apple Pay, etc.)Smart Mobile Wallets
SMART_BANK_TRANSFERBANK_TRANSFERSmart bank transfer routingSmart Bank Transfers
SMART_BANK_TRANSFER_PAYOUTBANK_TRANSFERSmart bank transfer payoutsSmart Bank Transfer Payouts
SMART_QRE_WALLETSmart QR code payment routingQR Payments
SMART_VOUCHERVOUCHERSmart voucher payment routingSmart Voucher Payments
SMART_CARRIER_BILLINGCARRIER_BILLINGSmart carrier billing routingCarrier Billing
SMART_BNPLBNPLSmart Buy Now, Pay Later routing

SMART_APM (auto-routing, minimal payload):

{
  "paymentMethod": "SMART_APM",
  "paymentType": "E_WALLET"
}

SMART_BANK_TRANSFERaccountHolderName is required; provide region-specific routing fields:

{
  "paymentMethod": "SMART_BANK_TRANSFER",
  "paymentType": "BANK_TRANSFER",
  "accountHolderName": "Hans Müller",
  "iban": "DE89370400440532013000",
  "bic": "COBADEFFXXX"
}
FieldRequiredNotes
accountHolderNameYesFull name of the account owner
iban + bicEU/SEPAFor European bank transfers
routingNumber + accountNumberUS/ACHFor US bank transfers
sortCodeYes (UK)6-digit UK sort code

SMART_CARRIER_BILLINGmsisdn is required:

{
  "paymentMethod": "SMART_CARRIER_BILLING",
  "paymentType": "CARRIER_BILLING",
  "msisdn": "+14155552671"
}

SMART_MOBILE_WALLETwalletProvider is required:

{
  "paymentMethod": "SMART_MOBILE_WALLET",
  "paymentType": "MOBILE_WALLET",
  "walletProvider": "google_pay"
}

SMART_VOUCHERvoucherCode is required:

{
  "paymentMethod": "SMART_VOUCHER",
  "paymentType": "VOUCHER",
  "voucherCode": "VOUCHER-CODE-12345"
}

#E-Wallets

All e-wallet methods use the same minimal payload structure — just paymentMethod and paymentType. The provider page handles authentication and user interaction.

{
  "paymentMethod": "PAYPAL",
  "paymentType": "E_WALLET"
}

Replace PAYPAL with any e-wallet method below. All return actionType: REDIRECTION — redirect your user to apmResponseData.redirectUrl.

Payment MethodPayment TypeDescriptionGuide
PAYPALE_WALLETPayPal paymentsSmart E-Wallets
ALIPAYE_WALLETAlipay (China)Smart E-Wallets
WECHAT_PAYE_WALLETWeChat Pay (China)Smart E-Wallets
SKRILLE_WALLETSkrill e-walletSmart E-Wallets
NETELLERE_WALLETNeteller e-walletSmart E-Wallets
QIWI_EWALLETE_WALLETQIWI wallet (Russia/CIS)Smart E-Wallets
PAYEERE_WALLETPayeer e-walletSmart E-Wallets
WEB_MONEYE_WALLETWebMoney (CIS)Smart E-Wallets
VENMOE_WALLETVenmo (US)Smart E-Wallets
CASH_APP_PAYE_WALLETCash App Pay (US)Smart E-Wallets
GRAB_PAYE_WALLETGrabPay (Southeast Asia)Smart E-Wallets
ASTRO_PAYE_WALLETAstroPay (Latin America)Smart E-Wallets
MERCADO_PAGOE_WALLETMercado Pago (Latin America)Smart E-Wallets
DOKU_WALLETE_WALLETDOKU Wallet (Indonesia)Smart E-Wallets
TRUE_MONEY_WALLETE_WALLETTrueMoney Wallet (Thailand)Smart E-Wallets
SATISPAYE_WALLETSatispay (Italy)Smart E-Wallets
GCASHE_WALLETGCash (Philippines)Smart E-Wallets
DANAE_WALLETDANA (Indonesia)Smart E-Wallets
GO_PAYE_WALLETGoPay (Indonesia)Smart E-Wallets
MOMOE_WALLETMoMo (Vietnam)Smart E-Wallets
SHOPEE_PAYE_WALLETShopeePay (Southeast Asia)Smart E-Wallets
D_BARAIE_WALLETd-Barai (Japan)Smart E-Wallets
MERPAYE_WALLETMerpay (Japan)Smart E-Wallets
ExPayE_WALLETExPay proprietary walletSmart E-Wallets

#Mobile Wallets

Payment MethodPayment TypeDescriptionGuide
GOOGLE_PAYMOBILE_WALLETNative Google Pay via APISmart Mobile Wallets
APPLE_PAYMOBILE_WALLETNative Apple Pay via APISmart Mobile Wallets
SAMSUNG_PAYMOBILE_WALLETSamsung PaySmart Mobile Wallets
HUAWEI_PAYMOBILE_WALLETHuawei PaySmart Mobile Wallets
MI_PAYMOBILE_WALLETXiaomi Mi PaySmart Mobile Wallets
LG_PAYMOBILE_WALLETLG PaySmart Mobile Wallets
TRUE_MONEYMOBILE_WALLETTrueMoney (Thailand)Smart Mobile Wallets
PAYTMMOBILE_WALLETPaytm (India)Smart Mobile Wallets
PHONE_PEMOBILE_WALLETPhonePe (India)Smart Mobile Wallets

#Bank Transfers & Open Banking

Most bank transfer methods use a minimal payload — just paymentMethod + paymentType. The user is redirected to their bank. For SMART_BANK_TRANSFER, include account details.

Redirect-based (iDEAL, Sofort, EPS, Bancontact, etc.) — minimal:

{
  "paymentMethod": "IDEAL",
  "paymentType": "BANK_TRANSFER"
}

Open Banking — optional enrichment fields:

{
  "paymentMethod": "OPEN_BANKING",
  "paymentType": "BANK_TRANSFER",
  "accountHolderName": "Jane Smith",
  "paymentReference": "ORDER-12345",
  "paymentDescription": "Product purchase"
}

See Smart Bank Transfers for the full SMART_BANK_TRANSFER payload with all routing fields.

Payment MethodPayment TypeDescriptionGuide
IDEALBANK_TRANSFERiDEAL (Netherlands)Smart Bank Transfers
OPEN_BANKINGBANK_TRANSFEROpen Banking (UK/EU)Smart Bank Transfers
SOFORTBANK_TRANSFERSofort/Klarna (Germany/Austria)Smart Bank Transfers
GIROPAYBANK_TRANSFERGiropay (Germany)Smart Bank Transfers
EPSBANK_TRANSFEREPS (Austria)Smart Bank Transfers
BANCONTACTBANK_TRANSFERBancontact (Belgium)Smart Bank Transfers
MY_BANKBANK_TRANSFERMyBank (Italy)Smart Bank Transfers
TRUSTLYBANK_TRANSFERTrustly (Nordics/EU)Smart Bank Transfers
SEPA_DIRECT_DEBITBANK_TRANSFERSEPA Direct Debit (EU)Smart Bank Transfers
SEPA_CREDIT_TRANSFERBANK_TRANSFERSEPA Credit Transfer (EU)Smart Bank Transfers
MULTIBANCOBANK_TRANSFERMultibanco (Portugal)Smart Bank Transfers
MBWAYBANK_TRANSFERMB WAY (Portugal)Smart Bank Transfers
FPXBANK_TRANSFERFPX (Malaysia)Smart Bank Transfers
POLIBANK_TRANSFERPOLi (Australia/NZ)Smart Bank Transfers
PSEBANK_TRANSFERPSE (Colombia)Smart Bank Transfers
SPEIBANK_TRANSFERSPEI (Mexico)Smart Bank Transfers
PRZELEWY24BANK_TRANSFERPrzelewy24 (Poland)Smart Bank Transfers
BLIKBANK_TRANSFERBLIK (Poland)Smart Bank Transfers
INTERACBANK_TRANSFERInterac (Canada)Smart Bank Transfers
ACHBANK_TRANSFERACH (United States)Smart Bank Transfers
RTPBANK_TRANSFERRTP Real-Time Payments (US)Smart Bank Transfers
FASTER_PAYMENTSBANK_TRANSFERFaster Payments (UK)Smart Bank Transfers
FED_NOWBANK_TRANSFERFedNow (United States)Smart Bank Transfers
SWIFTBANK_TRANSFERSWIFT international wireSmart Bank Transfers
BACSBANK_TRANSFERBACS (UK)Smart Bank Transfers
NET_BANKINGBANK_TRANSFERNet Banking (India)Smart Bank Transfers
PIX_BANKBANK_TRANSFERPix bank transfer (Brazil)Smart Bank Transfers
SBPBANK_TRANSFERSBP Fast Payments (Russia)Smart Bank Transfers
NBU_INSTANT_PAYMENTSBANK_TRANSFERNBU Instant (Ukraine)Smart Bank Transfers
ERIPBANK_TRANSFERERIP (Belarus)Smart Bank Transfers
KISCBANK_TRANSFERKISC (Kazakhstan)Smart Bank Transfers
AR_CABANK_TRANSFERArCa (Armenia)Smart Bank Transfers
GIPSBANK_TRANSFERGIPS (Kyrgyzstan)Smart Bank Transfers
QIWI_BANK_TRANSFERBANK_TRANSFERQIWI bank transfer (Russia/CIS)Smart Bank Transfers
BRADESCOBANK_TRANSFERBradesco (Brazil)Smart Bank Transfers
SANTANDERBANK_TRANSFERSantander (Brazil)Smart Bank Transfers
ITAUBANK_TRANSFERItau (Brazil)Smart Bank Transfers

#QR Code Payments

All QR methods use a minimal payload. The response returns actionType: QR with qrData (Base64 PNG) and optionally qrDeepLink.

{
  "paymentMethod": "PIX_QR",
  "paymentType": "E_WALLET"
}

Replace PIX_QR with any QR method. Decode apmResponseData.qrData from Base64 and render as an <img> tag; use qrDeepLink on mobile for tap-to-pay. See QR Payments guide.

Payment MethodPayment TypeDescriptionGuide
PIX_QRE_WALLETPix QR (Brazil, BRL only)QR Payments
UPI_QRE_WALLETUPI QR (India)QR Payments
ASTRO_PAY_QRE_WALLETAstroPay QR (Latin America)QR Payments
ALIPAY_QRE_WALLETAlipay QR (China)QR Payments
WECHAT_PAY_QRE_WALLETWeChat Pay QR (China)QR Payments
BLIK_QRE_WALLETBLIK QR (Poland)QR Payments
PROMPT_PAYE_WALLETPromptPay QR (Thailand)QR Payments
VN_PAYE_WALLETVNPay QR (Vietnam)QR Payments
DUITNOWE_WALLETDuitNow QR (Malaysia)QR Payments
PAY_NOWE_WALLETPayNow QR (Singapore)QR Payments
INSTA_PAY_QRE_WALLETInstaPay QR (Philippines)QR Payments
QRISE_WALLETQRIS (Indonesia)QR Payments
CO_DIE_WALLETCoDi QR (Mexico)QR Payments
TK_PAY_QRE_WALLETTK Pay QRQR Payments

#Carrier Billing

Payment MethodPayment TypeDescriptionGuide
BOKUCARRIER_BILLINGBoku (global carrier billing)Carrier Billing
FORTUMOCARRIER_BILLINGFortumo (global)Carrier Billing
DOCOMOCARRIER_BILLINGNTT Docomo (Japan)Carrier Billing
SMART_SMSCARRIER_BILLINGSmart SMS (Philippines)Carrier Billing
GLOBE_SMSCARRIER_BILLINGGlobe SMS (Philippines)Carrier Billing
TELCOMSELCARRIER_BILLINGTelkomsel (Indonesia)Carrier Billing
MTNCARRIER_BILLINGMTN (Africa)Carrier Billing
VODACOMCARRIER_BILLINGVodacom (Africa)Carrier Billing
TELENORCARRIER_BILLINGTelenor (Norway/Asia)Carrier Billing

#Hosted Payment Page (HPP) Methods

Payment MethodPayment TypeDescriptionGuide
EXTERNAL_HPP_APPLE_PAYE_WALLETApple Pay via external HPPApple Pay HPP
EXTERNAL_HPP_GOOGLE_PAYE_WALLETGoogle Pay via external HPPGoogle Pay HPP
EXTERNAL_HPP_BLIKBANK_TRANSFERBLIK via external HPPBLIK HPP
EXTERNAL_HPP_EFTBANK_TRANSFEREFT via external HPPEFT HPP

#Regional / Direct Methods

These methods require specific fields in the apmPayload. Missing required fields will result in a validation error.

Payment MethodPayment TypeDescription
PAPARAE_WALLETPapara (Turkey) — requires account credentials
TK_PAYBANK_TRANSFERTK Pay EFT (Turkey) — requires user identity
TK_PAY_QRE_WALLETTK Pay QR (Turkey) — requires user identity
TK_PAY_PAYOUTBANK_TRANSFERTK Pay payout (Turkey) — requires full bank details
PY_BANK_PAYINBANK_TRANSFERPY Bank pay-in
PY_BANK_PAYOUTBANK_TRANSFERPY Bank payout — requires bank account details
PAY_BYE_WALLETPayBy (UAE)
BNPLBNPLBuy Now, Pay Later

#PAPARA (Turkey)

paymentMethod: PAPARA | paymentType: E_WALLET

FieldTypeRequiredDescription
usernameStringYesCustomer's Papara username
userIDStringYesCustomer's Papara user ID
fullnameStringYesCustomer's full name
accountHolderNameStringNoAccount holder name (optional)
{
  "paymentMethod": "PAPARA",
  "paymentType": "E_WALLET",
  "username": "customer_username",
  "userID": "12345678",
  "fullname": "Ahmet Yılmaz"
}

#TK Pay EFT (Turkey)

paymentMethod: TK_PAY | paymentType: BANK_TRANSFER

FieldTypeRequiredDescription
usernameStringYesCustomer's TK Pay username
userIDStringYesCustomer's TK Pay user ID
fullnameStringYesCustomer's full name
{
  "paymentMethod": "TK_PAY",
  "paymentType": "BANK_TRANSFER",
  "username": "customer_username",
  "userID": "12345678",
  "fullname": "Ahmet Yılmaz"
}

#TK Pay QR (Turkey)

paymentMethod: TK_PAY_QR | paymentType: E_WALLET

FieldTypeRequiredDescription
usernameStringYesCustomer's TK Pay username
userIDStringYesCustomer's TK Pay user ID
fullnameStringYesCustomer's full name
{
  "paymentMethod": "TK_PAY_QR",
  "paymentType": "E_WALLET",
  "username": "customer_username",
  "userID": "12345678",
  "fullname": "Ahmet Yılmaz"
}

#TK Pay Payout (Turkey)

paymentMethod: TK_PAY_PAYOUT | paymentType: BANK_TRANSFER

FieldTypeRequiredDescription
usernameStringYesCustomer's TK Pay username
userIDStringYesCustomer's TK Pay user ID
fullnameStringYesCustomer's full name
accountHoldersNameStringYesBank account holder name
ibanStringYesIBAN for the destination bank account
accountNumberStringYesBank account number
bankIdStringNoBank identifier (optional)
{
  "paymentMethod": "TK_PAY_PAYOUT",
  "paymentType": "BANK_TRANSFER",
  "username": "customer_username",
  "userID": "12345678",
  "fullname": "Ahmet Yılmaz",
  "accountHoldersName": "Ahmet Yılmaz",
  "iban": "TR330006100519786457841326",
  "accountNumber": "519786457841326"
}

#PY Bank Payout

paymentMethod: PY_BANK_PAYOUT | paymentType: BANK_TRANSFER

FieldTypeRequiredDescription
bankNameStringYesName of the destination bank
bankCodeStringYesBank code
accountNumberStringYesBank account number
localCountryCurrencyIso3CodeStringYes3-letter ISO currency code (e.g. PYG)
bankAccountHolderNameStringYesFull name of the account holder
{
  "paymentMethod": "PY_BANK_PAYOUT",
  "paymentType": "BANK_TRANSFER",
  "bankName": "Banco Continental",
  "bankCode": "006",
  "accountNumber": "1234567890",
  "localCountryCurrencyIso3Code": "PYG",
  "bankAccountHolderName": "Carlos Rodríguez"
}

#PY Bank Pay-in

paymentMethod: PY_BANK_PAYIN | paymentType: BANK_TRANSFER

No additional fields required beyond paymentMethod and paymentType.


#Supported Payment Types (PaymentType)

The paymentType field categorizes how the transaction is processed:

Payment TypeDescription
BANK_TRANSFERAccount-to-account bank transfers
CARD_PAYMENTCard-based payments (credit, debit, prepaid)
E_WALLETElectronic wallet payments
MOBILE_WALLETNative mobile wallet apps (Google Pay, Apple Pay, etc.)
CASHCash payments via supported channels
VOUCHERVoucher or gift code payments
CARRIER_BILLINGCharges added to mobile phone bill
BNPLBuy Now, Pay Later installment payments

#Smart APM Routing

When using SMART_APM, the platform automatically classifies and routes transactions to the most appropriate smart payment handler based on:

  • Market and country of the user
  • Currency and payment amount
  • User device and payment context
  • Merchant configuration and supported providers

Smart methods (prefixed with SMART_) handle provider selection automatically. Use direct methods (e.g., PAYPAL, IDEAL) when you want to specify the exact payment method.


Note: All APM methods use the same POST /api/v1/payments/apm endpoint. The apmPayload object structure varies per payment method. For request/response details, refer to the dedicated guide linked in each method’s row above.

Was this helpful?