Airwallex logo
Airwallex logoAirwallex logo

Payment webhooks

Copy for LLMView as Markdown

The following webhook events are available for your Payments integration.

PaymentIntent

EventDescription
payment_intent.createdA PaymentIntent has been created.
payment_intent.requires_payment_methodThis PaymentIntent requires a payment method to proceed.
payment_intent.updatedThis PaymentIntent has been updated with additional information.
payment_intent.requires_captureMerchant capture is required to fulfill this PaymentIntent.
payment_intent.requires_customer_actionAdditional customer action is required to fulfill this PaymentIntent, for example, 3D Secure authentication or redirects for local payment methods.
payment_intent.pendingThe payment request has been accepted. Waiting for the final result. This applies to asynchronous payment methods such as direct debits.
payment_intent.pending_reviewThe payment request was authorized but is undergoing risk review.
payment_intent.succeededA PaymentIntent has been fulfilled.
payment_intent.cancelledThe PaymentIntent has been cancelled.

Payload example

JSON
1{
2 "id":"evt_100_2019102201549020043_8321220011893766",
3 "name":"payment_intent.created"
4 "accountId":"78814faa-1b30-4598-a9c8-f0583db8d09d",
5 "data":{
6 "object": {...}
7 }
8}

object is the response body from Retrieve a PaymentIntent API.

JSON
1{
2 "request_id": "d6a92e2a-02e5-c37b-c977-13796ec7443a",
3 "id": "int_aaaat9w2hgh8mzi1111",
4 "merchant_order_id": "0000000000",
5 "amount": 16.66,
6 "currency": "USD",
7 "captured_amount": 0,
8 "payment_method_options": {
9 "card": {
10 "risk_control": {
11 "three_domain_secure_action": "FORCE_3DS",
12 "three_ds_action": "FORCE_3DS"
13 },
14 "three_ds_action": "FORCE_3DS"
15 }
16 },
17 "status": "REQUIRES_PAYMENT_METHOD",
18 "created_at": "2023-01-13T07:32:05+0000",
19 "updated_at": "2023-01-13T07:32:05+0000"
20}

PaymentAttempt

EventDescription
payment_attempt.receivedThe PaymentAttempt has been received.
payment_attempt.authentication_failedThe PaymentAttempt has failed to be authenticated.
payment_attempt.authentication_redirectedThe PaymentAttempt has been redirected for authentication.
payment_attempt.pending_authorizationThe payment request has been accepted. Waiting for the final result.
payment_attempt.authorization_failedThe PaymentAttempt has failed authorization.
payment_attempt.authorizedThe PaymentAttempt has been authorized and is waiting to be captured.
payment_attempt.capture_requestedThe PaymentAttempt has been requested for capture successfully and is therefore fulfilled.
payment_attempt.settledThis PaymentAttempt's funds have been received by Airwallex from the acquirer.
payment_attempt.paidThis PaymentAttempt's funds have been paid to the merchant's wallet successfully.
payment_attempt.cancelledThe PaymentAttempt has been cancelled.
payment_attempt.expiredThis PaymentAttempt has expired.
payment_attempt.risk_declinedThe PaymentAttempt has failed to pass the risk screen.
payment_attempt.failed_to_processThe PaymentAttempt has failed to be processed.
payment_attempt.capture_failedThe PaymentAttempt has failed to capture.

Payload example

JSON
1{
2 "id":"evt_100_2019102201549020043_8321220011893766",
3 "name":"payment_attempt.received"
4 "accountId":"78814faa-1b30-4598-a9c8-f0583db8d09d",
5 "data":{
6 "object": {...}
7 }
8}

object is the response body from Retrieve a PaymentAttempt API.

JSON
1{
2 "id": "att_hkpdcpcvbgh8mw11111_wkgwfs",
3 "payment_intent_id": "int_hkpdcpcvbgh8mwk1111",
4 "payment_consent_id": "cst_hkpdnqn5bgh8mw1111",
5 "currency": "KRW",
6 "amount": 62723,
7 "payment_method": {
8 "id": "mtd_hkpdcpcvbgh8m111111",
9 "customer_id": "cus_hkpdk7f98gh8ir1111",
10 "type": "card",
11 "card": {
12 "bin": "53651045",
13 "brand": "mastercard",
14 "card_type": "DEBIT",
15 "expiry_month": "09",
16 "expiry_year": "2027",
17 "fingerprint": "111e4Y759jpc5eC3AAAAaaaa/8=",
18 "is_commercial": false,
19 "issuer_country_code": "KR",
20 "issuer_name": "KB KOOKMIN CARD CO., LTD",
21 "last4": "1111",
22 "name": "",
23 "number_type": "PAN"
24 },
25 "status": "CREATED",
26 "created_at": "2023-01-13T07:29:08+0000",
27 "updated_at": "2023-01-13T07:29:08+0000"
28 },
29 "authentication_data": {
30 "avs_result": "U",
31 "cvc_result": "U",
32 "ds_data": {},
33 "fraud_data": {
34 "score": "0"
35 }
36 },
37 "captured_amount": 0,
38 "refunded_amount": 0,
39 "settle_via": "airwallex",
40 "status": "RECEIVED",
41 "created_at": "2023-01-13T07:29:08+0000",
42 "updated_at": "2023-01-13T07:29:08+0000"
43}

PaymentConsent

EventDescription
payment_consent.createdThe PaymentConsent has been created.
payment_consent.updatedThe PaymentConsent has been updated.
payment_consent.pendingThe mandate of the PaymentConsent has been submitted. Waiting for the final result.
payment_consent.verifiedThe PaymentConsent has been verified.
payment_consent.disabledThe PaymentConsent has been disabled. The PaymentConsent cannot be used or updated.
payment_consent.pausedThe PaymentConsent has been paused.
payment_consent.requires_payment_methodThe PaymentConsent requires a payment method because none was provided, or the previous payment method failed verification and a different payment method should be provided.
payment_consent.requires_customer_actionThe PaymentConsent requires additional customer action to complete verification for the payment method.
payment_consent.verification_failedThe PaymentConsent verification has failed. Retry the consent verification or select a different payment method.

Payload example

JSON
1{
2 "id":"evt_100_2019102201549020043_8321220011893766",
3 "name":"payment_consent.verified"
4 "accountId":"78814faa-1b30-4598-a9c8-f0583db8d09d",
5 "data":{
6 "object": {...}
7 }
8}

object is the response from Retrieve a PaymentConsent API.

JSON
1{
2 "id": "cst_hkdm2frl4gh6j8v59mf",
3 "request_id": "b1717535-620c-4585-839b-cf4225ff8f5e",
4 "customer_id": "cus_hkdmlrgw4gh5g65yhel",
5 "merchant_trigger_reason": "unscheduled",
6 "next_triggered_by": "merchant",
7 "payment_method": {
8 "id": "mtd_hkdm2frl4gh6j8uzuel",
9 "card": {
10 "bin": "41111111",
11 "brand": "visa",
12 "card_type": "DEBIT",
13 "expiry_month": "12",
14 "expiry_year": "2034",
15 "fingerprint": "55H7FnahCHdynKufFW1CBvlSzqE=",
16 "is_commercial": false,
17 "issuer_country_code": "US",
18 "issuer_name": "JPMORGAN CHASE BANK, N.A.",
19 "last4": "1111",
20 "name": "321",
21 "number_type": "PAN"
22 },
23 "type": "card"
24 },
25 "status": "VERIFIED",
26 "created_at": "2023-01-11T09:44:15+0000",
27 "updated_at": "2023-01-11T09:44:15+0000"
28}

Customer

EventDescription
customer.createdA customer has been created.
customer.updatedThe customer has been updated.

Payload example

JSON
1{
2 "id":"evt_100_2019102201549020043_8321220011893766",
3 "name":"customer.created"
4 "accountId":"78814faa-1b30-4598-a9c8-f0583db8d09d",
5 "data":{
6 "object": {...}
7 }
8}

object is the response body from Retrieve a Customer API.

JSON
1{
2 "id": "cus_hkdmlrgw4gh5g65yhel",
3 "email": "",
4 "first_name": "John",
5 "last_name": "Doe",
6 "merchant_customer_id": "685e74bd-e6b3-4c41-90cc-baacb1fdd8ca",
7 "phone_number": "32132112",
8 "request_id": "90d0b992-fc8a-49be-98fb-623a885ca2a7",
9 "updated_at": "2023-01-10T10:06:37+0000",
10 "additional_info": {
11 "registered_via_social_media": false
12 },
13 "created_at": "2023-01-10T10:06:37+0000"
14}

Refund

EventDescription
refund.receivedThis refund request has been received and will be processed later.
refund.acceptedThis refund request has been accepted and started processing.
refund.settledThis refund has been settled.
refund.failedThis refund has failed.

Payload example

JSON
1{
2 "id":"evt_100_2019102201549020043_8321220011893766",
3 "name":"refund.accepted"
4 "accountId":"78814faa-1b30-4598-a9c8-f0583db8d09d",
5 "data":{
6 "object": {...}
7 }
8}

object is the response body from Retrieve a Refund API.

JSON
1{
2 "request_id": "GN230113463059337228",
3 "id": "rfd_aaaanqn5bgh8mnssssh_ga04nr",
4 "payment_attempt_id": "att_hkpdxmj6wggosgaaniy_ga04nr",
5 "payment_intent_id": "int_hkpdxmj6wggosga04nr",
6 "amount": 21.49,
7 "currency": "SGD",
8 "reason": "Return good",
9 "status": "ACCEPTED",
10 "created_at": "2023-01-13T07:20:02+0000",
11 "updated_at": "2023-01-13T07:20:02+0000"
12}

PaymentMethod

EventDescription
payment_method.createdThis payment method has been created.
payment_method.updatedThis payment method has been updated.
payment_method.attachedThis payment method has been attached to a customer.
payment_method.detachedThis payment method has been detached from a customer.
payment_method.disabledThis payment method has been disabled.

Payload example

JSON
1{
2 "id":"evt_100_2019102201549020043_8321220011893766",
3 "name":"payment_method.created"
4 "accountId":"78814faa-1b30-4598-a9c8-f0583db8d09d",
5 "data":{
6 "object": {...}
7 }
8}

object is the response body from Retrieve a PaymentMethod API.

JSON
1{
2 "id": "mtd_hkdm2frl4gh6j8uzuel",
3 "request_id": "d7044249-13b2-4b7f-842f-e5398bc4b9f0",
4 "customer_id": "cus_hkdmlrgw4gh5g65yhel",
5 "type": "card",
6 "card": {
7 "bin": "41111111",
8 "brand": "visa",
9 "card_type": "DEBIT",
10 "expiry_month": "12",
11 "expiry_year": "2034",
12 "fingerprint": "55H7FnahCHdynKufFW1CBvlSzqE=",
13 "is_commercial": false,
14 "issuer_country_code": "US",
15 "issuer_name": "JPMORGAN CHASE BANK, N.A.",
16 "last4": "1111",
17 "name": "321",
18 "number_type": "PAN"
19 },
20 "status": "CREATED",
21 "created_at": "2023-01-11T09:44:14+0000",
22 "updated_at": "2023-01-11T09:44:14+0000"
23}

Dispute

EventDescription
payment_dispute.requires_responseYou have received a dispute event that requires your response.
payment_dispute.challengedYou have challenged the dispute event.
payment_dispute.acceptedYou have accepted the dispute event.
payment_dispute.expiredThe dispute event expired without response. This is applicable for disputes in the RFI stage.
payment_dispute.pending_closureYou have received a pre-arbitration request which will be auto-accepted by Airwallex.
payment_dispute.pending_decisionYour dispute response was not accepted and has been escalated to arbitration.
payment_dispute.wonThe issuing bank has accepted your response and you won the dispute.
payment_dispute.lostThe issuing bank did not accept the dispute response you filed and you lost the dispute. No further action is possible.
payment_dispute.reversedThe dispute event has been reversed. No further action is required from your side.

Payload example

JSON
1{
2 "id":"evt_100_2019102201549020043_8321220011893766",
3 "name":"payment_dispute.accepted"
4 "accountId":"78814faa-1b30-4598-a9c8-f0583db8d09d",
5 "data":{
6 "object": {...}
7 }
8}

object is the response body from Retrieve a Payment Dispute API.

JSON
1{
2 "dispute_id": "dst_ch4cfk4lsdEmmgNc3gzyXz7g27n",
3 "payment_intent_id": "int_hkpd9mrvng04lcuh2xu",
4 "payment_attempt_id": "att_hkpd6tx6tg04lcv60dt_cuh2xu",
5 "merchant_account": "7e481c53-c0bc-484b-9b74-62e715c32f0e",
6 "card_scheme": "visa",
7 "dispute_reason_type": "FRAUDULENT",
8 "dispute_original_reason_code": "10.4",
9 "accept_reason": null,
10 "status": "EVIDENCE_REQUIRED",
11 "stage": "DISPUTE",
12 "dispute_amount": 10.10,
13 "dispute_currency": "USD",
14 "updated_by": "AIRWALLEX",
15 "updated_at": "2021-03-03T08:17:27.659+0000",
16 "created_at": "2021-03-03T08:17:27.659+0000"
17}
EventDescription
payment_link.createdA PaymentLink has been created and is waiting for payments.
payment_link.paidThe PaymentLink received a new payment.

Payload example

JSON
1{
2 "account_id": "acct__ncI2nypPKSq2VXKxscAcg",
3 "created_at": "2023-06-01T11:00:01+0000",
4 "data": {
5 "object": {...}
6 }
7}

object is the response body from Retrieve a PaymentLink API.

JSON
1{
2 "active": true,
3 "amount": 165.15,
4 "collectable_shopper_info": {
5 "message": true,
6 "phone_number": false,
7 "reference": false,
8 "shipping_address": false
9 },
10 "created_at": "2023-06-01T11:00:00+0000",
11 "currency": "USD",
12 "customer_id": "cus_hkdmmvww8gaclhotx3j",
13 "description": "shoes and dress",
14 "expires_at": "2023-11-04T16:00:00+0000",
15 "id": "475dc845-bc7c-47eb-b2b0-52782b9d078d",
16 "metadata": {
17 "foo": "bar"
18 },
19 "reference": "internal merchant reference",
20 "reusable": true,
21 "status": "UNPAID",
22 "successful_payment_intent_count": 0,
23 "supported_currencies": [],
24 "title": "Order #1529",
25 "updated_at": "2023-06-01T11:00:00+0000",
26 "url": "https://www.airwallex.com/pay/hk/link/acdab0d955b5"
27}

POS terminal

EventDescription
pos.terminal.activatedA POS terminal has been activated.
pos.terminal.deactivatedThis POS terminal has been deactivated.
pos.terminal.terminatedThis POS terminal has been terminated.
pos.terminal.updatedThis POS terminal has been updated.
pos.terminal.admin_password_status.reset_requestedThe admin password of this POS terminal has been requested to reset.
pos.terminal.admin_password_status.activatedThe admin password of this POS terminal has been activated.
pos.terminal.admin_password_status.lockedThe admin password of this POS terminal has been locked due to multiple failed attempts.
pos.terminal.refund_password_status.reset_requestedThe refund password of this POS terminal has been requested to reset.
pos.terminal.refund_password_status.activatedThe refund password of this POS terminal has been activated.
pos.terminal.refund_password_status.lockedThe refund password of this POS terminal has been locked due to multiple failed attempts.
pos.terminal.refund_password_status.opted_outThe refund password of this POS terminal has been opted out.

Fraud

EventDescription
fraud.merchant_notifiedThis payment has been identified as fraudulent. Initiate a refund and hold delivery of goods or services.

Funds split

EventDescription
funds_split.createdA request to split funds has been created.
funds_split.failedThe request to split funds has failed.
funds_split.releasedThe release instruction to split funds has been received.
funds_split.settledThe funds have been split and settled into the destination account.
Was this page helpful?