Accept JKOPay payments
Initialize a Payment Intent
Create a Payment Intent using the Create a Payment Intent API API.
Example request:
Shell
1curl --request POST \2--url 'https://api-demo.airwallex.com/api/v1/pa/payment_intents/create' \3--data-raw '{4 "request_id": "ed11e38a-7234-11ea-aa94-7fd44ffd1b89",5 "amount": 200,6 "currency": "TWD",7 "merchant_order_id": "85d7b0e0-7235-11ea-862e-9f6aa1adfca6",8 "return_url": "https://www.airwallex.com"9}'
One-off payments
Example request:
Shell
1curl --location --request POST 'https://api-staging.airwallex.com/api/v1/pa/payment_intents/int_sgst5htp8hg3akas9ne/confirm' \2--data-raw '{3 "request_id": "c4a8a00a-3426-4f37-8d08-9bab98e97d50",4 "payment_method": {5 "type": "jkopay"6 }7}'
Example response:
JSON
1{2 // ... other fields omitted.3 "next_action": {4 "type": "render_qrcode",5 "qrcode": "https://uat-onlinepay.jkopay.app/web/paymentRouter?j=OL%231%3aENT%23ZytLODdWTWorK2JmZm9pMkYxdVBuZz09%3aS%234172a79f-70f2-11ef-94d5-005056b665e9%3aA%235%3aCUR%23TWD%3aSRC%23REDIRECT_MWEB%3aUNRDM%230.00%3aFX%230%3aTA%235%3aTCUR%23TWD%3aFXR%231.00%3aUR%231%3aD%23D&s=88905acce197b2a73a6528970ccbcd21eebb9226766302d94b4f624df25084aa",6 "url": "https://uat-onlinepay.jkopay.app/web/paymentRouter?j=OL%231%3aENT%23ZytLODdWTWorK2JmZm9pMkYxdVBuZz09%3aS%234172a79f-70f2-11ef-94d5-005056b665e9%3aA%235%3aCUR%23TWD%3aSRC%23REDIRECT_MWEB%3aUNRDM%230.00%3aFX%230%3aTA%235%3aTCUR%23TWD%3aFXR%231.00%3aUR%231%3aD%23D&s=88905acce197b2a73a6528970ccbcd21eebb9226766302d94b4f624df25084aa"7 },8 "return_url": "https://staging-pacheckoutdemo.airwallex.com/checkout-result?isTesting=N",9 "original_amount": 5,10 "original_currency": "TWD"11}
Recurring payments
For recurring payments, you must create and verify a consent before taking the payment. JKOPay supports two types of recurring payments:
- Scheduled with a fixed payment amount.
- Unscheduled with a variable payment amount. The maximum payment amount allowed is specified by your customer.
- Settlement and payment method fee
- You can continue to initiate subsequent payment requests.
Collect and verify a consent
Example request:
Shell
1curl --location --request POST 'https://api-staging.airwallex.com/api/v1/pa/payment_intents/int_sgstlhrznhfs3ef1ecc/confirm' \2--data-raw '{3 "request_id": "0abe8bc1-86f9-44ce-80e4-dc6fad700f82",4 "customer_id": "cus_sgstlhrznhfs3eeqei8",5 "payment_method": {6 "type": "jkopay"7 },8 "payment_consent": {9 "next_triggered_by": "merchant",10 "merchant_trigger_reason": "scheduled",11 "terms_of_use": {12 "payment_amount_type": "FIXED",13 "payment_currency": "TWD",14 "fixed_payment_amount": 100,15 "payment_schedule": {16 "period": 7,17 "period_unit": "WEEK"18 },19 "billing_cycle_charge_day": 1220 }21 }22}'
Example response:
JSON
1{2 "payment_consent_id": "cst_sgstvhn5zhfs3ef9wj1",3 },4 "status": "REQUIRES_CUSTOMER_ACTION",5 "captured_amount": 0,6 "created_at": "2026-02-14T02:51:50+0000",7 "updated_at": "2026-02-14T02:51:51+0000",8 "payment_consent": {9 "initial_payment": false,10 "next_triggered_by": "merchant",11 "merchant_trigger_reason": "scheduled",12 "terms_of_use": {13 "payment_amount_type": "FIXED",14 "fixed_payment_amount": 100,15 "payment_schedule": {16 "period": 7,17 "period_unit": "WEEK"18 },19 "billing_cycle_charge_day": 12,20 "payment_currency": "TWD"21 }22 },23 "next_action": {24 "type": "render_qrcode",25 "qrcode": "https://uat-service.jkopay.app/r/AuthPay?scope=regular&authpayParams=YXV0aE5vPTc0MjgyNjk3MTg4Njk0MjIwODA=",26 "url": "https://uat-service.jkopay.app/r/AuthPay?scope=regular&authpayParams=YXV0aE5vPTc0MjgyNjk3MTg4Njk0MjIwODA="27 },28 "return_url": "https://www.airwallex.com/",29 "original_amount": 0,30 "original_currency": "TWD"31}
Send a subsequent payment request
Sample request:
Shell
1curl --location --request POST 'https://api-staging.airwallex.com/api/v1/pa/payment_intents/int_sgstpcstphg3f9pgrhl/confirm' \2--data-raw '{3 "request_id": "79b6f381-9771-4f9c-9d97-5e7a36b14c92",4 "payment_consent_id": "cst_sgstvhn5zhfs3ef9wj1"5}'
Sample response:
JSON
1{2 "payment_consent_id": "cst_sgstvhn5zhfs3ef9wj1",3 },4 "status": "PENDING",5 "captured_amount": 0,6 "created_at": "2026-02-25T02:53:38+0000",7 "updated_at": "2026-02-25T02:53:46+0000",8 "return_url": "https://staging-pacheckoutdemo.airwallex.com/checkout-result?isTesting=N",9 "original_amount": 5,10 "original_currency": "TWD"11}
Disable a consent
You can disable a consent using the Disable a Payment Consent API API. Once disabled, the consent cannot be used again.
Was this page helpful?