Last updated

Bill payment for POS

Bill payment transactions require dual message processing. The different transaction legs are as follows.

A bill payment authorisation determines whether the requested payment can be made. It is a mandatory step even when an account lookup has been performed.

The originating system sends a bill payment confirmation to the service provider to advise that the tender was successful and that the transaction should be completed. A customer's bill payment will only take effect upon confirmation. Confirmation messages do not require consumer involvement and can take place after the consumer has been notified of the transaction outcome.

A bill payment reversal message is used to reverse or undo a bill payment that is in progress but has not yet been completed. Reversal messages do not require consumer involvement and can take place after the consumer has been notified of the transaction outcome.

Important

For HelloPaisa transactions, confirmation messages are only accepted up to one hour after the original bill payment authorisation messaging was completed. This may lead to some reconciliation exceptions that must be handled between the originating system and HelloPaisa.

Operations and Messages

The table below lists the operations and message payloads supported for the various legs of a bill payment transaction. For more detail, refer to the Account Payments Service Interface specification. Example message payloads are available here.

Bill TypeOperationAPI calls
Bill payment authorisation: standard billcreateAccountPaymentPOST /payments/{paymentId}
Bill payment authorisation: traffic finecreateTrafficFinePaymentPOST /payments/traffic{paymentId}
Bill payment confirmationconfirmPaymentPOST /payments/{paymentId}/confirmations/{adviceId}
Bill payment reversalreversePaymentPOST /payments/{paymentId}/reversals/{adviceId}
Note

When creating an account payment in Billpay, the originating system use the balanceAmount field instead of the requestAmountfield.

Important

You should not attempt transaction lookups until after the initial processing period concludes (after Electrum has received and processed the transaction outcome).

Message Flows

The sections below describe the message flows for successful bill payments and error scenarios during bill payment transactions.

Successful Bill or Traffic Fine Payment

  1. The originating system captures the payment request information and sends a POST call to the /payments/{paymentId} or /payments/traffic/{paymentId} API endpoint (createAccountPayment or createTrafficFinePayment operation).
  2. Electrum responds with a PaymentResponse or TrafficFinePaymentResponse message, depending on the nature of the payment request.
  3. The consumer tenders for the payment.
  4. The originating system sends a POST call to the /payments/{paymentId}/confirmations/{adviceId} API endpoint (confirmPayment operation).
  5. Electrum responds with a BasicAdviceResponse message payload.
  6. Electrum sends a confirmation message to the provider via a store-and-forward queue, and repeats the message until a response is received from upstream.

alt text

Error at Originating System

  1. The originating system captures the payment request information and sends a POST call to the /payments/{paymentId} or /payments/traffic/{paymentId} API endpoint (createAccountPayment or createTrafficFinePayment operation).
  2. An error occurs at the originating system, or a timeout occurs when the originating system does not receive a response.
  3. The originating system sends a POST call to the /payments/{paymentId}/reversals/{adviceId} API endpoint (reversePayment operation).
  4. Electrum responds immediately with a BasicAdviceResponse message.
  5. Electrum sends a reversal message to the provider via a store-and-forward queue, and repeats the message until a response is received from upstream.

alt text

Error at Electrum or Service Provider

  1. The originating system captures the payment request information and sends a POST call to the /payments/{paymentId} or /payments/traffic/{paymentId} API endpoint (createAccountPayment or createTrafficFinePayment operation).
  2. An error occurs at Electrum or the service provider.
  3. Electrum responds to the originating system with an HTTP status of 400, 500, 503, or 504, and an ErrorDetail message payload.
  4. If necessary, Electrum sends a reversal message to the service provider and repeats the message until a response is received.

alt text