Guides

Partial Payment

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 to value.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 .

See also