QR Payment Service Interface (2.1.0)

The Electrum QR Payment Service describes an interface for supporting payments via scanning of a QR code transactions.

Download OpenAPI description
Overview
Languages
Servers

https://docs.electrumsoftware.com/

Schema

CreateQrCodeRequest

A request from the merchant for a QR code to be generated. The QR code returned should be suitable to be displayed to a consumer to be scanned.

idstringrequired

The randomly generated UUID identifying this request. This may be a variant 3 or 4 as defined in RFC 4122

timestring(date-time)required

The date and time of the message as recorded by the sender. The format shall be as defined for date-time in RFC 3339 section 5.6. It is recommended that the optional time-secfrac be included up to millisecond precision

originatorobject(Originator)required

Data relating to the originator of the request.

originator.​institutionobject(Institution)required

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

originator.​institution.​idstringrequired
originator.​institution.​namestringrequired
originator.​terminalIdstringrequired
originator.​merchantobject(Merchant)required
originator.​merchant.​merchantTypestring[0-9]{4}required
originator.​merchant.​merchantIdstringrequired
originator.​merchant.​merchantNameobject(MerchantName)required
originator.​merchant.​merchantName.​namestringrequired
originator.​merchant.​merchantName.​citystringrequired
originator.​merchant.​merchantName.​regionstringrequired
originator.​merchant.​merchantName.​countrystringrequired
originator.​operatorIdstring
originator.​channelIdstring
clientobject(Institution)required

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

client.​idstringrequired
client.​namestringrequired
thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)

An array of identifiers which each identify the transaction within each entity's system.

rrnstring or null

This is a reference set by the original source of the request.

stanstring or null

The System Trace Audit Number can be used to locate transactions across different systems.

amountsobject or null(Amounts)

The amounts pertaining to the QR code which was scanned.

customerobject or null(Customer)

Information detail pertaining to the customer.

qrPropertiesobject(QrProperties)

A collection of attributes that describe how a QR code is intended to be used for transacting.

paymentMethodsArray of objects(PaymentMethod)

A list of payment methods with which the QR owner will accept payment. The paymentMethods specify the destination to which funds may be transferred when the QR code is scanned.

{ "id": "string", "time": "2019-08-24T14:15:22Z", "originator": { "institution": { … }, "terminalId": "string", "merchant": { … }, "operatorId": "string", "channelId": "string" }, "client": { "id": "string", "name": "string" }, "thirdPartyIdentifiers": [ { … } ], "rrn": "string", "stan": "string", "amounts": { "requestAmount": { … }, "approvedAmount": { … }, "feeAmount": { … }, "balanceAmount": { … }, "additionalAmounts": { … } }, "customer": { "firstName": "string", "lastName": "string", "address": "string", "dateOfBirth": "2019-08-24T14:15:22Z", "status": "string", "msisdn": "string", "emailAddress": "string", "addressDetails": { … }, "profileId": "string" }, "qrProperties": { "description": "string", "guid": "string", "overPaymentAllowed": true, "partPaymentAllowed": true, "customerProvidedValuePrompts": [ … ], "requestTip": true, "creationDateTime": "2019-08-24T14:15:22Z", "expiryDate": "2019-08-24T14:15:22Z", "notificationParameters": { … }, "qrLabel": "string" }, "paymentMethods": [ { … } ] }

ScanNotification

A notification sent by the Partner indicating that the Partner received a scan of the QR code linked to the transaction ID. Any PaymentRequest with a matching tranId value should be forwarded to the Partner for processing.

idstringrequired

The randomly generated UUID identifying this notification. This may be a variant 3 or 4 as defined in RFC 4122

timestring(date-time)required

The date and time of the message as recorded by the sender. The format shall be as defined for date-time in RFC 3339 section 5.6. It is recommended that the optional time-secfrac be included up to millisecond precision

partnerobject(Institution)required

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

partner.​idstringrequired
partner.​namestringrequired
settlementEntityobject(Institution)

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

receiverobject(Institution)

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)

An array of identifiers which identify the transaction within each entity's system.

amountsobject or null(Amounts)

The amounts pertaining to the QR code which was scanned.

tranIdstringrequired

The transaction identifier encoded within the QR Code which was scanned. Any PaymentRequest with a matching tranId value should be forwarded to the Partner for processing.

partnerPaymentTokenstring or null

A payment token received from the partner in the ScanNotification. If supplied by the Partner then it will be echoed in the PaymentRequest to the Partner.

{ "id": "string", "time": "2019-08-24T14:15:22Z", "partner": { "id": "string", "name": "string" }, "settlementEntity": { "id": "string", "name": "string" }, "receiver": { "id": "string", "name": "string" }, "thirdPartyIdentifiers": [ { … } ], "amounts": { "requestAmount": { … }, "approvedAmount": { … }, "feeAmount": { … }, "balanceAmount": { … }, "additionalAmounts": { … } }, "tranId": "string", "partnerPaymentToken": "string" }

Confirms completion of tender initiated by a payment request.

Request

This operation confirms that a QR payment transaction has completed successfully between the consumer and the merchant. Such a transaction may be settled between the merchant and the Partner that processed the payment. Such a transaction cannot be reversed.

Security
httpBasic
Bodyapplication/jsonrequired

A QR payment confirmation.

idstringrequired
requestIdstringrequired
timestring(date-time)required
thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required
thirdPartyIdentifiers[].​institutionIdstringrequired
thirdPartyIdentifiers[].​transactionIdentifierstring
stanstring
rrnstring
amountsobject or null(Amounts)

The amounts pertaining to the QR code which was scanned.

partnerobject(Institution)

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

tranIdstring or null

An echo of the value in the original PaymentRequest.

curl -i -X POST \
  -u <username>:<password> \
  https://docs.electrumsoftware.com/payments/confirmations \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "string",
    "requestId": "string",
    "time": "2019-08-24T14:15:22Z",
    "thirdPartyIdentifiers": [
      {
        "institutionId": "string",
        "transactionIdentifier": "string"
      }
    ],
    "stan": "string",
    "rrn": "string",
    "amounts": {
      "requestAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "approvedAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "feeAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "balanceAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "additionalAmounts": {
        "property1": {
          "amount": 0,
          "currency": "string",
          "ledgerIndicator": "DEBIT"
        },
        "property2": {
          "amount": 0,
          "currency": "string",
          "ledgerIndicator": "DEBIT"
        }
      }
    },
    "partner": {
      "id": "string",
      "name": "string"
    },
    "tranId": "string"
  }'

Responses

Accepted

Bodyapplication/json
idstringrequired
requestIdstringrequired
timestring(date-time)required
thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required
thirdPartyIdentifiers[].​institutionIdstringrequired
thirdPartyIdentifiers[].​transactionIdentifierstring
stanstring
rrnstring
amountsobject or null(Amounts)

The amounts pertaining to the QR code which was scanned.

partnerobject(Institution)

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

tranIdstring or null

An echo of the value in the original PaymentRequest.

Response
application/json
{ "id": "string", "requestId": "string", "time": "2019-08-24T14:15:22Z", "thirdPartyIdentifiers": [ { … } ], "stan": "string", "rrn": "string", "amounts": { "requestAmount": { … }, "approvedAmount": { … }, "feeAmount": { … }, "balanceAmount": { … }, "additionalAmounts": { … } }, "partner": { "id": "string", "name": "string" }, "tranId": "string" }

Requests a payment to be processed via a QR Partner.

Request

This request contains conventional payment information (POS information, transaction amount, date etc.) as well as Partner information. If a merchant is unable to supply the Partner information in this request, then the request is directed to an intermediate system which also receives notifications from Partners of QR scans. This intermediate system will match the payment request from the merchant with the scan notification from the Partner using the QR code information common to both messages. The payment request may then be forwarded to the correct Partner for processing.

Security
httpBasic
Bodyapplication/jsonrequired

A QR payment request.

transactionLabelsArray of objects(TransactionLabel)
idstringrequired
timestring(date-time)required
originatorobject(Originator)required

Data relating to the originator of the request.

originator.​institutionobject(Institution)required

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

originator.​institution.​idstringrequired
originator.​institution.​namestringrequired
originator.​terminalIdstringrequired
originator.​merchantobject(Merchant)required
originator.​merchant.​merchantTypestring[0-9]{4}required
originator.​merchant.​merchantIdstringrequired
originator.​merchant.​merchantNameobject(MerchantName)required
originator.​merchant.​merchantName.​namestringrequired
originator.​merchant.​merchantName.​citystringrequired
originator.​merchant.​merchantName.​regionstringrequired
originator.​merchant.​merchantName.​countrystringrequired
originator.​operatorIdstring
originator.​channelIdstring
clientobject(Institution)required

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

client.​idstringrequired
client.​namestringrequired
settlementEntityobject(Institution)

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

receiverobject(Institution)

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required
thirdPartyIdentifiers[].​institutionIdstringrequired
thirdPartyIdentifiers[].​transactionIdentifierstring
slipDataobject(SlipData)
basketRefstring
tranTypestring
Enum"GOODS_AND_SERVICES""CASH_WITHDRAWAL""DEBIT_ADJUSTMENT""GOODS_AND_SERVICES_WITH_CASH_BACK""NON_CASH""RETURNS""DEPOSIT""CREDIT_ADJUSTMENT""GENERAL_CREDIT""AVAILABLE_FUNDS_INQUIRY"
srcAccTypestring
Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
destAccTypestring
Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
stanstring
rrnstring
partnerobject(Institution)

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

amountsobject or null(Amounts)required

The amounts pertaining to the QR code which was scanned.

amounts.​requestAmountobject(LedgerAmount)
amounts.​approvedAmountobject(LedgerAmount)
amounts.​feeAmountobject(LedgerAmount)
amounts.​balanceAmountobject(LedgerAmount)
amounts.​additionalAmountsobject
tranIdstringrequired

The unique transaction identifier related to this transaction. Retailers must set this to the same value as that returned in the tranId field of the CreateQrCodeResponse that preceded this PaymentRequest. Partners may associate this PaymentRequest with the QR code whose ScanNotification they submitted with this value.

partnerPaymentTokenstring or null

A payment token received from the Partner in the ScanNotification. A Partner may provide such a value in the ScanNotification so that it is included in the PaymentRequest to the Partner. This field should be populated if known. A Partner may expect to receive this value in the PaymentRequest if it was provided in the ScanNotification.

curl -i -X POST \
  -u <username>:<password> \
  https://docs.electrumsoftware.com/payments \
  -H 'Content-Type: application/json' \
  -d '{
    "transactionLabels": [
      {
        "name": "string",
        "value": "string"
      }
    ],
    "id": "string",
    "time": "2019-08-24T14:15:22Z",
    "originator": {
      "institution": {
        "id": "string",
        "name": "string"
      },
      "terminalId": "string",
      "merchant": {
        "merchantType": "string",
        "merchantId": "string",
        "merchantName": {
          "name": "string",
          "city": "string",
          "region": "string",
          "country": "string"
        }
      },
      "operatorId": "string",
      "channelId": "string"
    },
    "client": {
      "id": "string",
      "name": "string"
    },
    "settlementEntity": {
      "id": "string",
      "name": "string"
    },
    "receiver": {
      "id": "string",
      "name": "string"
    },
    "thirdPartyIdentifiers": [
      {
        "institutionId": "string",
        "transactionIdentifier": "string"
      }
    ],
    "slipData": {
      "messageLines": [
        {
          "barcode": {
            "data": "string",
            "encoding": "string"
          },
          "text": "string",
          "fontWidthScaleFactor": 0.1,
          "fontHeightScaleFactor": 0.1,
          "line": true,
          "cut": true
        }
      ],
      "slipWidth": 0,
      "issuerReference": "string"
    },
    "basketRef": "string",
    "tranType": "GOODS_AND_SERVICES",
    "srcAccType": "DEFAULT",
    "destAccType": "DEFAULT",
    "stan": "string",
    "rrn": "string",
    "partner": {
      "id": "string",
      "name": "string"
    },
    "amounts": {
      "requestAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "approvedAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "feeAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "balanceAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "additionalAmounts": {
        "property1": {
          "amount": 0,
          "currency": "string",
          "ledgerIndicator": "DEBIT"
        },
        "property2": {
          "amount": 0,
          "currency": "string",
          "ledgerIndicator": "DEBIT"
        }
      }
    },
    "tranId": "string",
    "partnerPaymentToken": "string"
  }'

Responses

Created

Bodyapplication/json
transactionLabelsArray of objects(TransactionLabel)
idstringrequired
timestring(date-time)required
originatorobject(Originator)required

Data relating to the originator of the request.

originator.​institutionobject(Institution)required

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

originator.​institution.​idstringrequired
originator.​institution.​namestringrequired
originator.​terminalIdstringrequired
originator.​merchantobject(Merchant)required
originator.​merchant.​merchantTypestring[0-9]{4}required
originator.​merchant.​merchantIdstringrequired
originator.​merchant.​merchantNameobject(MerchantName)required
originator.​merchant.​merchantName.​namestringrequired
originator.​merchant.​merchantName.​citystringrequired
originator.​merchant.​merchantName.​regionstringrequired
originator.​merchant.​merchantName.​countrystringrequired
originator.​operatorIdstring
originator.​channelIdstring
clientobject(Institution)required

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

client.​idstringrequired
client.​namestringrequired
settlementEntityobject(Institution)

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

receiverobject(Institution)

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required
thirdPartyIdentifiers[].​institutionIdstringrequired
thirdPartyIdentifiers[].​transactionIdentifierstring
slipDataobject(SlipData)
basketRefstring
tranTypestring
Enum"GOODS_AND_SERVICES""CASH_WITHDRAWAL""DEBIT_ADJUSTMENT""GOODS_AND_SERVICES_WITH_CASH_BACK""NON_CASH""RETURNS""DEPOSIT""CREDIT_ADJUSTMENT""GENERAL_CREDIT""AVAILABLE_FUNDS_INQUIRY"
srcAccTypestring
Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
destAccTypestring
Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
stanstring
rrnstring
partnerobject(Institution)required

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

partner.​idstringrequired
partner.​namestringrequired
tendersArray of objects or null or null(Tender)

An array of tenders used to pay for the transaction. This may be used to describe the payment which was effected as a result of the QR code scan e.g. the card detail ultimately used for the payment.

amountsobject or null(Amounts)required

The amounts pertaining to the QR code which was scanned.

amounts.​requestAmountobject(LedgerAmount)
amounts.​approvedAmountobject(LedgerAmount)
amounts.​feeAmountobject(LedgerAmount)
amounts.​balanceAmountobject(LedgerAmount)
amounts.​additionalAmountsobject
tranIdstringrequired

This value is echoed from the PaymentRequest.

partnerPaymentTokenstring or null

This value is echoed from the PaymentRequest.

Response
application/json
{ "transactionLabels": [ { … } ], "id": "string", "time": "2019-08-24T14:15:22Z", "originator": { "institution": { … }, "terminalId": "string", "merchant": { … }, "operatorId": "string", "channelId": "string" }, "client": { "id": "string", "name": "string" }, "settlementEntity": { "id": "string", "name": "string" }, "receiver": { "id": "string", "name": "string" }, "thirdPartyIdentifiers": [ { … } ], "slipData": { "messageLines": [ … ], "slipWidth": 0, "issuerReference": "string" }, "basketRef": "string", "tranType": "GOODS_AND_SERVICES", "srcAccType": "DEFAULT", "destAccType": "DEFAULT", "stan": "string", "rrn": "string", "partner": { "id": "string", "name": "string" }, "tenders": [ { … } ], "amounts": { "requestAmount": { … }, "approvedAmount": { … }, "feeAmount": { … }, "balanceAmount": { … }, "additionalAmounts": { … } }, "tranId": "string", "partnerPaymentToken": "string" }

Reverses a payment request that failed or timed out

Request

This operation indicates that the sale did not complete and the payment should be reversed if it took place. Once a payment is reversed it cannot be confirmed and need not be settled between the merchant and the QR Partner.

Security
httpBasic
Bodyapplication/jsonrequired

A QR payment reversal.

idstringrequired
requestIdstringrequired
timestring(date-time)required
thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required
thirdPartyIdentifiers[].​institutionIdstringrequired
thirdPartyIdentifiers[].​transactionIdentifierstring
stanstring
rrnstring
amountsobject or null(Amounts)

The amounts pertaining to the QR code which was scanned.

reversalReasonstringrequired
Enum"TIMEOUT""CANCELLED""RESPONSE_NOT_FINAL""REFUND""VOID"
partnerobject(Institution)

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

tranIdstring or null

An echo of the value in the original PaymentRequest.

curl -i -X POST \
  -u <username>:<password> \
  https://docs.electrumsoftware.com/payments/reversals \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "string",
    "requestId": "string",
    "time": "2019-08-24T14:15:22Z",
    "thirdPartyIdentifiers": [
      {
        "institutionId": "string",
        "transactionIdentifier": "string"
      }
    ],
    "stan": "string",
    "rrn": "string",
    "amounts": {
      "requestAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "approvedAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "feeAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "balanceAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "additionalAmounts": {
        "property1": {
          "amount": 0,
          "currency": "string",
          "ledgerIndicator": "DEBIT"
        },
        "property2": {
          "amount": 0,
          "currency": "string",
          "ledgerIndicator": "DEBIT"
        }
      }
    },
    "reversalReason": "TIMEOUT",
    "partner": {
      "id": "string",
      "name": "string"
    },
    "tranId": "string"
  }'

Responses

Accepted

Bodyapplication/json
idstringrequired
requestIdstringrequired
timestring(date-time)required
thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required
thirdPartyIdentifiers[].​institutionIdstringrequired
thirdPartyIdentifiers[].​transactionIdentifierstring
stanstring
rrnstring
amountsobject or null(Amounts)

The amounts pertaining to the QR code which was scanned.

reversalReasonstringrequired
Enum"TIMEOUT""CANCELLED""RESPONSE_NOT_FINAL""REFUND""VOID"
partnerobject(Institution)

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

tranIdstring or null

An echo of the value in the original PaymentRequest.

Response
application/json
{ "id": "string", "requestId": "string", "time": "2019-08-24T14:15:22Z", "thirdPartyIdentifiers": [ { … } ], "stan": "string", "rrn": "string", "amounts": { "requestAmount": { … }, "approvedAmount": { … }, "feeAmount": { … }, "balanceAmount": { … }, "additionalAmounts": { … } }, "reversalReason": "TIMEOUT", "partner": { "id": "string", "name": "string" }, "tranId": "string" }

Requests a QR Code to display to a customer to be scanned.

Request

The customer may scan this code with a Partner's application and thereby allow the Partner to identify the QR code provider.

Security
httpBasic
Bodyapplication/jsonrequired

Information pertaining to the QR code, which may be available at the time of the request. This may include details such as the entity requesting the QR code, the value of the transaction for which the QR code will be used and the specific purpose of the QR code. The request for a QR code should convey information about the merchant requesting the QR code (e.g. POS information) and not information about the consumer who will scan the QR code (e.g. customer or loyalty information).

idstringrequired

The randomly generated UUID identifying this request. This may be a variant 3 or 4 as defined in RFC 4122

timestring(date-time)required

The date and time of the message as recorded by the sender. The format shall be as defined for date-time in RFC 3339 section 5.6. It is recommended that the optional time-secfrac be included up to millisecond precision

originatorobject(Originator)required

Data relating to the originator of the request.

originator.​institutionobject(Institution)required

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

originator.​institution.​idstringrequired
originator.​institution.​namestringrequired
originator.​terminalIdstringrequired
originator.​merchantobject(Merchant)required
originator.​merchant.​merchantTypestring[0-9]{4}required
originator.​merchant.​merchantIdstringrequired
originator.​merchant.​merchantNameobject(MerchantName)required
originator.​merchant.​merchantName.​namestringrequired
originator.​merchant.​merchantName.​citystringrequired
originator.​merchant.​merchantName.​regionstringrequired
originator.​merchant.​merchantName.​countrystringrequired
originator.​operatorIdstring
originator.​channelIdstring
clientobject(Institution)required

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

client.​idstringrequired
client.​namestringrequired
thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)

An array of identifiers which each identify the transaction within each entity's system.

rrnstring or null

This is a reference set by the original source of the request.

stanstring or null

The System Trace Audit Number can be used to locate transactions across different systems.

amountsobject or null(Amounts)

The amounts pertaining to the QR code which was scanned.

customerobject or null(Customer)

Information detail pertaining to the customer.

qrPropertiesobject(QrProperties)

A collection of attributes that describe how a QR code is intended to be used for transacting.

paymentMethodsArray of objects(PaymentMethod)

A list of payment methods with which the QR owner will accept payment. The paymentMethods specify the destination to which funds may be transferred when the QR code is scanned.

curl -i -X POST \
  -u <username>:<password> \
  https://docs.electrumsoftware.com/qrCodes \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "string",
    "time": "2019-08-24T14:15:22Z",
    "originator": {
      "institution": {
        "id": "string",
        "name": "string"
      },
      "terminalId": "string",
      "merchant": {
        "merchantType": "string",
        "merchantId": "string",
        "merchantName": {
          "name": "string",
          "city": "string",
          "region": "string",
          "country": "string"
        }
      },
      "operatorId": "string",
      "channelId": "string"
    },
    "client": {
      "id": "string",
      "name": "string"
    },
    "thirdPartyIdentifiers": [
      {
        "institutionId": "string",
        "transactionIdentifier": "string"
      }
    ],
    "rrn": "string",
    "stan": "string",
    "amounts": {
      "requestAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "approvedAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "feeAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "balanceAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "additionalAmounts": {
        "property1": {
          "amount": 0,
          "currency": "string",
          "ledgerIndicator": "DEBIT"
        },
        "property2": {
          "amount": 0,
          "currency": "string",
          "ledgerIndicator": "DEBIT"
        }
      }
    },
    "customer": {
      "firstName": "string",
      "lastName": "string",
      "address": "string",
      "dateOfBirth": "2019-08-24T14:15:22Z",
      "status": "string",
      "msisdn": "string",
      "emailAddress": "string",
      "addressDetails": {
        "addressLine1": "string",
        "addressLine2": "string",
        "city": "string",
        "region": "string",
        "country": "string",
        "postalCode": "string"
      },
      "profileId": "string"
    },
    "qrProperties": {
      "description": "string",
      "guid": "string",
      "overPaymentAllowed": true,
      "partPaymentAllowed": true,
      "customerProvidedValuePrompts": [
        {
          "label": "string"
        }
      ],
      "requestTip": true,
      "creationDateTime": "2019-08-24T14:15:22Z",
      "expiryDate": "2019-08-24T14:15:22Z",
      "notificationParameters": {
        "recipients": [
          {
            "emailAddress": "string",
            "msisdn": "string"
          }
        ]
      },
      "qrLabel": "string"
    },
    "paymentMethods": [
      {
        "type": "AN_32_TOKEN",
        "name": "string",
        "amount": {
          "amount": 0,
          "currency": "string",
          "ledgerIndicator": "DEBIT"
        },
        "issuer": {
          "id": "string",
          "name": "string"
        },
        "pin": {
          "type": "CLEAR_PIN"
        },
        "proxy": "string",
        "proxyType": "MSISDN"
      }
    ]
  }'

Responses

Created

Bodyapplication/json
idstringrequired

The randomly generated UUID identifying this request. This may be a variant 3 or 4 as defined in RFC 4122

timestring(date-time)required

The date and time of the message as recorded by the sender. The format shall be as defined for date-time in RFC 3339 section 5.6. It is recommended that the optional time-secfrac be included up to millisecond precision

originatorobject(Originator)required

Data relating to the originator of the request.

originator.​institutionobject(Institution)required

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

originator.​institution.​idstringrequired
originator.​institution.​namestringrequired
originator.​terminalIdstringrequired
originator.​merchantobject(Merchant)required
originator.​merchant.​merchantTypestring[0-9]{4}required
originator.​merchant.​merchantIdstringrequired
originator.​merchant.​merchantNameobject(MerchantName)required
originator.​merchant.​merchantName.​namestringrequired
originator.​merchant.​merchantName.​citystringrequired
originator.​merchant.​merchantName.​regionstringrequired
originator.​merchant.​merchantName.​countrystringrequired
originator.​operatorIdstring
originator.​channelIdstring
clientobject(Institution)required

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

client.​idstringrequired
client.​namestringrequired
thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)

An array of identifiers which each identify the transaction within each entity's system.

rrnstring or null

This is a reference set by the original source of the request.

stanstring or null

The System Trace Audit Number can be used to locate transactions across different systems.

amountsobject or null(Amounts)

The amounts pertaining to the QR code which was scanned.

customerobject or null(Customer)

Information detail pertaining to the customer.

qrPropertiesobject(QrProperties)

A collection of attributes that describe how a QR code is intended to be used for transacting.

paymentMethodsArray of objects(PaymentMethod)

A list of payment methods with which the QR owner will accept payment. The paymentMethods specify the destination to which funds may be transferred when the QR code is scanned.

tranIdstringrequired

The unique transaction identifier assigned by the QR code provider to this QR code. This value is also encoded in the QR code returned in the qrCode field. The QR code provider is responsible for ensuring appropriate uniqueness of the QR code for the appropriate period of time. No specific restrictions are placed on the format of the QR code (length, characters etc.) but implementors should consider the following aspects; Length - Longer QR codes require more detailed resolution on display screens and scanning devices and are also harder to scan. Manual Entry - While manual entry of QR codes is not explicitly supported by the QR Payments Service Interface, implementors may choose to support such fallback mechanisms if a QR code cannot be scanned. Longer and more complicated codes will be more susceptible to errors when inputted manually. This value must be provided in subsequent 'notifyScan' and 'pay' operations to link payments to specific Partners.

qrCodestringrequired

The full set of data to be encoded in the graphical QR code. The data is provided in a Tag-Length-Value format as described in the EMVCo specification but is not a fully EMVCo compliant string e.g. Tags which are mandatory under the EMVCo specification may be omitted. The precise set of Tags to be populated in the QR code should be discussed and agreed upon by implementation partners.

Response
application/json
{ "id": "string", "time": "2019-08-24T14:15:22Z", "originator": { "institution": { … }, "terminalId": "string", "merchant": { … }, "operatorId": "string", "channelId": "string" }, "client": { "id": "string", "name": "string" }, "thirdPartyIdentifiers": [ { … } ], "rrn": "string", "stan": "string", "amounts": { "requestAmount": { … }, "approvedAmount": { … }, "feeAmount": { … }, "balanceAmount": { … }, "additionalAmounts": { … } }, "customer": { "firstName": "string", "lastName": "string", "address": "string", "dateOfBirth": "2019-08-24T14:15:22Z", "status": "string", "msisdn": "string", "emailAddress": "string", "addressDetails": { … }, "profileId": "string" }, "qrProperties": { "description": "string", "guid": "string", "overPaymentAllowed": true, "partPaymentAllowed": true, "customerProvidedValuePrompts": [ … ], "requestTip": true, "creationDateTime": "2019-08-24T14:15:22Z", "expiryDate": "2019-08-24T14:15:22Z", "notificationParameters": { … }, "qrLabel": "string" }, "paymentMethods": [ { … } ], "tranId": "string", "qrCode": "string" }

Notify that a QR code has been scanned.

Request

Partners are not notified by a QR code provider when a QR code is generated. Only when a consumer scans a QR code using a Partner's application is the Partner aware that the QR code is available. The Partner subsequently informs the provider of the QR code that their code has been scanned. The QR code provider shall then associate any other transactions pertaining to the QR code with the Partner.

Security
httpBasic
Bodyapplication/jsonrequired

A get QR code request.

idstringrequired

The randomly generated UUID identifying this notification. This may be a variant 3 or 4 as defined in RFC 4122

timestring(date-time)required

The date and time of the message as recorded by the sender. The format shall be as defined for date-time in RFC 3339 section 5.6. It is recommended that the optional time-secfrac be included up to millisecond precision

partnerobject(Institution)required

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

partner.​idstringrequired
partner.​namestringrequired
settlementEntityobject(Institution)

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

receiverobject(Institution)

Data relating to the entity which ultimately processes the request. A Partner may provide this information if known at the time the QR code was scanned.

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)

An array of identifiers which identify the transaction within each entity's system.

amountsobject or null(Amounts)

The amounts pertaining to the QR code which was scanned.

tranIdstringrequired

The transaction identifier encoded within the QR Code which was scanned. Any PaymentRequest with a matching tranId value should be forwarded to the Partner for processing.

partnerPaymentTokenstring or null

A payment token received from the partner in the ScanNotification. If supplied by the Partner then it will be echoed in the PaymentRequest to the Partner.

curl -i -X POST \
  -u <username>:<password> \
  https://docs.electrumsoftware.com/scans \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "string",
    "time": "2019-08-24T14:15:22Z",
    "partner": {
      "id": "string",
      "name": "string"
    },
    "settlementEntity": {
      "id": "string",
      "name": "string"
    },
    "receiver": {
      "id": "string",
      "name": "string"
    },
    "thirdPartyIdentifiers": [
      {
        "institutionId": "string",
        "transactionIdentifier": "string"
      }
    ],
    "amounts": {
      "requestAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "approvedAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "feeAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "balanceAmount": {
        "amount": 0,
        "currency": "string",
        "ledgerIndicator": "DEBIT"
      },
      "additionalAmounts": {
        "property1": {
          "amount": 0,
          "currency": "string",
          "ledgerIndicator": "DEBIT"
        },
        "property2": {
          "amount": 0,
          "currency": "string",
          "ledgerIndicator": "DEBIT"
        }
      }
    },
    "tranId": "string",
    "partnerPaymentToken": "string"
  }'

Responses

Accepted

Response
No content