Airwallex logo
Airwallex logoAirwallex logo

Accept JKOPay payments

Copy for LLMView as Markdown

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.

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": 12
20 }
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}

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?