Skip to main content
1
The rate is fixed. You receive a callback with the processing status when the customer clicks Proceed to payment, or immediately for a fixed payment request.
2
The customer’s payment is detected. You receive another callback with the processing status for each transaction, and the transaction is listed in the transactions block of the callback.
3
The payment is complete. You receive a callback with the paid status once the full amount is received and confirmed.

Body

application/json
payment_request_id
string
required

Payment request ID.

foreign_id
string
required

The foreign_id you provided when creating the payment request. Use it to map the callback to a customer or order in your system. An empty string if the payment request was created without one.

type
enum<string>
required
Available options:
payment_request
status
enum<string>
required

Payment request status.

  • processing: sent when the rate is fixed, that is, when the customer clicks Proceed to payment, or immediately for a fixed payment request. It's sent again each time a payment transaction is detected.
  • paid: the expected amount was received and confirmed, or an underpayment was accepted. An accepted underpayment gets this status when the lifespan or rate lock period ends, whichever comes first.
  • expired: the customer created no transactions during the lifespan or the rate lock period
  • failed: the payment request was not fully paid in time, or the payment could not be processed. See the possible reasons.

After a payment request is paid, expired or failed, any subsequent incoming transaction triggers another callback with late_payment set to true for that transaction.

Available options:
processing,
paid,
expired,
failed
payment_request_amount
object
required

The requested amount.

expires_at
integer
required

Unix time in seconds when the payment request's lifespan ends. If the rate lock ends earlier (valid_until), the customer must pay within the rate lock instead, and the payment request ends when the rate lock ends (with no transactions, it expires; with a partial payment, your underpayment handling rules apply).

status_reason
string

Additional details about the status. Present only in some cases, described in Payment request statuses:

  • Underpayment accepted according to your payment handling rules (paid)
  • The customer paid less than the requested amount. Based on your payment handling rules, the payment was not accepted (failed)
  • The payment couldn't be processed because the transaction was invalid or couldn't be accepted (failed)
  • Service is restricted for the payer. Payments from this payer cannot be processed (failed)
end_user_email
string<email>

The customer's email, as entered on the payment page. If you provided end_user_email when creating the payment request, the email field on the payment page is prefilled with it, and the customer can change it.

end_user_reference
string

The end_user_reference you provided when creating the payment request. Present only if it was provided.

payment_request_address
object

Details of the address the customer pays to. Present once the customer has proceeded to payment.

currency_sent
object

Amounts the customer is expected to send and has sent. Present once the customer has proceeded to payment.

currency_received
object

The amount received for the payment request, in the payment request currency, before the fees in fees are deducted. Present only for paid payment requests. Note:

  • If the customer pays the processing fee (user_fee_percent is 100), this is the requested amount plus that fee, so you receive the requested amount after fees.
  • For an accepted underpayment, this is the amount actually paid, converted to the payment request currency.
  • For an overpayment, this is the requested amount, and the extra is refunded to the customer (unless it's too small to refund), see Automatic refunds.
transactions
object[]

Payment transactions. Present once a transaction has been detected; before that, the field is left out rather than sent as an empty array. Invalid transactions are not included.

fees
object[]

Fees charged for the payment request, deducted from currency_received. Present only for paid payment requests. The processing fee is listed even if the customer pays it.

fixed_at
integer

Unix time in seconds when the rate was fixed. Present only after the rate is fixed.

valid_until
integer

Unix time in seconds until which the fixed rate is valid. Present only after the rate is fixed. Note:

  • The rate is locked for at most 1 hour after fixed_at, so for a payment request with a longer lifespan this is earlier than expires_at. In that case the customer must pay before valid_until.
  • At valid_until, the payment request ends: it gets the expired status if the customer created no transactions, and a partial payment is handled according to your underpayment handling rules.
Last modified on October 29, 2026