Terminal Simulation
A Terminal represents a virtual point-of-sale (POS) device registered in the sandbox environment for testing in-person payment flows.
POST /api/v1/simulation/pa/pos/terminals/generate_activation_codePOST /api/v1/simulation/pa/pos/terminals/turn_onPOST /api/v1/simulation/pa/pos/terminals/turn_offGET /api/v1/simulation/pa/pos/terminals/payment_scenariosPOST /api/v1/simulation/pa/pos/terminals/confirm_payment_intent
Generate an activation code
POST /api/v1/simulation/pa/pos/terminals/generate_activation_code
Generates an activation code for the terminal owner to enter in the Airwallex web app to activate the terminal device.
UUID of the request
The activation code read from the terminal
Expiration time of the activation code
| Error status | Description |
|---|---|
| 400 | invalid_argument |
| 401 | credentials_invalid |
| 500 | service_unavailable |
$curl --request POST \> --url 'https://api-demo.airwallex.com/api/v1/simulation/pa/pos/terminals/generate_activation_code' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "request_id": "123e4567-e89b-12d3-a456-426614174000">}'
1{2 "activation_code": "5W0D3E8L",3 "expires_at": 17610313204164}
Turn on a terminal
POST /api/v1/simulation/pa/pos/terminals/turn_on
Turns on the terminal device.
Terminal unique identifier
Terminal device connection status. One of: CONNECTED, DISCONNECTED
Terminal unique identifier
| Error status | Description |
|---|---|
| 400 | invalid_argument |
| 401 | credentials_invalid |
| 404 | not_found |
| 500 | service_unavailable |
$curl --request POST \> --url 'https://api-demo.airwallex.com/api/v1/simulation/pa/pos/terminals/turn_on' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "terminal_id": "ter_stnck59hc8ej0qujy">}'
1{2 "connection_status": "CONNECTED",3 "terminal_id": "ter_stnck59hc8ej0qujy"4}
Turn off a terminal
POST /api/v1/simulation/pa/pos/terminals/turn_off
Turns off the terminal device.
Terminal unique identifier
Terminal device connection status. One of: CONNECTED, DISCONNECTED
Terminal unique identifier
| Error status | Description |
|---|---|
| 400 | invalid_argument |
| 401 | credentials_invalid |
| 404 | not_found |
| 500 | service_unavailable |
$curl --request POST \> --url 'https://api-demo.airwallex.com/api/v1/simulation/pa/pos/terminals/turn_off' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "terminal_id": "ter_stnck59hc8ej0qujy">}'
1{2 "connection_status": "CONNECTED",3 "terminal_id": "ter_stnck59hc8ej0qujy"4}
Get available payment scenarios
GET /api/v1/simulation/pa/pos/terminals/payment_scenarios
Retrieves all payment scenarios supported by the sandbox environment for in-person payment flows.
All available payment scenarios
The description of the payment scenario
The name of the payment scenario
| Error status | Description |
|---|---|
| 400 | invalid_argument |
| 401 | credentials_invalid |
| 500 | service_unavailable |
$curl --request GET \> --url 'https://api-demo.airwallex.com/api/v1/simulation/pa/pos/terminals/payment_scenarios' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json'
1{2 "items": [3 {4 "description": "Mastercard chip card without PIN verification",5 "name": "mastercard_chip_no_pin"6 }7 ]8}
Confirm payment using a scenario
POST /api/v1/simulation/pa/pos/terminals/confirm_payment_intent
Confirm the current terminal's linked payment using a specific scenario.
Payment scenario name. You can retrieve supported values using the List payment scenarios API (/api/v1/simulation/pa/pos/terminals/payment_scenarios).
Terminal unique identifier
The payment intent that has been confirmed
The unique identifier of the payment intent
The status of the payment intent
Terminal unique identifier
| Error status | Description |
|---|---|
| 400 | invalid_argument |
| 401 | credentials_invalid |
| 500 | service_unavailable |
$curl --request POST \> --url 'https://api-demo.airwallex.com/api/v1/simulation/pa/pos/terminals/confirm_payment_intent' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "payment_scenario_name": "visa_chip_with_pin",> "terminal_id": "ter_stnck59hc8ej0qujy">}'
1{2 "payment_intent": {3 "id": "int_hkstfc294hc8ff7p1nn",4 "status": "REQUIRES_CAPTURE"5 },6 "terminal_id": "ter_stnck59hc8ej0qujy"7}