This document outlines the available webhooks provided by Push, detailing each webhook type and the structure of the webhook payloads.

{
  "type": "", // the type of the webhook
  "data": {
    // documented fields from the below reference guide
  },
  "timestamp": "2024-01-14T22:31:02.756096Z" // timestamp for the webhook event
}

Types

intent.approved

This webhook is triggered when an intent is approved.

KeyTypeDescription
idstringUnique identifier for the intent.
idempotency_keystringIdempotency key for the intent.
directionstringDirection (either cash_in or cash_out)
amountfloatAmount of the payment.
statusstringStatus of the intent.
currencystringCurrency code (USD).
limits_utilization.daily_cash_instringDaily cash-in limit usage, formatted to two decimal places.
limits_utilization.daily_cash_outstringDaily cash-out limit usage, formatted to two decimal places.
limits_utilization.monthly_cash_instringMonthly cash-in limit usage, formatted to two decimal places.
limits_utilization.monthly_cash_outstringMonthly cash-out limit usage, formatted to two decimal places.

intent.declined

This webhook is triggered when an intent is declined.

KeyTypeDescription
idstringUnique identifier for the intent.
idempotency_keystringIdempotency key for the intent.
directionstringDirection (either cash_in or cash_out)
amountfloatAmount of the payment.
statusstringStatus of the intent.
currencystringCurrency code (USD).

intent.settled

This webhook is triggered when an intent is settled, marking the completion of a transaction.

KeyTypeDescription
idstringUnique identifier for the intent.
idempotency_keystringIdempotency key for the intent.
directionstringDirection (either cash_in or cash_out)
amountfloatAmount of the payment.
statusstringStatus of the intent.
currencystringCurrency code (USD).
transaction.idstringUnique identifier for the transaction.
transaction.amountfloatAmount associated with the transaction.
transaction.currencystringCurrency code for the transaction.
transaction.statusstringCurrent status of the transaction.
transaction.datestringDate of the transaction in YYYY-MM-DD format.
transaction.account_idstringAccount ID associated with the transaction.

Retries

If we do not receive a success response from your webhook endpoint, we will retry delivery. We use exponential backoff to increase the time between each retry.

  • sandbox: delivery will be attempted 3 times.
  • production: delivery will be attempted for 3 days.