Payin webhooks
Subscribe to payin webhooks for updates on status changes
Webhooks can be configured to receive updates on every status change that occurs through the life cycle of a payin.

Payin statuses
Payin events
Events
- payin.created
- payin.presenting
- payin.authorized
- payin.processing
- payin.succeeded
- payin.failed
- payin.returned
- payin.canceled
- payin.in_review
Payload
The webhook payload consists of:
data
- represents all payin detail fields returned by the get payin endpointevent_type
- payin events denoted by the format ofpayin.{payin_status}
{
"data": {
"payin_id": "pyi_2sP8QdsOFUAPy7eldhHpDeN3znJ",
// ...
"status": "PROCESSING",
// ...
},
"event_type": "payin.processing"
}
Created
Event: payin.created
Triggered when a payin is created and waiting approval.
Field | Description |
---|---|
payin_id | The unique payin identifier. |
payin_config_id | The unique payin config identifier. |
merchant_id | The unique merchant identifier. |
payment_method_id | The unique payment method identifier. |
payment_method_config_id | The unique payment method config identifier. |
threeds_attempt_id | The unique threeds attempt identifier, applicable if the payin config requested 3DS be attempted. |
idempotency_key | A unique identifier provided by the platform. |
billing_type | The merchant billing type applied to the payin to apply fees. Valid values are NET or GROSS . |
amount | The amount of the payin to attempt to process, in minor units. |
currency_code | Three-letter ISO currency code, in uppercase. Currently, only USD is supported. |
status | The status of the payin, will be CREATED . |
amount_splits | The amount splits of the payin, applicable if the payin config defined the amount splits. |
method_type | The type of payment method associated to the payin. Valid values are CARD , APPLE_PAY , ACH , PLAID_ACH . |
card | Card payment method details, applicable if the method_type is CARD . |
apple_pay | Apple Pay payment method details, applicable if the method_type is APPLE_PAY . |
ach | ACH payment method details, applicable if the method_type is ACH . |
plaid_ach | ACH payment method details from Plaid, applicable if the method_type is PLAID_ACH . |
billing_contact | Billing contact details. |
method_metadata | Valid JSON key-value object specified by the platform to store additional information on the payment method. |
metadata | Valid JSON key-value object specified by the platform to store additional information on the payin. |
payin_config | Payin config details. |
threeds_attempt | 3DS attempt details. |
created_at | Date and time payin was created at in UTC RFC 3339 format. |
Presenting
Event: payin.presenting
Triggered when a payin is presented on an EMV device and waiting for the user to process the payin on the device.
Field | Description |
---|---|
payin_id | The unique payin identifier. |
device_registration_id | The unique device registration identifier. |
status | The status of the payin, will be PRESENTING . |
updated_at | Date and time payin was updated at in UTC RFC 3339 format. |
Authorized
Event: payin.authorized
Triggered when a payin is authorized for processing.
Field | Description |
---|---|
payin_id | The unique payin identifier. |
amount | The amount of the payin authorized, in minor units. Could be less than the amount requested if partially authorized. |
is_partially_authorized | Boolean indicating if payin was authorized for a partial amount. |
auth_code | The authorization code. |
avs_result_code | The address verification service result code. |
cvc_result_code | The card verification code result code. |
device_data | Device data, applicable if the payin was processed on a device. |
status | The status of the payin, will be AUTHORIZED . |
updated_at | Date and time payin was updated at in UTC RFC 3339 format. |
Processing
Event: payin.processing
Triggered when a payin is approved and is currently processing.
Field | Description |
---|---|
payin_id | The unique payin identifier. |
merchant_fees | The amount of the payin billed to the merchant. |
status | The status of the payin, will be PROCESSING . |
updated_at | Date and time payin was updated at in UTC RFC 3339 format. |
Succeeded
Event: payin.succeeded
Triggered when a payin has completed processing and the funds are available for deposit.
Field | Description |
---|---|
payin_id | The unique payin identifier. |
status | The status of the payin, will be PROCESSING . |
updated_at | Date and time payin was updated at in UTC RFC 3339 format. |
Failed
Event: payin.failed
Triggered when a payin unsuccessfully attempted to process.
Field | Description |
---|---|
payin_id | The unique payin identifier. |
status | The status of the payin, will be FAILED . |
refusal_code | The code explaining the reason for the refusal if the payin or refund failed to process. |
refusal_desc | The description explaining the reason for the refusal if the payin or refund failed to process. This will be a human-readable value that may be presented to the end user. |
updated_at | Date and time payin was updated at in UTC RFC 3339 format. |
Returned
Event: returned
Triggered when an ACH payin is returned before moving to Succeeded and the payin is available for a deposit.
Field | Description |
---|---|
payin_id | The unique payin identifier. |
refundable_amount | The amount of the payin that can still be refunded, in minor units. Will be set to 0. |
non_refundable_reason_code | Why the payin is nonrefundable. Provided when refundable_amount is 0. Will be set to HAS_ACH_RETURN . |
status | The status of the payin, will be RETURNED . |
updated_at | Date and time payin was updated at in UTC RFC 3339 format. |
Canceled
Event: canceled
Triggered when a payin is canceled before the payin completes processing. This can be from voiding the payment before settlement or canceling a payin presented on a device.
Field | Description |
---|---|
payin_id | The unique payin identifier. |
status | The status of the payin, will be CANCELED . |
updated_at | Date and time payin was updated at in UTC RFC 3339 format. |
In review
Event: payin.in_review
Triggered when a payin is flagged for risk review and is not available for a deposit.
Field | Description |
---|---|
payin_id | The unique payin identifier. |
status | The status of the payin, will be IN_REVIEW . |
updated_at | Date and time payin was updated at in UTC RFC 3339 format. |
Updated 22 days ago