Transaction resource

About

Transaction groups one or more objects into one confirmable group. To confirm any created object, there must be a transaction.
Info Default transaction is created together with payment and allowance to be confirmed without creating it manually.
Moreover, transactions take part in all-or-nothing scenarios: either all of grouped payments are done successfuly, or all fail. For example, if wallet has sufficient account balance only for one of grouped payments, user will be unable to confirm this transaction.
Transactions are also good when making shop carts with payments to different beneficiaries - user will have to confirm something just once.
Warning Transactions group payments only when confirming. If payment is canceled, other payments in the same transaction remain unchanged.

Automatically created transactions

When creating payment or allowance, transaction is created with default parameters. It's key is provided in the response as transaction_key. Automatically created transaction always has only one payment or allowance.
allowance parameter optional is false in automatically created transactions.
transaction_key for payment or allowance can change if new transaction is created with that payment or allowance. Only one transaction can be assigned to any payment or allowance - if payment is added to another transaction, it is removed from the old one.

Create transaction

About

This method creates transaction that groups payment(s) and/or allowance into one confirmable item.
Warning Transactions with status new are deleted automatically 1 month after creation time.

Request

POST https://wallet.paysera.com/rest/v1/transaction

Request body structure

Parameter Type Remarks Description
payments array of mixed required if allowance is not specified Array of payment IDs or payment structures to be grouped into this transaction. If IDs are provided, transaction is created from already existing payments. If structures (objects) are provided, payment is automatically created before assigning it to transaction. Payment structure is the same as when creating payment. IDs and structures can be mixed together into one array
allowance object (see Allowance data structure) required if payments is not specified Allowance to be grouped with payments into this transaction
reserve object optional
It's used with one of parameter inside: for or until
unavailable if reserve_until or reserve_for is provided
It is used with one of additional parameters inside:
for - Maximum reservation time in seconds. Time starts when user accepts transaction. In this time must confirm the transaction to finish it successfuly, otherwise money will be returned to the payer
until - Maximum reservation time in UNIX timestamp - reservation will last up to that moment
reserve_for integer optional, defaults to 24 hours
unavailable if reserve_until or reserve is provided
Deprecated. Use parameter reserve with subparameter for instead.
Maximum reservation time in hours. Time starts when user accepts transaction. In this time you must confirm the transaction to finish it successfuly, otherwise money will be returned to the payer
reserve_until integer optional, unavailable if reserve_for or reserve is provided Deprecated. Use parameter reserve with subparameter until instead.
Maximum reservation time in UNIX timestamp - reservation will last up to that moment
use_allowance boolean optional, defaults to false Whether active allowance should be automatically used when requesting affirmation from user. This parameter is ignored and true is used if accepting transaction by using active allowance
suggest_allowance boolean optional, defaults to false;
ignored if allowance is provided
Whether Paysera system should suggest user to make allowance if user is redirected to payment confirmation page. Limits and other allowance information is calculated by Paysera system. This type of allowance is always optional for user
auto_confirm boolean optional, defaults to false;
unavailable if at least one payment in transaction has no beneficiary specified
If set to true, transaction is automatically confirmed after going to reserved. This option is only available if transaction has only allowance or only payments with beneficiary specified. This option is unrecommended, use it only if confirmation from the client is unavailable.
redirect_uri string optional Provides URI to redirect user after confirming transaction. This parameter is ignored if confirmation is made not by confirmation page.
callback_uri string | boolean false optional, defaults to one set in Paysera service agreement Provides URI that callback should be done to. If false is provided, callbacks for this transaction will not be made
user object (see User data structure) optional Provides confirmed user data to ease the process of registration. Your project must have special privilege for this parameter to work, otherwise it's ignored. In either case user can log-in or register with any other data, but in this case she would have to confirm it manually
inquiries array of objects (see Inquiries) optional Provides a list of data, which user will be asked to provide or grant access to
Warning You can create transactions only of yet new objects. If you include already confirmed payment, operation will fail
Info You can provide only one allowance, because only one can be active for the wallet at any time

Allowance data structure

Parameter Type Remarks Description
id integer required if data is not provided;
unavailable if data is provided
ID of already created allowance
data object required if id is not provided;
unavailable if id is provided
Structure of allowance to be automatically created before assigning it to transaction. Structure is the same as when creating allowance
optional boolean optional, defaults to false Whether this allowance is optional in this transaction. User will be able to uncheck optional allowance

User data structure

Parameter Type Remarks Description
email string required Confirmed email of current user

Response data structure

On success API returns transaction object that was created. See get transaction information for more info.

Errors

limit_violation (status code 400)

Example request for grouping already created payments

POST /rest/v1/transaction HTTP/1.1
Host: wallet.paysera.com
Content-Type: application/json;charset=utf-8
User-Agent: Paysera WalletApi PHP library
Authorization: MAC id="wkVd93h2uS", ts="1343822400", nonce="nQnNaSNyubfPErjRO55yaaEYo9YZfKHN", mac="rg3bpf+SH6mYLvDm6VhbhmHxZ57bKebmcpcwfPzsC/s=", ext="body_hash=PeBwBRvUOAkvAMBcOdXPPpg6u%2Bn1naMXUupsHZK01Rg%3D"
{
    "payments": [
        2987,
        2988
    ],
    "suggest_allowance": true
}

Example response

HTTP/1.1 200 OK
Content-type: application/json;charset=utf-8
{
    "transaction_key": "pDAlAZ3z",
    "created_at": 1355314332,
    "status": "new",
    "project_id": 2248,
    "valid_for_payment_card_debit": false,
    "payments": [
        {
            "id": 2987,
            "transaction_key": "pDAlAZ3z",
            "created_at": 1355314332,
            "status": "new",
            "price": 1299,
            "currency": "EUR",
            "description": "Payment for order No. 2001",
            "parameters": {
                "orderid": 2001
            }
        },
        {
            "id": 2988,
            "transaction_key": "pDAlAZ3z",
            "created_at": 1355314332,
            "status": "new",
            "price": 500,
            "currency": "EUR",
            "description": "Payment for order No. 2002",
            "parameters": {
                "orderid": 2002
            }
        }
    ],
    "reserve": {
        "until": 1355400732
    },
    "use_allowance": false,
    "suggest_allowance": true,
    "auto_confirm": false
}
Info transaction_key of all objects in the transaction are the same and equals to that of transaction itself

Example request for creating payment and assigning optional allowance

POST /rest/v1/transaction HTTP/1.1
Host: wallet.paysera.com
Content-Type: application/json;charset=utf-8
User-Agent: Paysera WalletApi PHP library
Authorization: MAC id="wkVd93h2uS", ts="1343822400", nonce="nQnNaSNyubfPErjRO55yaaEYo9YZfKHN", mac="JoZ+SX/Q8y0W1omXBjTrZA9YyZ2gjM6tLmmSly4s5Xo=", ext="body_hash=gK8kVbYW1XEeZUf4BR1yZ45YLu%2BEYnq1WOGYtRhxyQA%3D"
{
    "payments": [
        {
            "description": "Payment for order No. 1234",
            "price": 1299,
            "currency": "EUR",
            "parameters": {
                "orderid": 1234
            }
        }
    ],
    "allowance": {
        "id": 784,
        "optional": true
    },
    "redirect_uri": "http:\/\/www.example.com\/somePage"
}

Example response

HTTP/1.1 200 OK
Content-type: application/json;charset=utf-8
{
    "transaction_key": "pDAlAZ3z",
    "created_at": 1355314332,
    "status": "new",
    "project_id": 2248,
    "valid_for_payment_card_debit": false,
    "payments": [
        {
            "id": 2988,
            "transaction_key": "pDAlAZ3z",
            "created_at": 1355314332,
            "status": "new",
            "price": 1299,
            "currency": "EUR",
            "description": "Payment for order No. 1234",
            "parameters": {
                "orderid": 1234
            }
        }
    ],
    "allowance": {
        "optional": true,
        "data": {
            "id": 784,
            "transaction_key": "pDAlAZ3z",
            "created_at": 1355314332,
            "status": "new",
            "description": "Allowance for weekly services (5 weeks)",
            "currency": "EUR",
            "max_price": 1500,
            "limits": [
                {
                    "max_price": 300,
                    "time": 604800
                }
            ]
        }
    },
    "reserve": {
        "until": 1355400732
    },
    "use_allowance": false,
    "suggest_allowance": false,
    "auto_confirm": false,
    "redirect_uri": "http:\/\/www.example.com\/somePage"
}

Renew transaction

About

This method creates new transaction based on some other transaction. Basically it resets transaction status to new, but new transaction is created for this purpose to be able to see all history more easily.

Transaction must have one of these status codes to be renewed: deleted, rejected, failed, revoked.

Request

POST https://wallet.paysera.com/rest/v1/transaction/renew/:transaction_key

Parameters

transaction_key
transaction_key assigned to transaction. Can be get from creation response of transaction or some other object

Response data structure

On success API returns transaction object that was created. See get transaction information for more info.

Example request

POST /rest/v1/transaction/renew/pDAlAZ3z HTTP/1.1
Host: wallet.paysera.com
User-Agent: Paysera WalletApi PHP library
Authorization: MAC id="wkVd93h2uS", ts="1343822400", nonce="nQnNaSNyubfPErjRO55yaaEYo9YZfKHN", mac="L6crJlj+FtrZsG3LnJS6cgKwbId7zUEIq4BB3sDlTfs="

Get transaction information

About

This method returns transaction information that was created earlier. Transaction information can change in time, because it contains status field.

Request

GET https://wallet.paysera.com/rest/v1/transaction/:transaction_key

Parameters

transaction_key
key of transaction. Can be get from transaction and other objects creation responses

Response data structure

Parameter Type Remarks Description
transaction_key string always Transaction key as an identifier to this transaction
created_at integer always Date of transaction creation in UNIX timestamp
status string always Status of transaction. One of: new, waiting, waiting_funds, waiting_registration, waiting_password, revoked, rejected, failed, reserved, confirmed, deleted
type string Only if status is not new Type of transaction - the way in which confirmation of transaction was presented (or not) to the user. On of: automatic, page, flash, user_initiated, pin, reservation_code, mobile_app
wallet integer Only if this payment was already related with some wallet,
always if status is reserved or confirmed
Wallet ID in Paysera system, with which this transaction is related
valid_for_payment_card_debit boolean always Whether transaction can be related with debit card
confirmed_at integer Only if status is confirmed Date of transaction confirmation in UNIX timestamp
correlation_key string Only if status is waiting and type is flash Only if confirming by the phone - some random string that was also sent to the user. You should show the same code in your page together with total price of transaction and other details, so that the user can be sure that she is confirming the right transaction
project_id integer Only if available ID of the project to which this transaction is related. Usually this is ID of the project, related to the current client
payments array of objects Only if payments was provided when creating the transaction Array of created payments. Structure of each payment in array is the same as when getting payment information
allowance object Only if allowance was provided when creating the transaction Object with 2 keys: optional (same as when creating the transaction) and data, which holds allowance object. Structure of the object is the same as when getting allowance information
reserve object It's used with one of parameter inside: for or until It is used with one of additional parameters inside:
for - same as provided when creating the transaction. Only if it was provided when creating the transaction
until - date in UNIX timestamp until when the money is reserved for this transaction. You must confirm transaction before this time to finish it. Only if status is reserved or it was provided when creating the transaction
reserve_until integer Only if status is reserved or it was provided when creating the transaction Deprecated. Use parameter reserve with subparameter until instead.
Date in UNIX timestamp until when the money is reserved for this transaction. You must confirm transaction before this time to finish it
reserve_for integer Only if it was provided when creating the transaction Deprecated. Use parameter reserve with subparameter for instead.
Same as provided when creating the transaction
use_allowance boolean Only if status is new Same as provided when creating the transaction or true if not provided
suggest_allowance boolean Only if status is new false if suggest_allowance was not provided or allowance was, otherwise the same as when creating the transaction
auto_confirm boolean always Same as provided when creating the transaction
redirect_uri string Only if redirect_uri was provided when creating the transaction Same as provided when creating the transaction
callback_uri string Only if callback_uri was provided when creating the transaction Same as provided when creating the transaction
manager_id integer Only if transaction was created when using access token of a manager User ID of manager which created the transaction (for example, logged in user in retailers app)
user object (see User data structure) Only if user was provided when creating the transaction Same as provided when creating the transaction
inquiries array of objects (see Inquiries) Only if inquiries where provided when creating transaction Same as provided when creating the transaction
location_id integer Only if available ID of the location from which this transaction was created.

Meaning of transaction status codes

new
Initial state of the transaction. Only new transactions can be given to the user to accept.
waiting
Transaction was presented to the user and is waiting for user to accept or reject.
waiting_funds
Transaction was accepted by user on the web page, but there is not enough funds in selected account. After incoming funds, if it is enough for all payments in transaction, flow continues.
waiting_registration
Transaction was accepted by user and money was reserved, but at least one beneficiary is not yet registered in Paysera system.
This state can be entered from new, if reserve transaction API method was used with active allowance and at least one beneficiary is not yet registered.
Transaction can be in this state only when making payments between users and using phone or email identifier for beneficiary.
waiting_password
Transaction was accepted by user and money was reserved, but a password was given for at least one payment and is still not provided. Password should be provided by client or by user, receiving the payment.
This state can be entered from new, if reserve transaction API method was used with active allowance and at least one password was given.
revoked
Client can revoke transactions wich are waiting, waiting_funds, waiting_registration, waiting_password or reserved. After revoking, transaction will become revoked
rejected
User has rejected this transaction
failed
Transaction has failed due to a timeout or some similar reason
reserved
Transaction has been accepted by the user and the money was reserved for this transaction. You must confirm or revoke the transaction. If no action is made in some time, transaction is automatically made failed and money reservation is canceled. You can know when transaction is reserved by using callbacks.
confirmed
You have confirmed the transaction. It is successfuly made, this is the final state of the transaction
deleted
Transactions with status new are automatically deleted after some time. Deleted items are accessible in the system only by providing their unique identifier.
Info Blue arrows indicate state changes initiated by using API
Info done and canceled statuses are available only for payments. Up to these states, all payments in the same transaction has the same status as the transaction itself

Example request

GET /rest/v1/transaction/pDAlAZ3z HTTP/1.1
Host: wallet.paysera.com
User-Agent: Paysera WalletApi PHP library
Authorization: MAC id="wkVd93h2uS", ts="1343822400", nonce="nQnNaSNyubfPErjRO55yaaEYo9YZfKHN", mac="+E7MDaW7Q5e2fm0jQTyejWCYEVQywg7PUpY9S1jOmLM="
InfoIn this example we are requesting information about transaction which key is pDAlAZ3z

Example response

HTTP/1.1 200 OK
Content-type: application/json;charset=utf-8
{
    "transaction_key": "pDAlAZ3z",
    "created_at": 1355314332,
    "status": "confirmed",
    "type": "page",
    "wallet": 14471,
    "valid_for_payment_card_debit": false,
    "confirmed_at": 1355314392,
    "project_id": 2248,
    "payments": [
        {
            "id": 2988,
            "transaction_key": "pDAlAZ3z",
            "created_at": 1355314332,
            "status": "confirmed",
            "price": 1299,
            "currency": "EUR",
            "wallet": 14471,
            "confirmed_at": 1355314392,
            "freeze": {
                "until": 1357992732
            },
            "description": "Payment for order No. 1234",
            "parameters": {
                "orderid": 1234
            }
        }
    ],
    "allowance": {
        "optional": true,
        "data": {
            "id": 784,
            "transaction_key": "pDAlAZ3z",
            "created_at": 1355314332,
            "status": "active",
            "currency": "EUR",
            "wallet": 14471,
            "confirmed_at": 1355314392,
            "valid": {
                "until": 1357992732
            },
            "description": "Allowance for weekly services (5 weeks)",
            "max_price": 1500,
            "limits": [
                {
                    "max_price": 300,
                    "time": 604800
                }
            ]
        }
    }
}

Search transactions

About

This method returns transaction list by provided filters.

Request

GET https://wallet.paysera.com/rest/v1/transactions?status=:status&wallet=:wallet&from=:from&to=:to&limit=:limit&offset=:offset

Parameters

status
optional; comma separated statuses of transactions to search for
wallet
optional; ID of the wallet in Paysera system which was related to the transaction
from
optional; date from which results should be provided in UNIX timestamp. Defaults to week before to
to
optional; date from which results should be provided in UNIX timestamp. Defaults to current time
limit
optional; maximum number of results to be returned in one response. Defaults to 20, maximum available is 200
offset
optional; number of results to skip. Defaults to 0
Info Items are ordered from newest to oldest
Info Only transactions, related to the project related to specific request are returned. If client is public (like mobile applications), also filtering by the client is applied

Response data structure

Parameter Type Remarks Description
transactions array of objects always Each item in array is transaction object
_metadata object always Additional information about result

Metadata information structure

Parameter Type Remarks Description
total integer always Total count of results, ignoring limit and offset parameters
offset integer always Used offset - how many results from the beginning were skipped
limit integer always Used limit - maximum count of available results in single response

Example request when searching for reserved transactions

GET /rest/v1/transactions?status=reserved%2Cconfirmed HTTP/1.1
Host: wallet.paysera.com
User-Agent: Paysera WalletApi PHP library
Authorization: MAC id="wkVd93h2uS", ts="1343822400", nonce="nQnNaSNyubfPErjRO55yaaEYo9YZfKHN", mac="z/S0Xo3x1VlQ+S21UzV+N0XE/UgSMyWDcPLTuhh9jqc="

Example response

HTTP/1.1 200 OK
Content-type: application/json;charset=utf-8
{
    "transactions": [
        {
            "transaction_key": "pDAlAZ3z",
            "created_at": 1355314332,
            "status": "reserved",
            "type": "page",
            "wallet": 14471,
            "valid_for_payment_card_debit": false,
            "project_id": 2248,
            "payments": [
                {
                    "id": 2988,
                    "transaction_key": "pDAlAZ3z",
                    "created_at": 1355314332,
                    "status": "confirmed",
                    "price": 1299,
                    "currency": "EUR",
                    "wallet": 14471,
                    "confirmed_at": 1355314392,
                    "freeze": {
                        "until": 1357992732
                    },
                    "description": "Payment for order No. 1234",
                    "parameters": {
                        "orderid": 1234
                    }
                }
            ]
        }
    ],
    "_metadata": {
        "total": 1,
        "offset": 0,
        "limit": 50
    }
}

Revoke transaction

About

This method revokes transaction. status of the transaction must be waiting, waiting_funds, waiting_registration, waiting_password or reserved. If transaction is new, this method deletes it.

Request

DELETE https://wallet.paysera.com/rest/v1/transaction/:transaction_key

Parameters

transaction_key
key of transaction. Can be get from transaction and other objects creation responses

Response data structure

On success API returns transaction object that was revoked. See get transaction information for more info.

Example request

DELETE /rest/v1/payment/pDAlAZ3z HTTP/1.1
Host: wallet.paysera.com
User-Agent: Paysera WalletApi PHP library
Authorization: MAC id="wkVd93h2uS", ts="1343822400", nonce="nQnNaSNyubfPErjRO55yaaEYo9YZfKHN", mac="2GKLMgeBiglSWwsWrmtlsglTu/4d+lebEYBwQ/D90jc="
Info In this example we are revoking transaction which key is pDAlAZ3z

Example response

HTTP/1.1 200 OK
Content-type: application/json;charset=utf-8
{
    "transaction_key": "pDAlAZ3z",
    "created_at": 1355314332,
    "status": "revoked",
    "type": "page",
    "wallet": 14471,
    "valid_for_payment_card_debit": false,
    "project_id": 2248,
    "payments": [
        {
            "id": 2988,
            "transaction_key": "pDAlAZ3z",
            "created_at": 1355314332,
            "status": "revoked",
            "price": 1299,
            "currency": "EUR",
            "wallet": 14471,
            "freeze": {
                "until": 1357992732
            },
            "description": "Payment for order No. 1234",
            "parameters": {
                "orderid": 1234
            }
        }
    ],
    "allowance": {
        "optional": true,
        "data": {
            "id": 784,
            "transaction_key": "pDAlAZ3z",
            "created_at": 1355314332,
            "status": "inactive",
            "currency": "EUR",
            "wallet": 14471,
            "valid": {
                "until": 1357992732
            },
            "description": "Allowance for weekly services (5 weeks)",
            "max_price": 1500,
            "limits": [
                {
                    "max_price": 300,
                    "time": 604800
                }
            ]
        }
    }
}

Confirm transaction

About

When the money is reserved, you can confirm or revoke the transaction.

Request

PUT https://wallet.paysera.com/rest/v1/transaction/:transaction_key/confirm

Parameters

transaction_key
transaction_key assigned to transaction. Can be get from creation response of transaction or some other object

Request data structure

Request body is optional and can be provided if it is needed to reduce amounts of one or several payments at confirmation time. If amount change is not needed, request body can be ommited.

If provided, request structure must be an object, which keys are payment IDs in current transaction, and each value is price object.

Structure of price object

Parameter Type Remarks Description
price integer required Same or reduced price of this payment in cents
currency string required Currency for this payment. Must be the same as original

Response data structure

Confirmed transaction is returned on success. See get transaction information response data structure for more information.

Errors

If cashback is set to any of the payments, following errors may occur: not_enough_funds (status code 400), limits_exceeded (status code 400), restriction_limits_exceeded (status code 400), no_rights (status code 400)

Example request

PUT /rest/v1/transaction/pDAlAZ3z/confirm HTTP/1.1
Host: wallet.paysera.com
User-Agent: Paysera WalletApi PHP library
Authorization: MAC id="wkVd93h2uS", ts="1343822400", nonce="nQnNaSNyubfPErjRO55yaaEYo9YZfKHN", mac="LW8+ekuXz2uP3LBAgyX8Tm0pV9U6AnjTz3M3hRB2z0E="

Example request with price reduction

PUT /rest/v1/transaction/pDAlAZ3z/confirm HTTP/1.1
Host: wallet.paysera.com
Content-Type: application/json;charset=utf-8
User-Agent: Paysera WalletApi PHP library
Authorization: MAC id="wkVd93h2uS", ts="1343822400", nonce="nQnNaSNyubfPErjRO55yaaEYo9YZfKHN", mac="Y47K7IK2VOQujcqviRv59RIzCcyZd7HSwy2oQ22955E=", ext="body_hash=oeolAI8pLwYDuNDCv74QhcBxRH7ec3cNt5PkaFyrVHo%3D"
{
    "2988": {
        "price": 799,
        "currency": "EUR"
    }
}

Example response

HTTP/1.1 200 OK
Content-type: application/json;charset=utf-8
{
    "transaction_key": "pDAlAZ3z",
    "created_at": 1355314332,
    "status": "confirmed",
    "type": "page",
    "wallet": 14471,
    "valid_for_payment_card_debit": false,
    "confirmed_at": 1355314392,
    "project_id": 2248,
    "payments": [
        {
            "id": 2988,
            "transaction_key": "pDAlAZ3z",
            "created_at": 1355314332,
            "status": "confirmed",
            "price": 1299,
            "currency": "EUR",
            "wallet": 14471,
            "confirmed_at": 1355314392,
            "freeze": {
                "until": 1357992732
            },
            "description": "Payment for order No. 1234",
            "parameters": {
                "orderid": 1234
            }
        }
    ],
    "allowance": {
        "optional": true,
        "data": {
            "id": 784,
            "transaction_key": "pDAlAZ3z",
            "created_at": 1355314332,
            "status": "active",
            "currency": "EUR",
            "wallet": 14471,
            "confirmed_at": 1355314392,
            "valid": {
                "until": 1357992732
            },
            "description": "Allowance for weekly services (5 weeks)",
            "max_price": 1500,
            "limits": [
                {
                    "max_price": 300,
                    "time": 604800
                }
            ]
        }
    }
}

Getting receipt for confirmed transaction

Info This feature is not available by default and is enabled only for some clients

In case user is identified at some location (for offline or gateway clients), receipt with transaction information can be printed for the user.

Request

GET https://wallet.paysera.com/rest/v1/transaction/:transaction_key/receipt?locale=:locale&width=:width

Parameters

transaction_key
key of the transaction
locale
optional parameter; locale for the text translation. Currently available locales: en, lt, ru
width
optional parameter; maximum symbol count in one line. Longer lines will be broken into separate ones

Response data structure

Parameter Type Remarks Description
text_for_customer string always Text for the customer. New lines are separated by \r\n characters (CR + LF)
text_for_merchant string always Text for the merchant. New lines are separated by \r\n characters (CR + LF)

Example request

GET /rest/v1/transaction/pDAlAZ3z/receipt?locale=en HTTP/1.1
Host: wallet.paysera.com
User-Agent: Paysera WalletApi PHP library
Authorization: MAC id="wkVd93h2uS", ts="1343822400", nonce="nQnNaSNyubfPErjRO55yaaEYo9YZfKHN", mac="93AzzSbcHFQRQ63+c2ERHQvc7rNyAIFGLEEqAQXRXTQ="

Example response

HTTP/1.1 200 OK
Content-type: application/json;charset=utf-8
{
    "text_for_customer": "Transaction ID: pDAlAZ3z\r\nMerchant ID: 125\r\nConfirmed with PIN code",
    "text_for_merchant": "Transaction ID: pDAlAZ3z\r\nWallet ID: 14471\r\nConfirmed with PIN code"
}