Payment Settlement Process
After a payment authorization completes successfully and before the authorization expires, a payment settlement is attempted.
During a payment settlement, service providers receive the actual funds for transactions with subscribers. A payment settlement must be completed before an authorization expires and it can occur immediately after a payment authorization or can be delayed until a configured time of day. If an authorization completes after the configured settlement time, the settlement is scheduled for the next day.
Status
field indicates the status of the payment settlement: - 0 — Succeeded
- 1 — Rejected by the payment gateway
- 2 — Timeout
- Payment authorization completes.
- Either immediately or until a configured time of day, the Charging Server sends a payment settlement request to the Payment Service, which sends the settlement request to the Payment Gateway Provider.
- The Payment Service processes the result from the payment gateway and sends a result request message to the Charging Server reporting the result (success or failure).
- When the payment settlement completes,
the Charging Server generates an MtxPaymentSettlementEvent and an
MtxPaymentSettlementNotification. The
status
field in the event and notification indicates if the settlement succeeded, was rejected, or timed out. For more information, see the discussion about payment settlement events.
If a Payment Gateway Provider supports a single operation for both authorization and settlement, MATRIXX Charging Application always performs the authorization and settlement in a single operation. For example,
MATRIXX Charging Application always performs authorization and settlement as a single operation for the
Braintree MATRIXX Charging Application. After authorization is complete, MATRIXX Charging Application generates an MtxPaymentAuthorizationEvent Event Detail Record (EDR). When there is a single operation for both authorization and settlement, the MtxPaymentAuthorizationEvent
PaymentSettled
field is set to true
. If true, a separate MtxSettlementEvent is not generated.