Partial Payment is an extension to the Payment Request Protocol that allows customers to pay a partial amount of a payment request using Centrapay. However, it is the responsibility of the integrating POS to ensure payment of the remaining amount.
Implementation
Loading Diagram...
Create Payment Request
When creating a Payment Request API you can opt into partial payment by following these steps:
- Set
partialAllowed
to true. - Set
value.amount
to the amount payable via Centrapay. - Set
basketAmount
to the total amount of the transaction, including external forms of payment (e.g., cash or card). This value should be equal tovalue.amount
if the customer is completing their entire transaction using Centrapay.
If the customer has paid by another method or indicates they would like to pay
only a partial amount of the transaction with Centrapay, then value.amount
should be less than the basketAmount
.
If you are integrating with the Line Items payment extension,
the total amount of line items must sum to either the basketAmount
or the
value.amount
.
Get Payment Request
Integrators should continue to poll get Payment Request API
until the status is no longer new
. If the Payment Request status has been
updated to cancelled
or expired
, proceed as describe in requesting a payment.
If the status is paid
you need to check the remainingAmount
property on the
Payment Request.
- If the remaining amount is 0, then the entire amount requested via Centrapay has been paid.
- If the remaining amount is greater than 0, then the remaining amount must be paid through means external to Centrapay. If the customer cannot complete the transaction then the payment request should be refunded API .