Skip to main content
If you have configured callbacks, PawaPay will POST a callback to your configured callback URL when a checkout reaches a final status (COMPLETED, FAILED or EXPIRED). Read more about callbacks. The callback payload is the checkout in its final state, including the latest payment attempt (deposit) and the full history of attempts (depositsHistory). If you have not configured callbacks, you can always call the Check checkout status endpoint to get the latest state of a specific checkout.
A checkout can contain multiple payment attempts, but at most one can complete successfully — PawaPay manages the retries for you. If you prefer, each attempt also behaves like a standard deposit, so you can rely on the deposit callback for it.

Headers

Following headers are only included if you have enabled signed callbacks.Read more about how to implement signed callbacks.
Content-Digest
string
SHA256 or SHA-512 hash of the request body.
Signature
String
Signature of the request according to RFC-9421.
Signature-Input
String
Signature input according to RFC-9421.
Signature-Date
String
Timestamp when the signature was created. This is a custom field and is not part of RFC-9421.
Accept-Signature
String
Expected signature algorithm of the response according to RFC-9421.
Accept-Digest
String
Expected digest algorithm of the response according to RFC-9421.

Body

The callback delivered to your configured callback URL when a checkout reaches a final status (COMPLETED, FAILED or EXPIRED).

The payload is the checkout in its final state, including the latest payment attempt and the full history of attempts.

checkoutId
string<uuid>
required

The unique ID for this payment in PawaPay as specified by you during initiation.

Required string length: 36
Example:

"f4401bd2-1568-4140-bf2d-eb77d2b2b639"

status
enum<string>
required

Possible checkout lifecycle statuses. This is distinct from the initiation status (CheckoutCreationStatus) returned when the checkout is created.

  • WAITING_PAYMENT - The checkout and its hosted payment page have been created and are waiting for the customer to pay.
  • PROCESSING - A payment attempt is in progress and the checkout is still being processed.
  • COMPLETED - The checkout has completed successfully. This is a final status.
  • FAILED - The checkout has failed. Inspect deposit or depositsHistory for the latest attempt result when available. This is a final status.
  • EXPIRED - The checkout has expired and can no longer be used. This is a final status.
  • CANCELLED - The customer cancelled the payment on the hosted payment page. This is a final status.
Available options:
WAITING_PAYMENT,
PROCESSING,
COMPLETED,
FAILED,
EXPIRED,
CANCELLED
created
string<date-time>
required

The timestamp of when the payment was created in the PawaPay platform. Format defined by 'date-time' in RFC3339 section 5.6 from IETF

Example:

"2020-02-21T17:32:29Z"

depositsHistory
object[]
required

History of payment attempts within this checkout. A single checkout can contain multiple attempts, but at most one can complete successfully.

metadata
object
required

The metadata that was provided in the original initation request in a JSON object format.

Example:
{
"orderId": "ORD-123456789",
"customerId": "customer@email.com"
}
checkoutCode
string

A unique identifier that forms part of the checkout's redirect URL.

Example:

"PPGAFB57B93"

returnUrl
string<uri>

The URL the customer should be redirected to after the payment is processed.

Example:

"https://merchant.example.com/checkout-result"

countries
string[]

The list of countries that the hosted payment page allowed for this checkout.

A country that the hosted payment page allows for this checkout.

Format is ISO 3166-1 alpha-3, three character country code in upper case. Read more from Wikipedia.

Required string length: 3
Example:
["ZMB", "CIV"]
amounts
object[]

The fixed amount the customer is asked to pay, specified per country and currency, as configured for this checkout.

When set, it contains an entry for each country in the countries array, defining the amount the customer pays for the country and currency they select on the hosted payment page. If not set, the customer enters the amount themselves on the hosted payment page.

clientReferenceId
string

A reference to an entity in your system that this payment relates to. For example, an invoice ID, customer ID etc.

Example:

"INV-123456"

providerTransactionId
string

The unique ID for this payment assigned by the provider. The customer would see this ID on their SMS receipt and transaction history.

Example:

"ABC123"

depositStatus
enum<string>

Current aggregate status for the checkout, representing the latest payment attempt:

  • PROCESSING - The latest payment attempt is still being processed. Attempts undergoing reconciliation also remain PROCESSING until a final status is determined.
  • COMPLETED - The latest payment attempt completed successfully.
  • FAILED - The latest payment attempt failed.
Available options:
PROCESSING,
COMPLETED,
FAILED
deposit
object
reason
object

Localized reason values shown to the customer inside the hosted payment page.

Example:
{ "en": "GOODS PURCHASE" }