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 statuses


Payin events


Events

Payload

The webhook payload consists of:

  • data - represents all payin detail fields returned by the get payin endpoint
  • event_type - payin events denoted by the format of payin.{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.

FieldDescription
payin_idThe unique payin identifier.
payin_config_idThe unique payin config identifier.
merchant_idThe unique merchant identifier.
payment_method_idThe unique payment method identifier.
payment_method_config_idThe unique payment method config identifier.
threeds_attempt_idThe unique threeds attempt identifier, applicable if the payin config requested 3DS be attempted.
idempotency_keyA unique identifier provided by the platform.
billing_typeThe merchant billing type applied to the payin to apply fees. Valid values are NET or GROSS.
amountThe amount of the payin to attempt to process, in minor units.
currency_codeThree-letter ISO currency code, in uppercase. Currently, only USD is supported.
statusThe status of the payin, will be CREATED.
amount_splitsThe amount splits of the payin, applicable if the payin config defined the amount splits.
method_typeThe type of payment method associated to the payin. Valid values are CARD, APPLE_PAY, ACH, PLAID_ACH.
cardCard payment method details, applicable if the method_type is CARD.
apple_payApple Pay payment method details, applicable if the method_type is APPLE_PAY.
achACH payment method details, applicable if the method_type is ACH.
plaid_achACH payment method details from Plaid, applicable if the method_type is PLAID_ACH.
billing_contactBilling contact details.
method_metadataValid JSON key-value object specified by the platform to store additional information on the payment method.
metadataValid JSON key-value object specified by the platform to store additional information on the payin.
payin_configPayin config details.
threeds_attempt3DS attempt details.
created_atDate 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.

FieldDescription
payin_idThe unique payin identifier.
device_registration_idThe unique device registration identifier.
statusThe status of the payin, will be PRESENTING.
updated_atDate and time payin was updated at in UTC RFC 3339 format.

Authorized


Event: payin.authorized

Triggered when a payin is authorized for processing.

FieldDescription
payin_idThe unique payin identifier.
amountThe amount of the payin authorized, in minor units. Could be less than the amount requested if partially authorized.
is_partially_authorizedBoolean indicating if payin was authorized for a partial amount.
auth_codeThe authorization code.
avs_result_codeThe address verification service result code.
cvc_result_codeThe card verification code result code.
device_dataDevice data, applicable if the payin was processed on a device.
statusThe status of the payin, will be AUTHORIZED.
updated_atDate 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.

FieldDescription
payin_idThe unique payin identifier.
merchant_feesThe amount of the payin billed to the merchant.
statusThe status of the payin, will be PROCESSING.
updated_atDate 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.

FieldDescription
payin_idThe unique payin identifier.
statusThe status of the payin, will be PROCESSING.
updated_atDate and time payin was updated at in UTC RFC 3339 format.

Failed


Event: payin.failed

Triggered when a payin unsuccessfully attempted to process.

FieldDescription
payin_idThe unique payin identifier.
statusThe status of the payin, will be FAILED.
refusal_codeThe code explaining the reason for the refusal if the payin or refund failed to process.
refusal_descThe 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_atDate 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.

FieldDescription
payin_idThe unique payin identifier.
refundable_amountThe amount of the payin that can still be refunded, in minor units. Will be set to 0.
non_refundable_reason_codeWhy the payin is nonrefundable. Provided when refundable_amount is 0. Will be set to HAS_ACH_RETURN.
statusThe status of the payin, will be RETURNED.
updated_atDate 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.

FieldDescription
payin_idThe unique payin identifier.
statusThe status of the payin, will be CANCELED.
updated_atDate 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.

FieldDescription
payin_idThe unique payin identifier.
statusThe status of the payin, will be IN_REVIEW.
updated_atDate and time payin was updated at in UTC RFC 3339 format.