Save bank details for future payments
This guide describes how to save shopper's bank details and use it for subsequent payments.
Save bank details for the first time
- Call Create a Customer API if it is a new customer and save the returned Customer ID.
Example request:
Shell1curl --request POST \2--url 'https://api-demo.airwallex.com/api/v1/pa/customers/create' \3--header 'Content-Type: application/json' \4--header 'Authorization: Bearer <your_bearer_token>' \5--data '{6 "request_id": "743c92db-289f-4e0c-a578-e902a56dbd46",7 "merchant_customer_id": "661b4105-55ae-4acc-b672-92bbc8bd1e30",8 "email": "[email protected]",9 "phone_number": "15566668888",10 "first_name":"John",11 "last_name":"Doe",12 "additional_info": {13 "register_via_social_media": true,14 "registration_date":"2012-12-30",15 "first_successful_order_date": "2012-12-30"16 }17}'
Example response:
JSON1{2 "id": "cus_sgstpkhp5ga4vn7rqyo",3 "request_id": "743c92db-289f-4e0c-a578-e902a56dbd46",4 "merchant_customer_id": "661b4105-55ae-4acc-b672-92bbc8bd1e30",5 "first_name": "John",6 "last_name": "Doe",7 "email": "[email protected]",8 "phone_number": "15566668888",9 "created_at": "2022-05-26T08:12:26+0000",10 "updated_at": "2022-05-26T08:12:26+0000"11}
- Create a PaymentConsent API with the Customer ID from Step 1, and save Consent ID for subsequent transactions.
Example request
Shell1curl --request POST \2--url 'https://api-demo.airwallex.com/api/v1/pa/payment_consents/create' \3--header 'Content-Type: application/json' \4--header 'Authorization: Bearer <your_bearer_token>' \5--data '{6 "request_id": "e06ba29c-aabc-4a17-accf-c08fe06f418d",7 "customer_id": "cus_sgstpkhp5ga4vn7rqyo",8 "currency": "USD",9 "next_triggered_by": "merchant",10 "merchant_trigger_reason": "unscheduled"11}'
Example response
JSON1{2 "id": "cst_sgstr8wqfga4vna9wc1",3 "request_id": "e06ba29c-aabc-4a17-accf-c08fe06f418d",4 "customer_id": "cus_sgstpkhp5ga4vn7rqyo",5 "next_triggered_by": "merchant",6 "merchant_trigger_reason": "unscheduled",7 "status": "PENDING_VERIFICATION",8 "created_at": "2022-05-26T08:12:30+0000",9 "updated_at": "2022-05-26T08:12:30+0000",10 "client_secret": "eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NTM1NTI3NTEsImV4cCI6MTY1MzU1NjM1MSwiYWNjb3VudF9pZCI6ImRiMGJkMDgzLTlkZDUtNDk3ZC05ZGFkLWI3NGNkOGNiMWE4ZiIsImRhdGFfY2VudGVyX3JlZ2lvbiI6IlNHIiwiY29uc2VudF9pZCI6ImNzdF9zZ3N0cjh3cWZnYTR2bmE5d2MxIiwicGFkYyI6IlNHIn0.gqCk3eANNbn5DX7UpsA6uG8JoXksn3Yy7JSJaVTcqZg",11 "mandate": {12 "accepted_at": "2022-05-26T08:12:30+0000",13 "version": "1.0"14 }15}
- Verify a PaymentConsent through a transaction authorization or verification. You have two options to get the PaymentConsent verified.
Option 1: Save bank account details without a payment
The shopper only attaches the bank account details for future payments. Airwallex offers two verification methods for SEPA Direct Debit: TrueLayer and micro-deposit verification.
TrueLayer verification
TrueLayer is an open banking solution that helps you verify bank accounts instantly and securely.
TrueLayer requires bank_name when confirming the PaymentIntent. You can call Get available bank names API with payment_method_type and country_code to get the supported banks.
Example request
Shell1url --request POST \2--url 'https://api-demo.airwallex.com/api/v1/pa/config/banks?payment_method_type=sepa_direct_debit&country_code=DE' \3--header 'Content-Type: application/json' \4--header 'Authorization: Bearer <your_bearer_token>' \5--data '{6 "has_more": false,7 "items": [8 {9 "bank_name": "revolut",10 "display_name": "Revolut",11 "resources": {12 "logo_url": "https://truelayer-provider-assets.s3.amazonaws.com/global/icons/revolut.svg"13 }14 }15 ]16}'
Set the verification method to truelayer using thepayment_method_options.sepa_direct_debit.verification_method field. You can also provide owner_name and owner_email in the request so that the shopper will see these fields pre-filled on the confirmation page.
Example request
Shell1url --request POST \2--url 'https://api-demo.airwallex.com/api/v1/pa/payment_consents/cst_sgstr8wqfga4vna9wc1/verify' \3--header 'Content-Type: application/json' \4--header 'Authorization: Bearer <your_bearer_token>' \5--data '{6 "request_id": "c8812204-0b15-4ae0-8758-26c4b601b055",7 "payment_method": {8 "type": "sepa_direct_debit",9 "sepa_direct_debit": {10 "country_code": "DE",11 "bank_name": "revolut"12 }13 },14 "payment_consent_reference": {15 "id": "cst_sgstfvwszgf1fm9uk9w"16 },17 "payment_method_options": {18 "sepa_direct_debit": {19 "verification_method": "truelayer"20 }21 }22}'
Example response
JSON1{2 "id": "int_sgstpf54lgf6t7z71eh",3 "request_id": "c38579ad-4c08-4aad-9dbb-8965bd7c11ac",4 "amount": 4.4,5 "currency": "EUR",6 "merchant_order_id": "ea95b90f-2ba5-43f8-a6ab-9fa2ce476426",7 "customer_id": "cus_sgsts772qgf6t6fjpxb",8 "payment_consent_id": "cst_sgstpf54lgf6t6h2i0r",9 "descriptor": "For internal testing",10 "status": "REQUIRES_CUSTOMER_ACTION",11 "captured_amount": 0,12 "latest_payment_attempt": {13 "id": "att_sgstpf54lgf6t817nlq_7z71eh",14 "amount": 4.4,15 "currency": "EUR",16 "payment_method": {17 "type": "sepa_direct_debit"18 },19 "payment_intent_id": "int_sgstpf54lgf6t7z71eh",20 "payment_consent_id": "cst_sgstpf54lgf6t6h2i0r",21 "status": "AUTHENTICATION_REDIRECTED",22 "captured_amount": 0,23 "refunded_amount": 0,24 "created_at": "2022-11-07T08:29:12+0000",25 "updated_at": "2022-11-07T08:29:16+0000",26 "settle_via": "airwallex",27 "authentication_data": {28 "ds_data": {},29 "fraud_data": {30 "score": "0"31 },32 "avs_result": "U",33 "cvc_result": "U"34 }35 },36 "created_at": "2022-11-07T08:29:09+0000",37 "updated_at": "2022-11-07T08:29:16+0000",38 "next_action": {39 "type": "redirect",40 "method": "GET",41 "url": "https://checkout-staging.airwallex.com/#/page/sg/truelayer/pay/txn_sgst9xh7gggzwh2ajrx_gxzhij?auth_url=https%3A%2F%2Fauth.truelayer-sandbox.com%3Fclient_id%3Dsandbox-airwallex-3066c0%26redirect_uri%3Dhttps%3A%2F%2Fcheckout-staging.airwallex.com%2Ftruelayer%2Fcallback%26providers%3Dmock%26state%3D6136811274633599%26response_type%3Dcode%26scope%3Dinfo%2520accounts%2520balance%2520offline_access%2520verification"42 },43 "base_amount": 4.444}
Micro-deposit verification
Airwallex will send the micro-deposit verification email to the shopper to complete the verification process.
Example request
Shell1url --request POST \2--url 'https://api-demo.airwallex.com/api/v1/pa/payment_consents/cst_sgstr8wqfga4vna9wc1/verify' \3--header 'Content-Type: application/json' \4--header 'Authorization: Bearer <your_bearer_token>' \5--data '{6 "request_id": "c38579ad-4c08-4aad-9dbb-8965bd7c11ac",7 "payment_method": {8 "type": "sepa_direct_debit",9 "id": "mtd_sgstbzd9ngf6lw52enq",10 "sepa_direct_debit": {11 "iban": "DE00001323232323311",12 "owner_name": "John doe",13 "owner_email": "[email protected]"14 }15 },16 "payment_consent_reference": {17 "id": "cst_sgstfvwszgf1fm9uk9w"18 },19 "payment_method_options": {20 "sepa_direct_debit": {21 "verification_method": "micro_deposit"22 }23 }24}'
Example response
JSON1{2 "id": "int_sgstbn2sxgai33j69xs",3 "request_id": "c38579ad-4c08-4aad-9dbb-8965bd7c11ac",4 "amount": 4.4,5 "currency": "EUR",6 "merchant_order_id": "ea95b90f-2ba5-43f8-a6ab-9fa2ce476426",7 "payment_consent_id": "cus_sgstpkhp5ga4vn7rqyo",8 "descriptor": "For internal testing",9 "status": "REQUIRES_CUSTOMER_ACTION",10 "captured_amount": 0,11 "latest_payment_attempt": {12 "id": "att_sgstjjpnbgf6o7wlijd_3j69xs",13 "amount": 4.4,14 "currency": "EUR",15 "payment_method": {16 "id": "mtd_sgstjjpnbgf6o7wftae",17 "customer_id": "cus_sgstjjpnbgf6lw15hwy",18 "type": "sepa_direct_debit",19 "sepa_direct_debit": {20 "iban": "DE00001323232323311",21 "owner_name": "John doe",22 "owner_email": "[email protected]"23 },24 "status": "CREATED",25 "created_at": "2022-11-07T05:27:40+0000",26 "updated_at": "2022-11-07T05:27:40+0000"27 },28 "payment_intent_id": "int_sgstbn2sxgai33j69xs",29 "payment_consent_id": "cus_sgstpkhp5ga4vn7rqyo",30 "status": "AUTHENTICATION_REDIRECTED",31 "captured_amount": 0,32 "refunded_amount": 0,33 "created_at": "2022-11-07T05:27:41+0000",34 "updated_at": "2022-11-07T05:27:49+0000",35 "settle_via": "airwallex",36 "authentication_data": {37 "ds_data": {},38 "fraud_data": {39 "action": "VERIFY",40 "score": "0"41 },42 "avs_result": "U",43 "cvc_result": "U"44 }45 },46 "created_at": "2022-11-07T05:27:22+0000",47 "updated_at": "2022-11-07T05:27:49+0000",48 "next_action": {49 "type": "notify_micro_deposits",50 "url": "https://checkout-staging.airwallex.com/#/page/direct-debit-verify-account/sg/vfy_sgstmfkqggf6o81nrm8_7lbs9n",51 "micro_deposit_count": "2",52 "email": "[email protected]"53 },54 "base_amount": 1055}
Option 2: Save bank account details during payment
The shopper pays for the first order and attaches the bank account details for future payments. You can Create a PaymentIntent API and Confirm a PaymentIntent API with payment_consent_reference from Step 2. This will return SUCCEEDED status for the first payment if the verification is successfull.
TrueLayer verification
TrueLayer requires bank_name when confirming the PaymentIntent. You can call Get available bank names API with payment_method_type and country_code to get the supported banks.
Example request
Shell1url --request POST \2--url 'https://api-demo.airwallex.com/api/v1/pa/config/banks?payment_method_type=sepa_direct_debit&country_code=DE' \3--header 'Content-Type: application/json' \4--header 'Authorization: Bearer <your_bearer_token>' \5--data '{6 "has_more": false,7 "items": [8 {9 "bank_name": "revolut",10 "display_name": "Revolut",11 "resources": {12 "logo_url": "https://truelayer-provider-assets.s3.amazonaws.com/global/icons/revolut.svg"13 }14 }15 ]16}'
Set the verification method to truelayer using thepayment_method_options.sepa_direct_debit.verification_method field. You can also provide owner_name and owner_email in the request so that the shopper will see these fields pre-filled on the confirmation page.
Example request
Shell1url --request POST \2--url 'https://api-demo.airwallex.com/api/v1/pa/payment_intents/int_sgstbn2sxgai33j69xs/confirm' \3--header 'Content-Type: application/json' \4--header 'Authorization: Bearer <your_bearer_token>' \5--data '{6 "request_id": "c38579ad-4c08-4aad-9dbb-8965bd7c11ac",7 "payment_method": {8 "type": "sepa_direct_debit",9 "sepa_direct_debit": {10 "country_code": "DE",11 "bank_name": "revolut"12 }13 },14 "payment_consent_reference": {15 "id": "cst_sgstfvwszgf1fm9uk9w"16 },17 "payment_method_options": {18 "sepa_direct_debit": {19 "verification_method": "truelayer"20 }21 }22}'
Example response
JSON1{2 "id": "int_sgstpf54lgf6t7z71eh",3 "request_id": "c38579ad-4c08-4aad-9dbb-8965bd7c11ac",4 "amount": 4.4,5 "currency": "EUR",6 "merchant_order_id": "ea95b90f-2ba5-43f8-a6ab-9fa2ce476426",7 "customer_id": "cus_sgsts772qgf6t6fjpxb",8 "payment_consent_id": "cst_sgstpf54lgf6t6h2i0r",9 "descriptor": "For internal testing",10 "status": "REQUIRES_CUSTOMER_ACTION",11 "captured_amount": 0,12 "latest_payment_attempt": {13 "id": "att_sgstpf54lgf6t817nlq_7z71eh",14 "amount": 4.4,15 "currency": "EUR",16 "payment_method": {17 "type": "sepa_direct_debit"18 },19 "payment_intent_id": "int_sgstpf54lgf6t7z71eh",20 "payment_consent_id": "cst_sgstpf54lgf6t6h2i0r",21 "status": "AUTHENTICATION_REDIRECTED",22 "captured_amount": 0,23 "refunded_amount": 0,24 "created_at": "2022-11-07T08:29:12+0000",25 "updated_at": "2022-11-07T08:29:16+0000",26 "settle_via": "airwallex",27 "authentication_data": {28 "ds_data": {},29 "fraud_data": {30 "score": "0"31 },32 "avs_result": "U",33 "cvc_result": "U"34 }35 },36 "created_at": "2022-11-07T08:29:09+0000",37 "updated_at": "2022-11-07T08:29:16+0000",38 "next_action": {39 "type": "redirect",40 "method": "GET",41 "url": "https://checkout-staging.airwallex.com/#/page/sg/truelayer/pay/txn_sgst9xh7gggzwh2ajrx_gxzhij?auth_url=https%3A%2F%2Fauth.truelayer-sandbox.com%3Fclient_id%3Dsandbox-airwallex-3066c0%26redirect_uri%3Dhttps%3A%2F%2Fcheckout-staging.airwallex.com%2Ftruelayer%2Fcallback%26providers%3Dmock%26state%3D6136811274633599%26response_type%3Dcode%26scope%3Dinfo%2520accounts%2520balance%2520offline_access%2520verification"42 },43 "base_amount": 4.444}
Micro-deposit verification
Example request
Shell1url --request POST \2--url 'https://api-demo.airwallex.com/api/v1/pa/payment_intents/int_sgstbn2sxgai33j69xs/confirm' \3--header 'Content-Type: application/json' \4--header 'Authorization: Bearer <your_bearer_token>' \5--data '{6 "request_id": "c38579ad-4c08-4aad-9dbb-8965bd7c11ac",7 "payment_method": {8 "type": "sepa_direct_debit",9 "id": "mtd_sgstbzd9ngf6lw52enq",10 "sepa_direct_debit": {11 "iban": "DE00001323232323311",12 "owner_name": "John doe",13 "owner_email": "[email protected]"14 }15 },16 "payment_consent_reference": {17 "id": "cst_sgstfvwszgf1fm9uk9w"18 },19 "payment_method_options": {20 "sepa_direct_debit": {21 "verification_method": "micro_deposit"22 }23 }24}'
Example response
JSON1{2 "id": "int_sgstbn2sxgai33j69xs",3 "request_id": "c38579ad-4c08-4aad-9dbb-8965bd7c11ac",4 "amount": 4.4,5 "currency": "EUR",6 "merchant_order_id": "ea95b90f-2ba5-43f8-a6ab-9fa2ce476426",7 "payment_consent_id": "cus_sgstpkhp5ga4vn7rqyo",8 "descriptor": "For internal testing",9 "status": "REQUIRES_CUSTOMER_ACTION",10 "captured_amount": 0,11 "latest_payment_attempt": {12 "id": "att_sgstjjpnbgf6o7wlijd_3j69xs",13 "amount": 4.4,14 "currency": "EUR",15 "payment_method": {16 "id": "mtd_sgstjjpnbgf6o7wftae",17 "customer_id": "cus_sgstjjpnbgf6lw15hwy",18 "type": "sepa_direct_debit",19 "sepa_direct_debit": {20 "iban": "DE00001323232323311",21 "owner_name": "John doe",22 "owner_email": "[email protected]"23 },24 "status": "CREATED",25 "created_at": "2022-11-07T05:27:40+0000",26 "updated_at": "2022-11-07T05:27:40+0000"27 },28 "payment_intent_id": "int_sgstbn2sxgai33j69xs",29 "payment_consent_id": "cus_sgstpkhp5ga4vn7rqyo",30 "status": "AUTHENTICATION_REDIRECTED",31 "captured_amount": 0,32 "refunded_amount": 0,33 "created_at": "2022-11-07T05:27:41+0000",34 "updated_at": "2022-11-07T05:27:49+0000",35 "settle_via": "airwallex",36 "authentication_data": {37 "ds_data": {},38 "fraud_data": {39 "action": "VERIFY",40 "score": "0"41 },42 "avs_result": "U",43 "cvc_result": "U"44 }45 },46 "created_at": "2022-11-07T05:27:22+0000",47 "updated_at": "2022-11-07T05:27:49+0000",48 "next_action": {49 "type": "notify_micro_deposits",50 "url": "https://checkout-staging.airwallex.com/#/page/direct-debit-verify-account/sg/vfy_sgstmfkqggf6o81nrm8_7lbs9n",51 "micro_deposit_count": "2",52 "email": "[email protected]"53 },54 "base_amount": 1055}
Successful verification will change the status of PaymentConsent to VERIFIED. If the PaymentConsent is not verified, the status will remain as PENDING_VERIFICATION, and next_action will appear in the response.
Initiate a subsequent transaction using stored bank account details
- Create a PaymentIntent API with the corresponding Customer ID.
Example request:
Shell1url --request POST \2--url 'https://api-demo.airwallex.com/api/v1/pa/payment_intents/create' \3--header 'Content-Type: application/json' \4--header 'Authorization: Bearer <your_bearer_token>' \5--data '{6 "request_id": "e71db33e-e191-48b1-82ae-ed19fdcc3fd9",7 "amount": 4.4,8 "currency": "EUR",9 "customer_id": "cus_sgstpkhp5ga4vn7rqyo",10 "merchant_order_id": "ea95b90f-2ba5-43f8-a6ab-9fa2ce476426",11 "return_url": "https://www.airwallex.com",12 "descriptor": "For internal testing",13 "additional_data": "131231232"14}'
Example response:
JSON1{2 "id": "int_sgstbzd9ngf6oc3f6ce",3 "request_id": "e71db33e-e191-48b1-82ae-ed19fdcc3fd9",4 "amount": 4.4,5 "currency": "EUR",6 "merchant_order_id": "ea95b90f-2ba5-43f8-a6ab-9fa2ce476426",7 "customer_id": "cus_sgstjjpnbgf6lw15hwy",8 "descriptor": "For internal testing",9 "status": "REQUIRES_PAYMENT_METHOD",10 "captured_amount": 0,11 "created_at": "2022-11-07T05:31:54+0000",12 "updated_at": "2022-11-07T05:31:54+0000",13 "available_payment_method_types": [14 "sepa_direct_debit"15 ],16 "client_secret": "eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2Njc3OTkxMTQsImV4cCI6MTY2NzgwMjcxNCwidHlwZSI6ImNsaWVudC1zZWNyZXQiLCJwYWRjIjoiU0ciLCJhY2NvdW50X2lkIjoiMTc1MjY1YWMtMGVmZi00ODg4LTlhNDgtMzI4NTE3YmJmNGFhIiwiaW50ZW50X2lkIjoiaW50X3Nnc3RiemQ5bmdmNm9jM2Y2Y2UiLCJjdXN0b21lcl9pZCI6ImN1c19zZ3N0ampwbmJnZjZsdzE1aHd5IiwiYnVzaW5lc3NfbmFtZSI6IkdveWV0dGUgTExDIn0.bE164aOthTfFQYqcBro5fGbwvhw5w0RS3Y1MruCyHg0",17 "base_amount": 4.418}
- Confirm a PaymentIntent API with
payment_consent_reference.idto request payment with reference to the stored PaymentConsent.
Example request:
Shell1url --request POST \2--url 'https://api-demo.airwallex.com/api/v1/pa/payment_intents/int_sgstbn2sxgai33j69xs/confirm' \3--header 'Content-Type: application/json' \4--header 'Authorization: Bearer <your_bearer_token>' \5--data '{6 "request_id": "c38579ad-4c08-4aad-9dbb-8965bd7c11ac",7 "payment_consent_reference": {8 "id": "cst_sgstr8wqfga4vna9wc1"9 }10}'
Example response:
JSON1{2 "id": "int_sgstbn2sxgai33j69xs",3 "request_id": "8faf0b58-858a-4be5-85fd-0048a303d04d",4 "amount": 4.4,5 "currency": "EUR",6 "merchant_order_id": "ea95b90f-2ba5-43f8-a6ab-9fa2ce476426",7 "payment_consent_id": "cst_sgstr8wqfga4vna9wc1",8 "descriptor": "For internal testing",9 "status": "PENDING",10 "captured_amount": 0,11 "latest_payment_attempt": {12 "id": "att_sgstgg7zqgjlmzrl1cy_znl05a",13 "amount": 4.4,14 "currency": "EUR",15 "payment_method": {16 "id": "mtd_sgstfmh8lgjlmzkvbxp",17 "customer_id": "cus_sgstjjpnbgf6lw15hwy",18 "type": "sepa_direct_debit",19 "sepa_direct_debit": {20 "iban": "DE12345678901234",21 "owner_name": "John Doe",22 "owner_email": "[email protected]"23 },24 "status": "CREATED",25 "created_at": "2023-03-31T09:48:02+0000",26 "updated_at": "2023-03-31T09:48:02+0000"27 },28 "payment_intent_id": "int_sgstbn2sxgai33j69xs",29 "payment_consent_id": "cst_sgstr8wqfga4vna9wc1",30 "status": "PENDING_AUTHORIZATION",31 "provider_transaction_id": "2fcaf5a3-ce9e-47ed-8b4a-ccb59802cd92",32 "captured_amount": 0,33 "refunded_amount": 0,34 "created_at": "2023-03-31T09:48:14+0000",35 "updated_at": "2023-03-31T09:48:18+0000",36 "settle_via": "airwallex",37 "authentication_data": {38 "ds_data": {},39 "fraud_data": {40 "action": "ACCEPT",41 "score": "-1"42 },43 "avs_result": "U",44 "cvc_result": "U"45 }46 },47 "created_at": "2023-03-31T09:48:07+0000",48 "updated_at": "2023-03-31T09:48:18+0000",49 "base_amount": 550}
- You can also get a list of PaymentConsents API with the corresponding
Customer IDto render the list of shopper’s payment methods they previously saved.
Example request:
Shell1url --request POST \2--url 'https://api-demo.airwallex.com/api/v1/pa/payment_consents' \3--header 'Content-Type: application/json' \4--header 'Authorization: Bearer <your_bearer_token>' \
Example response:
JSON1{2 "has_more": false,3 "items": [4 {5 "id": "cst_sgstr8wqfga4vna9wc1",6 "request_id": "e06ba29c-aabc-4a17-accf-c08fe06f418d",7 "customer_id": "cus_sgstjjpnbgf6lw15hwy",8 "payment_method": {9 "type": "sepa_direct_debit",10 "id": "mtd_sgstr8wqfga4vnabxmy",11 "sepa_direct_debit": {12 "iban": "DE00001323232323311",13 "owner_name": "John doe",14 "owner_email": "[email protected]",15 }16 },17 "next_triggered_by": "merchant",18 "merchant_trigger_reason": "unscheduled",19 "status": "VERIFIED",20 "created_at": "2022-05-26T08:12:30+0000",21 "updated_at": "2022-05-26T08:12:30+0000",22 "client_secret": "eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NTM1NTI3NTEsImV4cCI6MTY1MzU1NjM1MSwiYWNjb3VudF9pZCI6ImRiMGJkMDgzLTlkZDUtNDk3ZC05ZGFkLWI3NGNkOGNiMWE4ZiIsImRhdGFfY2VudGVyX3JlZ2lvbiI6IlNHIiwiY29uc2VudF9pZCI6ImNzdF9zZ3N0cjh3cWZnYTR2bmE5d2MxIiwicGFkYyI6IlNHIn0.gqCk3eANNbn5DX7UpsA6uG8JoXksn3Yy7JSJaVTcqZg",23 "mandate": {24 "accepted_at": "2023-01-04T06:50:57+0000",25 "version": "1.0",26 "type": "sepa_direct_debit",27 "sepa_direct_debit": {28 "creditor_identifier": "Airwallex",29 "reference": "WBGGYOK87GZT"30 }31 }32 }33 ]34}