Skip to content

Payment Processing

In the process of payment, the QIWI system is consistently following steps:

  1. Get the status of the subscriber and extra parameters of payment without registering the payment.
  2. Check the status of the subscriber and extra parameters of payment, and register the payment.
  3. Confirm the payment.

The provider needs to implement processing requests on each of these steps.

Sequence diagram for the payment process is displayed on the following scheme:

%%{init: {
    "sequence" : {
        "messageFontSize":14,
        "noteFontSize":14,
         }}}%%
sequenceDiagram
    participant qiwi as QIWI
    participant prv as Provider
    qiwi->>prv:Get the status of the subscriber and extra parameters of payment<br/>without registering the payment ("getInfo" request)
    Note right of qiwi: command=getInfo, prv_id (optional), account, ccy, sum (optional), additional fields (optional)
    prv->>qiwi:Response with result of the status check
    Note left of prv: result, additional fields (optional)
    qiwi->>prv:Check the status of the subscriber and extra parameters of payment,<br/>and register the payment ("check" request)
    Note right of qiwi: command=check, txn_id, account, ccy, sum, prv_id (optional), additional fields (optional)
    prv->>qiwi:Response with check result
    Note left of prv: osmp_txn_id, result, additional fields (optional)
    qiwi->>prv:Confirm the payment ("pay" request)
    Note right of qiwi: command=pay, txn_id, txn_date, account, ccy, sum, prv_id (optional), additional fields (optional)
    prv->>qiwi:Response with result of the payment confirmation
    Note left of prv: osmp_txn_id, prv_txn, sum, result, additional fields (optional)

The QIWI element on the diagram represents a combination of participants engaged in the payment process.

Format of the requests and responses is described in the protocol.