Skip to main content
Version: Live

Webhook Sample Payloads

This page contains representative JSON examples for webhook payloads whose shape has been verified.

Some webhook payloads include large nested objects. The examples below keep the important shape and common fields visible without showing every nullable field.

Each webhook has the same top-level envelope:

{
"event": "PAYOR",
"subtype": "CREATED",
"payload": {}
}

The payload fields depend on the event and subtype.


TRANSACTION​

Transaction webhooks notify your endpoint when transaction activity is emitted.

Payload Fields​

FieldTypeDescription
transaction_idstringUnique transaction identifier.
transaction_typestringTransaction type, such as DEBIT.
statusstringCurrent transaction status.
gross_amountnumberTotal transaction amount in cents.
feesnumberFee amount in cents.
net_amountnumberNet amount in cents.
currencystringTransaction currency.
merchant_uidstringMerchant identifier associated with the transaction.
transaction_datestringTransaction timestamp.
metadatastringJSON string of transaction metadata.
merchantobjectMerchant details included with the transaction.
payment_methodobjectPayment method details included with the transaction.
invoiceobjectInvoice details when the transaction is connected to an invoice.
recurringobjectRecurring payment details when the transaction is connected to a recurring payment.

TRANSACTION.CREATED​

This example is abbreviated. Real transaction payloads may include additional nested fields and nullable values.

{
"event": "TRANSACTION",
"subtype": "CREATED",
"payload": {
"transaction_id": "ptl_txn_123",
"transaction_type": "DEBIT",
"status": "PENDING",
"gross_amount": 102,
"fees": 33,
"net_amount": 69,
"currency": "USD",
"merchant_uid": "mer_123",
"transaction_date": "2026-07-29T18:41:48.0Z",
"metadata": "{\"pay_theory_reference\":\"field-trip\"}",
"merchant": {
"merchant_uid": "mer_123",
"merchant_name": "Acme Store",
"country_code": "USA"
},
"payment_method": {
"payment_method_id": "ptl_pmt_123",
"payment_type": "CARD",
"card_brand": "MASTERCARD",
"card_type": "DEBIT_CARD",
"last_four": "6767",
"payor": {
"payor_id": "ptl_pay_123",
"full_name": "Pat Theodore",
"email": "pat@example.com"
}
}
}
}

MERCHANT​

Merchant webhooks notify your endpoint when a merchant record is created or updated. Hard deletes are not currently documented as webhook events.

Payload Fields​

FieldTypeDescription
merchant_uidstringUnique merchant identifier.
merchant_namestringMerchant display name.
is_systembooleanWhether this is a system merchant.
country_codestring, optionalMerchant country code.
parent_merchant_uidstring, optionalParent merchant identifier when nested.
ach_activeboolean, optionalWhether ACH payments are active.
card_activeboolean, optionalWhether card payments are active.
cash_activeboolean, optionalWhether cash payments are active.
submitted_onboardingboolean, optionalWhether onboarding has been submitted.
settingsobject, optionalMerchant profile, social, or contact settings.

MERCHANT.CREATED​

{
"event": "MERCHANT",
"subtype": "CREATED",
"payload": {
"merchant_uid": "mer_123",
"merchant_name": "Acme Store",
"is_system": false,
"country_code": "USA",
"ach_active": true,
"card_active": true,
"cash_active": false,
"submitted_onboarding": false
}
}

MERCHANT.UPDATED​

{
"event": "MERCHANT",
"subtype": "UPDATED",
"payload": {
"merchant_uid": "mer_123",
"merchant_name": "Acme Store",
"is_system": false,
"country_code": "USA",
"parent_merchant_uid": null,
"ach_active": true,
"card_active": true,
"cash_active": false,
"submitted_onboarding": true,
"settings": {
"contact_email": "ops@acme.com",
"contact_phone": "+18005551212",
"website": "https://paytheory.com"
}
}
}

PAYOR​

Payor webhooks notify your endpoint when a payor record is created or updated.

Payload Fields​

FieldTypeDescription
payor_idstringUnique payor identifier.
merchant_uidstringMerchant identifier associated with the payor.
full_namestring, optionalPayor full name.
emailstring, optionalPayor email address.
phonestring, optionalPayor phone number.
address_line1string, optionalPrimary street address.
address_line2string, optionalSecondary street address.
citystring, optionalCity.
regionstring, optionalState or region.
postal_codestring, optionalPostal or ZIP code.
countrystring, optionalCountry code or name.

PAYOR.CREATED​

{
"event": "PAYOR",
"subtype": "CREATED",
"payload": {
"payor_id": "payor_123",
"merchant_uid": "mer_123",
"full_name": "Pat Theodore",
"email": "pat@example.com",
"phone": "+18005550000",
"address_line1": "123 Main St",
"address_line2": "Suite 100",
"city": "Austin",
"region": "TX",
"postal_code": "78701",
"country": "USA"
}
}

PAYMENT_METHOD​

Payment method webhooks notify your endpoint when a payment method token record is created. Payment method updates use the same event family with the UPDATED subtype.

Payload Fields​

FieldTypeDescription
payment_method_idstringUnique payment method identifier.
merchant_uidstringMerchant identifier associated with the payment method.
payor_idstring, optionalAssociated payor identifier.
payment_typestring, optionalPayment type or category.
card_brandstring, optionalCard brand for card payment methods.
card_typestring, optionalCard type, such as credit or debit.
exp_datestring, optionalExpiration date in the source format.
last_fourstring, optionalLast four digits.
cvv_statusstring, optionalCVV verification status.
bank_account_typestring, optionalBank account type for ACH payment methods.
bank_codestring, optionalBank routing number or bank code.
wallet_typestring, optionalWallet provider or type.
barcode_idstring, optionalBarcode identifier for cash payment flows.
processorstring, optionalUpstream processor name.
processor_tokenstring, optionalProcessor token or reference.
paytheory_encodedstring, optionalEncoded Pay Theory value or token.
issuing_country_codestring, optionalIssuing country code.
is_activeboolean, optionalWhether the payment method is active.
full_namestring, optionalCardholder or account holder name.
address_line1string, optionalBilling address line 1.
address_line2string, optionalBilling address line 2.
citystring, optionalBilling city.
regionstring, optionalBilling state or region.
postal_codestring, optionalBilling postal or ZIP code.
countrystring, optionalBilling country.

PAYMENT_METHOD.CREATED​

{
"event": "PAYMENT_METHOD",
"subtype": "CREATED",
"payload": {
"payment_method_id": "pmt_123",
"merchant_uid": "mer_123",
"payor_id": "payor_123",
"payment_type": "CARD",
"card_brand": "VISA",
"card_type": "CREDIT",
"exp_date": "12/29",
"last_four": "4242",
"cvv_status": "MATCH",
"is_active": true,
"full_name": "Pat Theodore",
"address_line1": "123 Main St",
"city": "Austin",
"region": "TX",
"postal_code": "78701",
"country": "USA"
}
}