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

awaiting_payment_method

Status when the payment intent is waiting for a payment method to be attached.

Examples of when a Payment Intent would have the awaiting_payment_method status:

  • upon creation of a payment intent record prior to an attach attempt
  • a failed attach attempt (see: last_payment_error in the response)
  • the QR Ph code generated expires

awaiting_next_action

Status when the payment intent has been successfully attached and is waiting for the transaction to be authorized by the customer.

processing

Transitory status that indicates that the payment is being processed. This status will eventually resolve to succeeded or awaiting_payment_method.

succeeded

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 EventEvent Definition
payment.paidEvent that notifies that a corresponding payment is successfully paid.
payment.failedEvent 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.