Issuing
You can simulate transactions on cards issued by Airwallex and KYC processes of cardholders. Find out more about generating card issuing transactionsDocs and cardholder statusDocs.
POST /api/v1/simulation/issuing/createPOST /api/v1/simulation/issuing/card_transaction_lifecycles/{card_transaction_lifecycle_id}/capturePOST /api/v1/simulation/issuing/refundPOST /api/v1/simulation/issuing/card_transaction_lifecycles/{card_transaction_lifecycle_id}/reversePOST /api/v1/simulation/issuing/cardholders/{id}/pass_reviewPOST /api/v1/simulation/issuing/threeds/notify
Create a Transaction for the Provided Card
POST /api/v1/simulation/issuing/create
Creates a transaction for the card_id (or card_number) provided, but does not capture the transaction. This is only available in the sandbox environment.
x-api-version.
Transaction amount.
Currency of the transaction. Can only be one of USD, AUD, GBP, EUR, CAD, JPY, HKD, CNY, SGD, NZD, CHF.
Authorization code.
Unique Identifier for card. Leave this blank if using card_number. If both card_number and card_id are provided, card_number will be used.
Card Number.
The unique identifier of a card transaction lifecycle to associate with the new authorization.
Merchant category code.
Merchant description.
Set this to true to combine a single transaction that both authorizes and clears the transaction request. Defaults to false if not set.
Set this field to simulate a failed transaction with the specific failure reason.
CARDHOLDER_VERIFICATION_FAILEDCVV_INVALIDINVALID_EXPIRY_DATEPIN_INVALIDPIN_RETRIES_EXCEEDEDTRANSACTION_BLOCKEDAuthorization Code.
Billing amount.
Billing Currency.
Unique Identifier for card.
The nickname of the card used.
The unique identifier of the card transaction event created by the simulation operation.
The unique identifier of the card transaction created or updated by the simulation operation.
The unique identifier of the card transaction lifecycle created or updated by the simulation operation.
Client data stored against the card record.
The reason the event was declined. Only present when process_result is DECLINED. Learn more about transaction failure reasonsDocs.
ACCOUNT_INVALIDCARDHOLDER_VERIFICATION_FAILEDCARD_CLOSEDCARD_INACTIVECARD_INVALIDCARD_LOST_STOLENCARD_NOT_ACTIVATEDCARD_REISSUED_TO_NEW_NUMBERCURRENCY_NOT_ALLOWEDCVV_INVALIDEXPIRY_MISSINGINSUFFICIENT_AVAILABLE_CREDITINSUFFICIENT_FUNDSINTERNAL_ERRORINVALID_EXPIRY_DATELIMIT_EXCEEDEDMERCHANT_CATEGORY_NOT_ALLOWEDMERCHANT_COUNTRY_NOT_ALLOWEDMERCHANT_BRAND_NOT_ALLOWEDMERCHANT_BRAND_CATEGORY_NOT_ALLOWEDMERCHANT_BRAND_SUBCATEGORY_NOT_ALLOWEDNOT_SUPPORTEDOUT_OF_ALLOWED_TIME_RANGEPIN_INVALIDPIN_RETRIES_EXCEEDEDREMOTE_AUTH_DECLINEDRESTRICTED_COUNTRYSUSPECTED_FRAUDTRANSACTION_BLOCKEDTRANSACTION_BLOCKED_AT_TERMINALTRANSACTION_USAGE_DISABLEDMasked card number.
Merchant of the card transaction.
Merchant category code.
Merchant city.
Merchant country.
Merchant Name.
The transaction unique identifier from VISA network.
The processing result of the card transaction event.
APPROVEDDECLINEDTransaction retrieval reference number. Data element 37 of an financial transaction message (https://en.wikipedia.org/wiki/ISO_8583).
The card transaction event subtype.
AUTHORIZATIONINCREMENTAL_AUTHORIZATIONVERIFICATIONREVERSALPARTIAL_REVERSALEXPIRED_AUTHORIZATIONCLEARINGPARTIAL_CLEARINGCLEARING_REVERSALThe network-reported transaction time.
Transaction amount.
Transaction currency.
The card transaction event type.
AUTHORIZATIONCLEARINGREVERSAL_AUTHDate and time when the card transaction event was last updated, in ISO 8601 format.
| Error status | Description |
|---|---|
| 400 | invalid_argument |
| 401 | credentials_invalid |
| 500 | service_unavailable |
$curl --request POST \> --url 'https://api.sandbox.airwallex.com/api/v1/simulation/issuing/create' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --header 'x-api-version: 2026-08-21' \> --data '{> "auth_code": "123312",> "card_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",> "card_number": "4242424242424242",> "merchant_category_code": "0742",> "merchant_info": "Example",> "single_phase": true,> "transaction_amount": 100,> "transaction_currency": "AUD",> "transaction_failure_reason": "CVV_INVALID",> "card_transaction_lifecycle_id": "d8af1614-a6a1-4d45-aae7-6858fc6d9ede">}'
1{2 "auth_code": "000001",3 "billing_amount": 100,4 "billing_currency": "USD",5 "card_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",6 "card_nickname": "<string>",7 "client_data": "Some client data",8 "masked_card_number": "************4242",9 "merchant": {10 "category_code": "4829",11 "city": "Melbourne",12 "country": "Australia",13 "name": "Merchant A"14 },15 "network_transaction_id": "3951729271768745",16 "process_result": "APPROVED",17 "retrieval_ref": "909916088001",18 "subtype": "AUTHORIZATION",19 "transaction_amount": 100,20 "transaction_currency": "USD",21 "transacted_at": "2018-03-21T16:08:02+00:00",22 "card_transaction_event_id": "6c2dc266-09ad-4235-b61a-767c7cd6d6ea",23 "card_transaction_id": "7c2dc266-09ad-4235-b61a-767c7cd6d6ea",24 "card_transaction_lifecycle_id": "3c2dc266-09ad-4235-b61a-767c7cd6d6ea",25 "type": "AUTHORIZATION",26 "updated_at": "2018-03-22T16:08:02+00:00"27}
Capture the Card Transaction Lifecycle
POST /api/v1/simulation/issuing/card_transaction_lifecycles/{card_transaction_lifecycle_id}/capture
Capture a card transaction lifecycle using the given lifecycle ID. This is only available in the sandbox environment.
Unique identifier of the card transaction lifecycle to capture.
Merchant description.
Amount to capture. Providing an amount smaller than the full authorised amount will result in a partial capture of the indicated amount only. When not present, the full authorised amount will be captured.
Authorization Code.
Billing amount.
Billing Currency.
Unique Identifier for card.
The nickname of the card used.
The unique identifier of the card transaction event created by the simulation operation.
The unique identifier of the card transaction created or updated by the simulation operation.
The unique identifier of the card transaction lifecycle created or updated by the simulation operation.
Client data stored against the card record.
The reason the event was declined. Only present when process_result is DECLINED. Learn more about transaction failure reasonsDocs.
ACCOUNT_INVALIDCARDHOLDER_VERIFICATION_FAILEDCARD_CLOSEDCARD_INACTIVECARD_INVALIDCARD_LOST_STOLENCARD_NOT_ACTIVATEDCARD_REISSUED_TO_NEW_NUMBERCURRENCY_NOT_ALLOWEDCVV_INVALIDEXPIRY_MISSINGINSUFFICIENT_AVAILABLE_CREDITINSUFFICIENT_FUNDSINTERNAL_ERRORINVALID_EXPIRY_DATELIMIT_EXCEEDEDMERCHANT_CATEGORY_NOT_ALLOWEDMERCHANT_COUNTRY_NOT_ALLOWEDMERCHANT_BRAND_NOT_ALLOWEDMERCHANT_BRAND_CATEGORY_NOT_ALLOWEDMERCHANT_BRAND_SUBCATEGORY_NOT_ALLOWEDNOT_SUPPORTEDOUT_OF_ALLOWED_TIME_RANGEPIN_INVALIDPIN_RETRIES_EXCEEDEDREMOTE_AUTH_DECLINEDRESTRICTED_COUNTRYSUSPECTED_FRAUDTRANSACTION_BLOCKEDTRANSACTION_BLOCKED_AT_TERMINALTRANSACTION_USAGE_DISABLEDMasked card number.
Merchant of the card transaction.
Merchant category code.
Merchant city.
Merchant country.
Merchant Name.
The transaction unique identifier from VISA network.
The processing result of the card transaction event.
APPROVEDDECLINEDTransaction retrieval reference number. Data element 37 of an financial transaction message (https://en.wikipedia.org/wiki/ISO_8583).
The card transaction event subtype.
AUTHORIZATIONINCREMENTAL_AUTHORIZATIONVERIFICATIONREVERSALPARTIAL_REVERSALEXPIRED_AUTHORIZATIONCLEARINGPARTIAL_CLEARINGCLEARING_REVERSALThe network-reported transaction time.
Transaction amount.
Transaction currency.
The card transaction event type.
AUTHORIZATIONCLEARINGREVERSAL_AUTHDate and time when the card transaction event was last updated, in ISO 8601 format.
| Error status | Description |
|---|---|
| 400 | invalid_argument |
| 401 | credentials_invalid |
| 500 | service_unavailable |
$curl --request POST \> --url 'https://api.sandbox.airwallex.com/api/v1/simulation/issuing/card_transaction_lifecycles/d8af1614-a6a1-4d45-aae7-6858fc6d9ede/capture' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "merchant_info": "Example",> "transaction_amount": 100>}'
1{2 "auth_code": "000001",3 "billing_amount": 100,4 "billing_currency": "USD",5 "card_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",6 "card_nickname": "<string>",7 "client_data": "Some client data",8 "masked_card_number": "************4242",9 "merchant": {10 "category_code": "4829",11 "city": "Melbourne",12 "country": "Australia",13 "name": "Merchant A"14 },15 "network_transaction_id": "3951729271768745",16 "process_result": "APPROVED",17 "retrieval_ref": "909916088001",18 "subtype": "CLEARING",19 "transaction_amount": 100,20 "transaction_currency": "USD",21 "transacted_at": "2018-03-21T16:08:02+00:00",22 "card_transaction_event_id": "6c2dc266-09ad-4235-b61a-767c7cd6d6ea",23 "card_transaction_id": "7c2dc266-09ad-4235-b61a-767c7cd6d6ea",24 "card_transaction_lifecycle_id": "3c2dc266-09ad-4235-b61a-767c7cd6d6ea",25 "type": "CLEARING",26 "updated_at": "2018-03-22T16:08:02+00:00"27}
Refund a Transaction for the Provided Card
POST /api/v1/simulation/issuing/refund
Refunds a transaction. This is only available in the sandbox environment.
Transaction amount.
Currency of the transaction. Can only be one of USD, AUD, GBP, EUR, CAD, JPY, HKD, CNY, SGD, NZD, CHF.
Unique Identifier for card. Leave this blank if using card_number. If both card_number and card_id are provided, card_number will be used.
Card Number.
The unique identifier of the original card transaction lifecycle to refund.
Merchant category code.
Merchant description.
Authorization Code.
Billing amount.
Billing Currency.
Unique Identifier for card.
The nickname of the card used.
The unique identifier of the card transaction event created by the simulation operation.
The unique identifier of the card transaction created or updated by the simulation operation.
The unique identifier of the card transaction lifecycle created or updated by the simulation operation.
Client data stored against the card record.
The reason the event was declined. Only present when process_result is DECLINED. Learn more about transaction failure reasonsDocs.
ACCOUNT_INVALIDCARDHOLDER_VERIFICATION_FAILEDCARD_CLOSEDCARD_INACTIVECARD_INVALIDCARD_LOST_STOLENCARD_NOT_ACTIVATEDCARD_REISSUED_TO_NEW_NUMBERCURRENCY_NOT_ALLOWEDCVV_INVALIDEXPIRY_MISSINGINSUFFICIENT_AVAILABLE_CREDITINSUFFICIENT_FUNDSINTERNAL_ERRORINVALID_EXPIRY_DATELIMIT_EXCEEDEDMERCHANT_CATEGORY_NOT_ALLOWEDMERCHANT_COUNTRY_NOT_ALLOWEDMERCHANT_BRAND_NOT_ALLOWEDMERCHANT_BRAND_CATEGORY_NOT_ALLOWEDMERCHANT_BRAND_SUBCATEGORY_NOT_ALLOWEDNOT_SUPPORTEDOUT_OF_ALLOWED_TIME_RANGEPIN_INVALIDPIN_RETRIES_EXCEEDEDREMOTE_AUTH_DECLINEDRESTRICTED_COUNTRYSUSPECTED_FRAUDTRANSACTION_BLOCKEDTRANSACTION_BLOCKED_AT_TERMINALTRANSACTION_USAGE_DISABLEDMasked card number.
Merchant of the card transaction.
Merchant category code.
Merchant city.
Merchant country.
Merchant Name.
The transaction unique identifier from VISA network.
The processing result of the card transaction event.
APPROVEDDECLINEDTransaction retrieval reference number. Data element 37 of an financial transaction message (https://en.wikipedia.org/wiki/ISO_8583).
The card transaction event subtype.
AUTHORIZATIONINCREMENTAL_AUTHORIZATIONVERIFICATIONREVERSALPARTIAL_REVERSALEXPIRED_AUTHORIZATIONCLEARINGPARTIAL_CLEARINGCLEARING_REVERSALThe network-reported transaction time.
Transaction amount.
Transaction currency.
The card transaction event type.
AUTHORIZATIONCLEARINGREVERSAL_AUTHDate and time when the card transaction event was last updated, in ISO 8601 format.
| Error status | Description |
|---|---|
| 400 | invalid_argument |
| 401 | credentials_invalid |
| 500 | service_unavailable |
$curl --request POST \> --url 'https://api.sandbox.airwallex.com/api/v1/simulation/issuing/refund' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "card_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",> "card_number": "4242424242424242",> "merchant_category_code": "0742",> "merchant_info": "Example",> "transaction_amount": 100,> "transaction_currency": "AUD",> "card_transaction_lifecycle_id": "d8af1614-a6a1-4d45-aae7-6858fc6d9ede">}'
1{2 "auth_code": "000001",3 "billing_amount": 100,4 "billing_currency": "USD",5 "card_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",6 "card_nickname": "<string>",7 "client_data": "Some client data",8 "masked_card_number": "************4242",9 "merchant": {10 "category_code": "4829",11 "city": "Melbourne",12 "country": "Australia",13 "name": "Merchant A"14 },15 "network_transaction_id": "3951729271768745",16 "process_result": "APPROVED",17 "retrieval_ref": "909916088001",18 "subtype": "CLEARING",19 "transaction_amount": 100,20 "transaction_currency": "USD",21 "transacted_at": "2018-03-21T16:08:02+00:00",22 "card_transaction_event_id": "6c2dc266-09ad-4235-b61a-767c7cd6d6ea",23 "card_transaction_id": "7c2dc266-09ad-4235-b61a-767c7cd6d6ea",24 "card_transaction_lifecycle_id": "3c2dc266-09ad-4235-b61a-767c7cd6d6ea",25 "type": "CLEARING",26 "updated_at": "2018-03-22T16:08:02+00:00"27}
Reverse the Card Transaction Lifecycle with the Provided Id
POST /api/v1/simulation/issuing/card_transaction_lifecycles/{card_transaction_lifecycle_id}/reverse
Reverse a card transaction lifecycle. This is only available in the sandbox environment.
Unique identifier of the card transaction lifecycle to reverse.
Amount to reverse. Providing an amount smaller than the full authorised amount will result in a partial reversal of the indicated amount only. When not present, the full authorised amount will be reversed.
Authorization Code.
Billing amount.
Billing Currency.
Unique Identifier for card.
The nickname of the card used.
The unique identifier of the card transaction event created by the simulation operation.
The unique identifier of the card transaction created or updated by the simulation operation.
The unique identifier of the card transaction lifecycle created or updated by the simulation operation.
Client data stored against the card record.
The reason the event was declined. Only present when process_result is DECLINED. Learn more about transaction failure reasonsDocs.
ACCOUNT_INVALIDCARDHOLDER_VERIFICATION_FAILEDCARD_CLOSEDCARD_INACTIVECARD_INVALIDCARD_LOST_STOLENCARD_NOT_ACTIVATEDCARD_REISSUED_TO_NEW_NUMBERCURRENCY_NOT_ALLOWEDCVV_INVALIDEXPIRY_MISSINGINSUFFICIENT_AVAILABLE_CREDITINSUFFICIENT_FUNDSINTERNAL_ERRORINVALID_EXPIRY_DATELIMIT_EXCEEDEDMERCHANT_CATEGORY_NOT_ALLOWEDMERCHANT_COUNTRY_NOT_ALLOWEDMERCHANT_BRAND_NOT_ALLOWEDMERCHANT_BRAND_CATEGORY_NOT_ALLOWEDMERCHANT_BRAND_SUBCATEGORY_NOT_ALLOWEDNOT_SUPPORTEDOUT_OF_ALLOWED_TIME_RANGEPIN_INVALIDPIN_RETRIES_EXCEEDEDREMOTE_AUTH_DECLINEDRESTRICTED_COUNTRYSUSPECTED_FRAUDTRANSACTION_BLOCKEDTRANSACTION_BLOCKED_AT_TERMINALTRANSACTION_USAGE_DISABLEDMasked card number.
Merchant of the card transaction.
Merchant category code.
Merchant city.
Merchant country.
Merchant Name.
The transaction unique identifier from VISA network.
The processing result of the card transaction event.
APPROVEDDECLINEDTransaction retrieval reference number. Data element 37 of an financial transaction message (https://en.wikipedia.org/wiki/ISO_8583).
The card transaction event subtype.
AUTHORIZATIONINCREMENTAL_AUTHORIZATIONVERIFICATIONREVERSALPARTIAL_REVERSALEXPIRED_AUTHORIZATIONCLEARINGPARTIAL_CLEARINGCLEARING_REVERSALThe network-reported transaction time.
Transaction amount.
Transaction currency.
The card transaction event type.
AUTHORIZATIONCLEARINGREVERSAL_AUTHDate and time when the card transaction event was last updated, in ISO 8601 format.
| Error status | Description |
|---|---|
| 400 | invalid_argument |
| 401 | credentials_invalid |
| 500 | service_unavailable |
$curl --request POST \> --url 'https://api.sandbox.airwallex.com/api/v1/simulation/issuing/card_transaction_lifecycles/d8af1614-a6a1-4d45-aae7-6858fc6d9ede/reverse' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "transaction_amount": 100>}'
1{2 "auth_code": "000001",3 "billing_amount": 100,4 "billing_currency": "USD",5 "card_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",6 "card_nickname": "<string>",7 "client_data": "Some client data",8 "masked_card_number": "************4242",9 "merchant": {10 "category_code": "4829",11 "city": "Melbourne",12 "country": "Australia",13 "name": "Merchant A"14 },15 "network_transaction_id": "3951729271768745",16 "process_result": "APPROVED",17 "retrieval_ref": "909916088001",18 "subtype": "REVERSAL",19 "transaction_amount": 100,20 "transaction_currency": "USD",21 "transacted_at": "2018-03-21T16:08:02+00:00",22 "card_transaction_event_id": "6c2dc266-09ad-4235-b61a-767c7cd6d6ea",23 "card_transaction_id": "7c2dc266-09ad-4235-b61a-767c7cd6d6ea",24 "card_transaction_lifecycle_id": "3c2dc266-09ad-4235-b61a-767c7cd6d6ea",25 "type": "REVERSAL_AUTH",26 "updated_at": "2018-03-22T16:08:02+00:00"27}
Pass Review Stage of a Cardholder
POST /api/v1/simulation/issuing/cardholders/{id}/pass_review
Use this endpoint to bypass the RFI process. Learn about the cardholder statusDocs and Handle Cardholder Request for Information (RFI)Docs. This is only available in the sandbox environment.
Unique identifier of the cardholder.
OK
| Error status | Description |
|---|---|
| 400 | not_found |
| 401 | credentials_invalid |
| 500 | service_unavailable |
$curl --request POST \> --url 'https://api.sandbox.airwallex.com/api/v1/simulation/issuing/cardholders/issuing_id/pass_review' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json'
Send Threeds Notification for the Provided Card
POST /api/v1/simulation/issuing/threeds/notify
Use this endpoint to send a threeds delegation mode notification for the provided card. Please note that this account must enable threeds delegation mode in notification configuration. This is only available in sandbox environment.
Card Number.
Merchant Description.
Acquirer unique identifier.
Merchant Category Code.
Merchant Country Code.
Merchant unique identifier.
Merchant Name.
Merchant URL.
Notification Status.
| Error status | Description |
|---|---|
| 400 | configuration_error or card_not_found |
| 401 | credentials_invalid |
| 500 | internal_error |
$curl --request POST \> --url 'https://api.sandbox.airwallex.com/api/v1/simulation/issuing/threeds/notify' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "card_number": "4012000300000088",> "merchant_info": {> "acquirer_id": "459535",> "merchant_category_code": "1200",> "merchant_country_code": "US",> "merchant_id": "641025a8-5845-477e-b9da-06dcd28d0d28",> "merchant_name": "happyPay",> "merchant_url": "http://www.happypay.com/"> }>}'
1{2 "status": "SUCCESS"3}