Statuses, Messages, Webhook Events
Overview
When accepting payments, you might want your applications to receive events as they occur for various post payment activities.
Statuses
Statuses that a payment intent will transition to while undergoing a transaction as shown below:
Payment Intent Status | Status Definition |
---|---|
| Status when the payment intent is waiting for a payment method to be attached. Examples of when a Payment Intent would have the
|
| Status when the payment intent has been successfully attached and is waiting for the transaction to be authorized by the customer. |
| Transitory status that indicates that the payment is being processed. This status will eventually resolve to |
| Status when the payment transaction is successfully processed. |
Expiry
Specific payment methods will have an expiry period wherein a customer will need to pay within that time. If the customer is not able to pay within the expiry period, the payment method expires. For ewallets, the checkout redirect link on the attach response of the Payment Intent workflow will expire. For QR Ph, the QR code will still be scannable but will return an error if the customer attempts to pay.
Payment Method | Expiry Period (Starts after the Attach step of the Payment Intent Workflow) |
---|---|
GCash | 4 hours |
Maya | 30 minutes |
GrabPay | 15 minutes |
QR Ph | 30 minutes |
Webhook Payment Events
Event notifications will be sent to your registered webhook endpoint containing relevant payment information as shown below:
Webhook Event | Event Definition |
---|---|
payment.paid | Event that notifies that a corresponding payment is successfully paid. |
payment.failed | Event that notifies that a corresponding payment failed. |
Presented below are sample events for each payment method for further reference.
{
"data": {
"id": "evt_9w6KTxQY3hmuDQaALHoAZnRp",
"type": "event",
"attributes": {
"type": "payment.paid",
"livemode": false,
"data": {
"id": "pay_JMg1rgaUtg5U79rRSjiDUvLr",
"type": "payment",
"attributes": {
"access_url": null,
"amount": 10000,
"balance_transaction_id": "bal_txn_4LqZEXFNKR9e8GyAmXBgBF1C",
"billing": null,
"currency": "PHP",
"description": null,
"disputed": false,
"external_reference_number": null,
"fee": 1850,
"foreign_fee": 100,
"livemode": false,
"net_amount": 8050,
"origin": "api",
"payment_intent_id": "pi_1Pb5ED9RDLCSsWMwXT5W6Q3K",
"payout": null,
"source": {
"id": "card_iYXhMRiwoiF45V2fDL6aTjqN",
"type": "card",
"brand": "visa",
"country": "US",
"last4": "4345"
},
"statement_descriptor": "Rigorilla Tech",
"status": "paid",
"tax_amount": null,
"refunds": [],
"taxes": [],
"available_at": 1619686800,
"created_at": 1619426488,
"paid_at": 1619426488,
"updated_at": 1619426488
}
},
"previous_data": {},
"created_at": 1619426488,
"updated_at": 1619426488
}
}
}
{
"data": {
"id": "evt_fSR22twNQfw9Y8ifZQg77enu",
"type": "event",
"attributes": {
"type": "payment.paid",
"livemode": true,
"data": {
"id": "pay_6TABCDAzidyo66vEByqMtYJ6",
"type": "payment",
"attributes": {
"access_url": null,
"amount": 2000,
"balance_transaction_id": "bal_txn_yabcd485aaPdUDdfcT8YthJB",
"billing": {
"address": {
"city": "",
"country": "",
"line1": "",
"line2": "",
"postal_code": "",
"state": ""
},
"email": "[email protected]",
"name": "John Barkery",
"phone": "+639171234567"
},
"currency": "PHP",
"description": "Cookies &Cream",
"disputed": false,
"external_reference_number": "j4qXNN5",
"fee": 1500,
"instant_settlement": null,
"livemode": true,
"net_amount": 500,
"origin": "links",
"payment_intent_id": "pi_abcdJuMAqhGBKii8HEjAT2yX",
"payout": null,
"source": {
"id": "dob_NqMAGNi9abcdqrnAdP3XE8cK",
"type": "dob",
"provider": "ubp",
"provider_id": "UB5732" #This is the ID shown to the customer by UBP
},
"statement_descriptor": "Payment for the Barkery Store",
"status": "paid",
"tax_amount": 0,
"metadata": {
"pm_reference_number": "j4qXNN5"
},
"promotion": null,
"refunds": [],
"taxes": [
{
"amount": 161,
"currency": "PHP",
"inclusive": true,
"name": "VAT",
"type": "vat",
"value": "1200_bps"
}
],
"available_at": 1739264400,
"created_at": 1739166866,
"credited_at": 1739350800,
"paid_at": 1739166865,
"updated_at": 1739166867
}
},
"previous_data": {},
"created_at": 1739166867,
"updated_at": 1739166867
}
}
{
"data": {
"id": "evt_XNQTT6J64gkTwBhrJiZmf9BZ",
"type": "event",
"attributes": {
"type": "payment.paid",
"livemode": true,
"data": {
"id": "pay_vNQdh3edhpd8MJdPmHjYqPMB",
"type": "payment",
"attributes": {
"access_url": null,
"amount": 2000,
"balance_transaction_id": "bal_txn_8Qmr1bX7Ae9h9ys1t2UVEuyY",
"billing": {
"address": {
"city": "",
"country": "",
"line1": "",
"line2": "",
"postal_code": "",
"state": ""
},
"email": "[email protected]",
"name": "Jane Barkery",
"phone": ""
},
"currency": "PHP",
"description": "Cookies and Cream",
"disputed": false,
"external_reference_number": "ruk8A3F",
"fee": 50,
"instant_settlement": null,
"livemode": true,
"net_amount": 1950,
"origin": "links",
"payment_intent_id": "pi_sucFg8XMEGq1234m8eNuseyt",
"payout": null,
"source": {
"id": "src_W8nPj1231FiF327ywyJTwQFu",
"type": "gcash",
"provider": {
"id": "601236985" #This is the ID shown to the customer by GCash
}
},
"statement_descriptor": "The Barkery Store",
"status": "paid",
"tax_amount": 0,
"metadata": {
"pm_reference_number": "ruk8A3F"
},
"promotion": null,
"refunds": [],
"taxes": [
{
"amount": 5,
"currency": "PHP",
"inclusive": true,
"name": "VAT",
"type": "vat",
"value": "1200_bps"
}
],
"available_at": 1739350800,
"created_at": 1739167186,
"credited_at": 1739955600,
"paid_at": 1739167186,
"updated_at": 1739167186
}
},
"previous_data": {},
"created_at": 1739167186,
"updated_at": 1739167186
}
}
}
{
"data": {
"id": "evt_bUkG123QeRMH5fcAUeECAWfc",
"type": "event",
"attributes": {
"type": "payment.paid",
"livemode": true,
"data": {
"id": "pay_EFgQ123gQi37vsChcdCu7LXp",
"type": "payment",
"attributes": {
"access_url": null,
"amount": 2000,
"balance_transaction_id": "bal_txn_M6jpJ8S6123CZKWcnXkyAAmD",
"billing": {
"address": {
"city": "",
"country": "",
"line1": "",
"line2": "",
"postal_code": "",
"state": ""
},
"email": "[email protected]",
"name": "John Barkery",
"phone": "+639171234567"
},
"currency": "PHP",
"description": "Cookies and Cream",
"disputed": false,
"external_reference_number": "JuiXWfy",
"fee": 44,
"instant_settlement": null,
"livemode": true,
"net_amount": 1956,
"origin": "links",
"payment_intent_id": "pi_Ey123RBvioGdCdWEB34zkumd",
"payout": null,
"source": {
"id": "src_pQvGDX123a64pmKkZGbjzPW",
"type": "grab_pay",
"provider": {
"id": "507f885b76d123fe96d777f39c881fc1" #This is the ID shown to the customer by GrabPay
}
},
"statement_descriptor": "The Barkery Store",
"status": "paid",
"tax_amount": 0,
"metadata": {
"pm_reference_number": "JuiXWfy"
},
"promotion": null,
"refunds": [],
"taxes": [
{
"amount": 5,
"currency": "PHP",
"inclusive": true,
"name": "VAT",
"type": "vat",
"value": "1200_bps"
}
],
"available_at": 1739350800,
"created_at": 1739167854,
"credited_at": 1739955600,
"paid_at": 1739167854,
"updated_at": 1739167854
}
},
"previous_data": {},
"created_at": 1739167855,
"updated_at": 1739167855
}
}
}
{
"data": {
"id": "evt_bUkG123QeRMH5fcAUeECAWfc",
"type": "event",
"attributes": {
"type": "payment.paid",
"livemode": true,
"data": {
"id": "pay_Z5e5iabccB3KbmC9wTbUaSBo",
"type": "payment",
"attributes": {
"access_url": null,
"amount": 2000,
"balance_transaction_id": "bal_txn_dTCwEzNkcdeaiAd9Sb6DVsbY",
"billing": {
"address": {
"city": "",
"country": "",
"line1": "",
"line2": "",
"postal_code": "",
"state": ""
},
"email": "[email protected]",
"name": "John Barkery",
"phone": "+639171234567"
},
"currency": "PHP",
"description": "Cookies & Cream",
"disputed": false,
"fee": 40,
"instant_settlement": null,
"livemode": true,
"net_amount": 1960,
"origin": "api",
"payment_intent_id": "pi_yhTar6xzRQTDh123zUtcvfV5",
"payout": null,
"source": {
"id": "paymaya_ZLykabcYYLDkevRBUvEpLQZo",
"type": "paymaya",
"provider": {
"id": "503705443655" #This is the ID shown to the customer by Maya
}
},
"statement_descriptor": "The Barkery Store",
"status": "paid",
"tax_amount": 0,
"metadata": {
"pm_reference_number": "e8d3TuM"
},
"promotion": null,
"refunds": [],
"taxes": [
{
"amount": 4,
"currency": "PHP",
"inclusive": true,
"name": "VAT",
"type": "vat",
"value": "1200_bps"
}
],
"available_at": 1739178000,
"created_at": 1738819283,
"credited_at": 1739350800,
"paid_at": 1738819283,
"updated_at": 1738819283
}
},
"previous_data": {},
"created_at": 1739167855,
"updated_at": 1739167855
}
}
}
You can determine if a payment is successful or not by checking the event type or the status of the payment intent.
Updated 9 days ago