SUV Service Interface (1.26.0)

The Electrum SUV Service describes an interface for single use voucher transactions.

Download OpenAPI description
Languages
Servers

https://[placeholder].dev/suv/v1/

Schema

Amounts

Amounts which make up the transaction. Absent amounts have zero value.

requestAmountobject(LedgerAmount)

An amount object only containing value and currency, and optionally an indicator of DEBIT/CREDIT

approvedAmountobject(LedgerAmount)

An amount object only containing value and currency, and optionally an indicator of DEBIT/CREDIT

feeAmountobject(LedgerAmount)

An amount object only containing value and currency, and optionally an indicator of DEBIT/CREDIT

balanceAmountobject(LedgerAmount)

An amount object only containing value and currency, and optionally an indicator of DEBIT/CREDIT

additionalAmountsobject

Any additional amounts that are involved in a transaction which don't appropriately fit into the other amount fields.

{ "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": {}, "property2": {} } }

An32TokenPayment

Base model for all payment types

typestringrequired

The general method of payment used

Enum"AN_32_TOKEN""LOYALTY_CARD""CARD""ACCOUNT""REWARD""WALLET""QR"
Discriminator
namestring

The specific method of payment used

amountobject(LedgerAmount)

An amount object only containing value and currency, and optionally an indicator of DEBIT/CREDIT

issuerobject(Institution)

Originating, acquiring, processing, or receiving institution details

pinobject(Pin)

Base model for capturing either a clear PIN or encrypted PIN

proxystring[ 0 .. 40 ] characters

An alternative identifier for the customer's source of funds. Acts as a stand in for the customer identifier. E.g. a customer's MSISDN or email address.

proxyTypestring

An enumerated value describing the type of value used as the proxy.

Enum"MSISDN""EMAIL""UNKNOWN"
srcAccountIdstring

Source AccountId from which this payment will be made.

srcCustomerIdstring

Source CustomerId from which this payment will be made.

destAccountIdstring

Destination AccountId to which this payment will be made.

destCustomerIdstring

Destination CustomerId to which this payment will be made.

{ "type": "AccountPayment", "name": "string", "amount": { "amount": 0, "currency": "string", "ledgerIndicator": "DEBIT" }, "issuer": { "id": "string", "name": "string" }, "pin": { "type": "CLEAR_PIN" }, "proxy": "string", "proxyType": "MSISDN", "srcAccountId": "string", "srcCustomerId": "string", "destAccountId": "string", "destCustomerId": "string" }

Barcode

Used to indicate barcode information for a slip line.

datastringrequired

Data to be encoded in the barcode

encodingstringrequired

Specifies the encoding used in the barcode

{ "data": "string", "encoding": "string" }

lookupProducts

Request

This operation is used to retrieve a list of products, filtered using the query parameter(s).This operation has no financial impact and is informative only.

Security
httpBasic or oauth2
Query
channelNamestring

The name of the channel to retrieve products for. If set only products matching this channel name will be returned. If not set, all products will be returned.

receiverIdstring

The unique Id of the receiving entity from which to retrieve the list of products.

Failed to generate code sample.

Responses

OK

Bodyapplication/json
productsArray of objects(Product)

The list of products.

Response
application/json
{ "products": [ {} ] }

redeemVoucher

Request

This operation is performed when a voucher is used as a form of tender. When used as a form of tender, the recipient redeems the requestAmount against the voucher. The voucher vendor is responsible for authorizing the redemption. Once fully redeemed, the voucher may not be used as a form of tender again.

Security
httpBasic or oauth2
Bodyapplication/jsonrequired

A redemption request.

transactionLabelsArray of objects(TransactionLabel)

A list containing labels that can be used to discover this transaction or group it with other transactions sharing labels with the same label name and value. Transaction labels should never be used to make transaction processing decisions.

idstringrequired

The randomly generated UUID identifying this transaction, as defined for a variant 4 UUID 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

The Originator object encapsulates data relating to the originator of the transaction

originator.​institutionobject(Institution)required

Originating, acquiring, processing, or receiving institution details

originator.​institution.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

originator.​institution.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

originator.​terminalIdstring= 8 charactersrequired

The ID that uniquely identifies each device or system in an originator's institution capable of sending requests. Required for transactions initiated from physical card entry or point-of-sale devices

originator.​merchantobject(Merchant)required

Merchant related data. Must be included if available

originator.​merchant.​merchantTypestring[0-9]{4}required

The assigned four digit merchant category code

originator.​merchant.​merchantIdstring= 15 charactersrequired

The assigned merchant identifier. Also known as card acceptor id

originator.​merchant.​merchantNameobject(MerchantName)required

A container object representing the Merchant Name and Location

originator.​merchant.​merchantName.​namestring[ 0 .. 23 ] charactersrequired

The merchant or trading as name associated with the merchant

originator.​merchant.​merchantName.​citystring[ 0 .. 13 ] charactersrequired

The city where the merchant is located

originator.​merchant.​merchantName.​regionstring[ 0 .. 2 ] charactersrequired

The state or region where the merchant is located

originator.​merchant.​merchantName.​countrystring[ 0 .. 2 ] charactersrequired

The country where the merchant is located

originator.​operatorIdstring[ 0 .. 30 ] characters

The ID that uniquely identifies the person operating the terminal specified by the terminalId field.

originator.​channelIdstring[ 0 .. 50 ] characters

The ID that uniquely identifies the originator's channel that this transaction was received through.

clientobject(Institution)required

Originating, acquiring, processing, or receiving institution details

client.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

client.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

settlementEntityobject(Institution)

Originating, acquiring, processing, or receiving institution details

receiverobject(Institution)

Originating, acquiring, processing, or receiving institution details

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

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

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

slipDataobject(SlipData)

Data that may be printed on the customer slip for information purposes

basketRefstring

Used to group multiple transactions which would otherwise be considered independent.

tranTypestring

Data relating to the type of transaction taking place (i.e. cash withdrawal, goods and services etc.).

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

This specifies the type of source account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
destAccTypestring

This specifies the type of destination account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
stanstring

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

rrnstring

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

voucherobject(Voucher)required

Specifically describes the voucher provisioned by the vendor.

voucher.​codestring[ 0 .. 40 ] characters

The voucher's code used by the customer to redeem the voucher. This must be present in ProvisionResponse, RedemptionRequest and RefundRequest messages. This may be present in a ProvisionRequest if the voucher vendor allows the client to set the voucher code. It is recommended this field not be populated in other instances as it may be considered sensitive data.

voucher.​expiryDatestring(date-time)

The date and time at which the voucher expires. The format shall be as defined for date-time in RFC 3339 section 5.6.

voucher.​redeemInstructionsArray of strings

An array of free text lines which provide the customer with information on how to redeem the voucher. These are intended to be printed on a customer's receipt slip.

voucher.​serialNumberstring[ 0 .. 40 ] characters

The voucher's serial number. This can be used to identify the voucher in the vendor's system but cannot be used to redeem the voucher.

voucher.​pinobject(Pin)

Base model for capturing either a clear PIN or encrypted PIN

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

posInfoobject(PosInfo)

POS related data.

customerobject(Customer)

A customer who ultimately requests a transaction be performed.

basketInfoArray of objects(BasketItem)

An array containing details of the basket items on which discounts can potentially be applied to.

Failed to generate code sample.

Responses

successful operation

Bodyapplication/json
transactionLabelsArray of objects(TransactionLabel)

A list containing labels that can be used to discover this transaction or group it with other transactions sharing labels with the same label name and value. Transaction labels should never be used to make transaction processing decisions.

idstringrequired

The randomly generated UUID identifying this transaction, as defined for a variant 4 UUID 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

The Originator object encapsulates data relating to the originator of the transaction

originator.​institutionobject(Institution)required

Originating, acquiring, processing, or receiving institution details

originator.​institution.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

originator.​institution.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

originator.​terminalIdstring= 8 charactersrequired

The ID that uniquely identifies each device or system in an originator's institution capable of sending requests. Required for transactions initiated from physical card entry or point-of-sale devices

originator.​merchantobject(Merchant)required

Merchant related data. Must be included if available

originator.​merchant.​merchantTypestring[0-9]{4}required

The assigned four digit merchant category code

originator.​merchant.​merchantIdstring= 15 charactersrequired

The assigned merchant identifier. Also known as card acceptor id

originator.​merchant.​merchantNameobject(MerchantName)required

A container object representing the Merchant Name and Location

originator.​merchant.​merchantName.​namestring[ 0 .. 23 ] charactersrequired

The merchant or trading as name associated with the merchant

originator.​merchant.​merchantName.​citystring[ 0 .. 13 ] charactersrequired

The city where the merchant is located

originator.​merchant.​merchantName.​regionstring[ 0 .. 2 ] charactersrequired

The state or region where the merchant is located

originator.​merchant.​merchantName.​countrystring[ 0 .. 2 ] charactersrequired

The country where the merchant is located

originator.​operatorIdstring[ 0 .. 30 ] characters

The ID that uniquely identifies the person operating the terminal specified by the terminalId field.

originator.​channelIdstring[ 0 .. 50 ] characters

The ID that uniquely identifies the originator's channel that this transaction was received through.

clientobject(Institution)required

Originating, acquiring, processing, or receiving institution details

client.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

client.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

settlementEntityobject(Institution)

Originating, acquiring, processing, or receiving institution details

receiverobject(Institution)

Originating, acquiring, processing, or receiving institution details

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

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

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

slipDataobject(SlipData)

Data that may be printed on the customer slip for information purposes

basketRefstring

Used to group multiple transactions which would otherwise be considered independent.

tranTypestring

Data relating to the type of transaction taking place (i.e. cash withdrawal, goods and services etc.).

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

This specifies the type of source account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
destAccTypestring

This specifies the type of destination account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
stanstring

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

rrnstring

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

voucherobject(Voucher)

Specifically describes the voucher provisioned by the vendor.

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

posInfoobject(PosInfo)

POS related data.

customerobject(Customer)

A customer who ultimately requests a transaction be performed.

Response
application/json
{ "transactionLabels": [ {} ], "id": "string", "time": "2019-08-24T14:15:22Z", "originator": { "institution": {}, "terminalId": "stringst", "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", "voucher": { "code": "string", "expiryDate": "2019-08-24T14:15:22Z", "redeemInstructions": [], "serialNumber": "string", "pin": {} }, "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {} }, "posInfo": { "entryMode": {}, "posConditionCode": "NORMAL_PRESENTMENT" }, "customer": { "firstName": "string", "lastName": "string", "address": "string", "dateOfBirth": "2019-08-24T14:15:22Z", "status": "string", "msisdn": "string", "emailAddress": "user@example.com", "addressDetails": {}, "profileId": "string" } }

confirmRedeem

Request

Confirm a voucher redemption request that completed successfully. There is typically no need to notify the voucher vendor of the successful completion of the sale. However, this API recognises that client implementations may be very familiar with dual message APIs and this confirmation operation is provided to achieve consistency across the API with respect to single vs dual message operations. By performing this operation the client indicates that no subsequent reversal of the redemption will be performed. Note though that the successful completion of the confirmRedemption operation does not guarantee that the voucher will not be refunded in future.

Security
httpBasic or oauth2
Bodyapplication/jsonrequired

A voucher redemption confirmation.

idstringrequired

The randomly generated UUID identifying this advice, as defined for a variant 4 UUID in RFC 4122

requestIdstringrequired

The UUID identifying the request that this advice relates to

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

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

The unaltered thirdPartyIdentifiers array as supplied in the related BasicResponse message. Required if thirdPartyIdentifiers field was present in the BasicResponse. If no thirdPartyIdentifiers was received in the BasicResponse or no BasicResponse was received then this should be set to the thirdPartyIdentifiers sent in the original request.

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

Failed to generate code sample.

Responses

successful operation

Bodyapplication/json
idstringrequired

The randomly generated UUID identifying this advice, as defined for a variant 4 UUID in RFC 4122

requestIdstringrequired

The UUID identifying the request that this advice relates to

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

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

The unaltered thirdPartyIdentifiers array as supplied in the related BasicResponse message. Required if thirdPartyIdentifiers field was present in the BasicResponse. If no thirdPartyIdentifiers was received in the BasicResponse or no BasicResponse was received then this should be set to the thirdPartyIdentifiers sent in the original request.

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

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

reverseRedeem

Request

Reverse a voucher redemption request. If a voucherRedemption request fails with one of the 5xx HTTP statuses code, or no response was received within the timeout period, it must be reversed to ensure the vendor does not consider the voucher to be in redeemed state. reverseRedemption must be repeated until a final HTTP status code is received (i.e. not 5xx). reverseRedemption may be called repeatedly on the same voucher resource without negative effect. If a voucher redemption is reversed there is no need to perform a refund against the voucher.

Security
httpBasic or oauth2
Bodyapplication/jsonrequired

A voucher redemption reversal.

idstringrequired

The randomly generated UUID identifying this advice, as defined for a variant 4 UUID in RFC 4122

requestIdstringrequired

The UUID identifying the request that this advice relates to

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

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

The unaltered thirdPartyIdentifiers array as supplied in the related BasicResponse message. Required if thirdPartyIdentifiers field was present in the BasicResponse. If no thirdPartyIdentifiers was received in the BasicResponse or no BasicResponse was received then this should be set to the thirdPartyIdentifiers sent in the original request.

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

reversalReasonstringrequired

The reason for the reversal

Enum"TIMEOUT""CANCELLED""RESPONSE_NOT_FINAL"
Failed to generate code sample.

Responses

successful operation

Bodyapplication/json
idstringrequired

The randomly generated UUID identifying this advice, as defined for a variant 4 UUID in RFC 4122

requestIdstringrequired

The UUID identifying the request that this advice relates to

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

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

The unaltered thirdPartyIdentifiers array as supplied in the related BasicResponse message. Required if thirdPartyIdentifiers field was present in the BasicResponse. If no thirdPartyIdentifiers was received in the BasicResponse or no BasicResponse was received then this should be set to the thirdPartyIdentifiers sent in the original request.

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

reversalReasonstringrequired

The reason for the reversal

Enum"TIMEOUT""CANCELLED""RESPONSE_NOT_FINAL"
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" }

lookupRedemption

Request

This operation may be used to obtain the result of a previous redemption request. It returns one of five classes of response: the original approved response,the original error response, a HTTP status code of 102 if the original request is still being processed and no response is available yet, a HTTP status code of 403 if the client did not submit the original request and is therefore not permitted to obtain the response, a HTTP status code of 404 if the original request was not received.

Security
httpBasic or oauth2
Path
requestIdstringrequired

The randomly generated UUID of this request.

Failed to generate code sample.

Responses

Processing

Response
No content

refundVoucher

Request

This operation is performed when a voucher was previously successfully redeemed. Should a consumer request a refund from the merchant, the merchant may use the refundVoucher operation to request the voucher be placed back into an unredeemed state. The voucher vendor is responsible for authorizing the refund. Once refunded, the voucher may be used as a form of tender again if allowed by the voucher vendor.

Security
httpBasic or oauth2
Bodyapplication/jsonrequired

A refund request.

transactionLabelsArray of objects(TransactionLabel)

A list containing labels that can be used to discover this transaction or group it with other transactions sharing labels with the same label name and value. Transaction labels should never be used to make transaction processing decisions.

idstringrequired

The randomly generated UUID identifying this transaction, as defined for a variant 4 UUID 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

The Originator object encapsulates data relating to the originator of the transaction

originator.​institutionobject(Institution)required

Originating, acquiring, processing, or receiving institution details

originator.​institution.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

originator.​institution.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

originator.​terminalIdstring= 8 charactersrequired

The ID that uniquely identifies each device or system in an originator's institution capable of sending requests. Required for transactions initiated from physical card entry or point-of-sale devices

originator.​merchantobject(Merchant)required

Merchant related data. Must be included if available

originator.​merchant.​merchantTypestring[0-9]{4}required

The assigned four digit merchant category code

originator.​merchant.​merchantIdstring= 15 charactersrequired

The assigned merchant identifier. Also known as card acceptor id

originator.​merchant.​merchantNameobject(MerchantName)required

A container object representing the Merchant Name and Location

originator.​merchant.​merchantName.​namestring[ 0 .. 23 ] charactersrequired

The merchant or trading as name associated with the merchant

originator.​merchant.​merchantName.​citystring[ 0 .. 13 ] charactersrequired

The city where the merchant is located

originator.​merchant.​merchantName.​regionstring[ 0 .. 2 ] charactersrequired

The state or region where the merchant is located

originator.​merchant.​merchantName.​countrystring[ 0 .. 2 ] charactersrequired

The country where the merchant is located

originator.​operatorIdstring[ 0 .. 30 ] characters

The ID that uniquely identifies the person operating the terminal specified by the terminalId field.

originator.​channelIdstring[ 0 .. 50 ] characters

The ID that uniquely identifies the originator's channel that this transaction was received through.

clientobject(Institution)required

Originating, acquiring, processing, or receiving institution details

client.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

client.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

settlementEntityobject(Institution)

Originating, acquiring, processing, or receiving institution details

receiverobject(Institution)

Originating, acquiring, processing, or receiving institution details

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

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

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

slipDataobject(SlipData)

Data that may be printed on the customer slip for information purposes

basketRefstring

Used to group multiple transactions which would otherwise be considered independent.

tranTypestring

Data relating to the type of transaction taking place (i.e. cash withdrawal, goods and services etc.).

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

This specifies the type of source account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
destAccTypestring

This specifies the type of destination account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

voucherobject(Voucher)required

Specifically describes the voucher provisioned by the vendor.

voucher.​codestring[ 0 .. 40 ] characters

The voucher's code used by the customer to redeem the voucher. This must be present in ProvisionResponse, RedemptionRequest and RefundRequest messages. This may be present in a ProvisionRequest if the voucher vendor allows the client to set the voucher code. It is recommended this field not be populated in other instances as it may be considered sensitive data.

voucher.​expiryDatestring(date-time)

The date and time at which the voucher expires. The format shall be as defined for date-time in RFC 3339 section 5.6.

voucher.​redeemInstructionsArray of strings

An array of free text lines which provide the customer with information on how to redeem the voucher. These are intended to be printed on a customer's receipt slip.

voucher.​serialNumberstring[ 0 .. 40 ] characters

The voucher's serial number. This can be used to identify the voucher in the vendor's system but cannot be used to redeem the voucher.

voucher.​pinobject(Pin)

Base model for capturing either a clear PIN or encrypted PIN

redemptionIdstring

Carries the value of the id field of the RedemptionRequest which is being refunded. Use of this field is encouraged if the refund request is submitted to the same system which processed the original redemption.

receiverTransactionRefstring

Carries the value of the receiver's transaction reference for the original redemption. Use of this field is specifically encouraged if: The voucher alone is not enough to uniquely identify the redemption to be refunded or the refund is processed by any system which did not process the original redemption. Use of this field is generally encouraged as it provides the receiver (who ultimately processed the redemption) with their specific transaction reference for the redemption. This may aid their processing of the refund.

posInfoobject(PosInfo)

POS related data.

Failed to generate code sample.

Responses

successful operation

Bodyapplication/json
transactionLabelsArray of objects(TransactionLabel)

A list containing labels that can be used to discover this transaction or group it with other transactions sharing labels with the same label name and value. Transaction labels should never be used to make transaction processing decisions.

idstringrequired

The randomly generated UUID identifying this transaction, as defined for a variant 4 UUID 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

The Originator object encapsulates data relating to the originator of the transaction

originator.​institutionobject(Institution)required

Originating, acquiring, processing, or receiving institution details

originator.​institution.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

originator.​institution.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

originator.​terminalIdstring= 8 charactersrequired

The ID that uniquely identifies each device or system in an originator's institution capable of sending requests. Required for transactions initiated from physical card entry or point-of-sale devices

originator.​merchantobject(Merchant)required

Merchant related data. Must be included if available

originator.​merchant.​merchantTypestring[0-9]{4}required

The assigned four digit merchant category code

originator.​merchant.​merchantIdstring= 15 charactersrequired

The assigned merchant identifier. Also known as card acceptor id

originator.​merchant.​merchantNameobject(MerchantName)required

A container object representing the Merchant Name and Location

originator.​merchant.​merchantName.​namestring[ 0 .. 23 ] charactersrequired

The merchant or trading as name associated with the merchant

originator.​merchant.​merchantName.​citystring[ 0 .. 13 ] charactersrequired

The city where the merchant is located

originator.​merchant.​merchantName.​regionstring[ 0 .. 2 ] charactersrequired

The state or region where the merchant is located

originator.​merchant.​merchantName.​countrystring[ 0 .. 2 ] charactersrequired

The country where the merchant is located

originator.​operatorIdstring[ 0 .. 30 ] characters

The ID that uniquely identifies the person operating the terminal specified by the terminalId field.

originator.​channelIdstring[ 0 .. 50 ] characters

The ID that uniquely identifies the originator's channel that this transaction was received through.

clientobject(Institution)required

Originating, acquiring, processing, or receiving institution details

client.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

client.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

settlementEntityobject(Institution)

Originating, acquiring, processing, or receiving institution details

receiverobject(Institution)

Originating, acquiring, processing, or receiving institution details

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

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

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

slipDataobject(SlipData)

Data that may be printed on the customer slip for information purposes

basketRefstring

Used to group multiple transactions which would otherwise be considered independent.

tranTypestring

Data relating to the type of transaction taking place (i.e. cash withdrawal, goods and services etc.).

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

This specifies the type of source account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
destAccTypestring

This specifies the type of destination account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

voucherobject(Voucher)

Specifically describes the voucher provisioned by the vendor.

posInfoobject(PosInfo)

POS related data.

Response
application/json
{ "transactionLabels": [ {} ], "id": "string", "time": "2019-08-24T14:15:22Z", "originator": { "institution": {}, "terminalId": "stringst", "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", "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {} }, "voucher": { "code": "string", "expiryDate": "2019-08-24T14:15:22Z", "redeemInstructions": [], "serialNumber": "string", "pin": {} }, "posInfo": { "entryMode": {}, "posConditionCode": "NORMAL_PRESENTMENT" } }

confirmRefund

Request

Once a refundRequest has completed successfully there is typically no need to notify the voucher vendor of the successful completion of the refund. However, this API recognises that client implementations may be very familiar with dual message APIs and this confirmation operation is provided to achieve consistency across the API with respect to single vs dual message operations. However, by performing this operation the client indicates that no subsequent reversal of the refund will be performed.

Security
httpBasic or oauth2
Bodyapplication/jsonrequired

A voucher refund confirmation.

idstringrequired

The randomly generated UUID identifying this advice, as defined for a variant 4 UUID in RFC 4122

requestIdstringrequired

The UUID identifying the request that this advice relates to

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

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

The unaltered thirdPartyIdentifiers array as supplied in the related BasicResponse message. Required if thirdPartyIdentifiers field was present in the BasicResponse. If no thirdPartyIdentifiers was received in the BasicResponse or no BasicResponse was received then this should be set to the thirdPartyIdentifiers sent in the original request.

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

Failed to generate code sample.

Responses

successful operation

Bodyapplication/json
idstringrequired

The randomly generated UUID identifying this advice, as defined for a variant 4 UUID in RFC 4122

requestIdstringrequired

The UUID identifying the request that this advice relates to

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

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

The unaltered thirdPartyIdentifiers array as supplied in the related BasicResponse message. Required if thirdPartyIdentifiers field was present in the BasicResponse. If no thirdPartyIdentifiers was received in the BasicResponse or no BasicResponse was received then this should be set to the thirdPartyIdentifiers sent in the original request.

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

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

reverseRefund

Request

If a voucherRefund request fails with one of the 5xx HTTP statuses codes, or no response was received within the timeout period, it must be reversed to ensure the vendor does not consider the voucher to be in a refunded state. reverseRefund must be repeated until a final HTTP status code is received (i.e. not 5xx). reverseRefund may be called repeatedly on the same voucher resource without negative effect.

Security
httpBasic or oauth2
Bodyapplication/jsonrequired

A voucher refund reversal.

idstringrequired

The randomly generated UUID identifying this advice, as defined for a variant 4 UUID in RFC 4122

requestIdstringrequired

The UUID identifying the request that this advice relates to

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

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

The unaltered thirdPartyIdentifiers array as supplied in the related BasicResponse message. Required if thirdPartyIdentifiers field was present in the BasicResponse. If no thirdPartyIdentifiers was received in the BasicResponse or no BasicResponse was received then this should be set to the thirdPartyIdentifiers sent in the original request.

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

reversalReasonstringrequired

The reason for the reversal

Enum"TIMEOUT""CANCELLED""RESPONSE_NOT_FINAL"
Failed to generate code sample.

Responses

successful operation

Bodyapplication/json
idstringrequired

The randomly generated UUID identifying this advice, as defined for a variant 4 UUID in RFC 4122

requestIdstringrequired

The UUID identifying the request that this advice relates to

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

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

The unaltered thirdPartyIdentifiers array as supplied in the related BasicResponse message. Required if thirdPartyIdentifiers field was present in the BasicResponse. If no thirdPartyIdentifiers was received in the BasicResponse or no BasicResponse was received then this should be set to the thirdPartyIdentifiers sent in the original request.

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

reversalReasonstringrequired

The reason for the reversal

Enum"TIMEOUT""CANCELLED""RESPONSE_NOT_FINAL"
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" }

lookupVoucher

Request

This operation is used to verify the validity of a voucher and possibly establish the value of a previously issued voucher (if supported by the server). This operation has no financial impact and is informative only.

Security
httpBasic or oauth2
Query
voucherCodestring

The voucher code to be looked up.

provisionRequestIdstring

The provision request id that was part of the original provision request to obtain a voucher.

receiverInstIdstring

The institution which issued the voucher. This assists to direct the voucher lookup request if the destination cannot be determined from the voucher code alone.

settlementEntityInstIdstring

The institution via which the lookup should be processed. This serves to better direct the lookup request in the case that multiple upstream parties are able to process the request.

voucherSerialNumberstring

The serial number of the voucher being looked up.

originatorInstIdstring

The institution ID of the originator of the voucher lookup request.

Failed to generate code sample.

Responses

successful operation

Bodyapplication/json
posInfoobject(PosInfo)

POS related data.

settlementEntityobject(Institution)

Originating, acquiring, processing, or receiving institution details

receiverobject(Institution)

Originating, acquiring, processing, or receiving institution details

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

voucherobject(Voucher)required

Specifically describes the voucher provisioned by the vendor.

voucher.​codestring[ 0 .. 40 ] characters

The voucher's code used by the customer to redeem the voucher. This must be present in ProvisionResponse, RedemptionRequest and RefundRequest messages. This may be present in a ProvisionRequest if the voucher vendor allows the client to set the voucher code. It is recommended this field not be populated in other instances as it may be considered sensitive data.

voucher.​expiryDatestring(date-time)

The date and time at which the voucher expires. The format shall be as defined for date-time in RFC 3339 section 5.6.

voucher.​redeemInstructionsArray of strings

An array of free text lines which provide the customer with information on how to redeem the voucher. These are intended to be printed on a customer's receipt slip.

voucher.​serialNumberstring[ 0 .. 40 ] characters

The voucher's serial number. This can be used to identify the voucher in the vendor's system but cannot be used to redeem the voucher.

voucher.​pinobject(Pin)

Base model for capturing either a clear PIN or encrypted PIN

productobject(Product)

Product related data.

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)

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

rrnstring

A reference set by the upstream entity that processed the request.

Response
application/json
{ "posInfo": { "entryMode": {}, "posConditionCode": "NORMAL_PRESENTMENT" }, "settlementEntity": { "id": "string", "name": "string" }, "receiver": { "id": "string", "name": "string" }, "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {} }, "voucher": { "code": "string", "expiryDate": "2019-08-24T14:15:22Z", "redeemInstructions": [], "serialNumber": "string", "pin": {} }, "product": { "productId": "string", "barcode": "string", "name": "string", "amount": {}, "minAmount": {}, "maxAmount": {}, "description": "string", "isFixedValue": false, "receiver": {}, "channelProductListings": [] }, "thirdPartyIdentifiers": [ {} ], "rrn": "string" }

provisionVoucher

Request

Request a voucher be provisioned by the voucher vendor.

Security
httpBasic or oauth2
Bodyapplication/jsonrequired

A provision request.

transactionLabelsArray of objects(TransactionLabel)

A list containing labels that can be used to discover this transaction or group it with other transactions sharing labels with the same label name and value. Transaction labels should never be used to make transaction processing decisions.

idstringrequired

The randomly generated UUID identifying this transaction, as defined for a variant 4 UUID 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

The Originator object encapsulates data relating to the originator of the transaction

originator.​institutionobject(Institution)required

Originating, acquiring, processing, or receiving institution details

originator.​institution.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

originator.​institution.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

originator.​terminalIdstring= 8 charactersrequired

The ID that uniquely identifies each device or system in an originator's institution capable of sending requests. Required for transactions initiated from physical card entry or point-of-sale devices

originator.​merchantobject(Merchant)required

Merchant related data. Must be included if available

originator.​merchant.​merchantTypestring[0-9]{4}required

The assigned four digit merchant category code

originator.​merchant.​merchantIdstring= 15 charactersrequired

The assigned merchant identifier. Also known as card acceptor id

originator.​merchant.​merchantNameobject(MerchantName)required

A container object representing the Merchant Name and Location

originator.​merchant.​merchantName.​namestring[ 0 .. 23 ] charactersrequired

The merchant or trading as name associated with the merchant

originator.​merchant.​merchantName.​citystring[ 0 .. 13 ] charactersrequired

The city where the merchant is located

originator.​merchant.​merchantName.​regionstring[ 0 .. 2 ] charactersrequired

The state or region where the merchant is located

originator.​merchant.​merchantName.​countrystring[ 0 .. 2 ] charactersrequired

The country where the merchant is located

originator.​operatorIdstring[ 0 .. 30 ] characters

The ID that uniquely identifies the person operating the terminal specified by the terminalId field.

originator.​channelIdstring[ 0 .. 50 ] characters

The ID that uniquely identifies the originator's channel that this transaction was received through.

clientobject(Institution)required

Originating, acquiring, processing, or receiving institution details

client.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

client.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

settlementEntityobject(Institution)

Originating, acquiring, processing, or receiving institution details

receiverobject(Institution)

Originating, acquiring, processing, or receiving institution details

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

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

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

slipDataobject(SlipData)

Data that may be printed on the customer slip for information purposes

basketRefstring

Used to group multiple transactions which would otherwise be considered independent.

tranTypestring

Data relating to the type of transaction taking place (i.e. cash withdrawal, goods and services etc.).

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

This specifies the type of source account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
destAccTypestring

This specifies the type of destination account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

tendersArray of objects(Tender)

An array of tenders used to pay for the transaction.

voucherobject(Voucher)

Specifically describes the voucher provisioned by the vendor.

productobject(Product)

Product related data.

posInfoobject(PosInfo)

POS related data.

customerobject(Customer)

A customer who ultimately requests a transaction be performed.

recipientobject(Customer)

A customer who ultimately requests a transaction be performed.

paymentMethodsArray of objects(PaymentMethod)

An array of payment methods to be used as payment for the transaction. This is used if payment is not tendered at the point of sale, but is effected through one or more calls to third party payment providers as part of the request. A PaymentMethod differs from a Tender in that the former represents payment that still needs to be collected from a third party, whereas the latter represents payment that has already been collected at the point of sale.

Failed to generate code sample.

Responses

successful operation

Bodyapplication/json
transactionLabelsArray of objects(TransactionLabel)

A list containing labels that can be used to discover this transaction or group it with other transactions sharing labels with the same label name and value. Transaction labels should never be used to make transaction processing decisions.

idstringrequired

The randomly generated UUID identifying this transaction, as defined for a variant 4 UUID 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

The Originator object encapsulates data relating to the originator of the transaction

originator.​institutionobject(Institution)required

Originating, acquiring, processing, or receiving institution details

originator.​institution.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

originator.​institution.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

originator.​terminalIdstring= 8 charactersrequired

The ID that uniquely identifies each device or system in an originator's institution capable of sending requests. Required for transactions initiated from physical card entry or point-of-sale devices

originator.​merchantobject(Merchant)required

Merchant related data. Must be included if available

originator.​merchant.​merchantTypestring[0-9]{4}required

The assigned four digit merchant category code

originator.​merchant.​merchantIdstring= 15 charactersrequired

The assigned merchant identifier. Also known as card acceptor id

originator.​merchant.​merchantNameobject(MerchantName)required

A container object representing the Merchant Name and Location

originator.​merchant.​merchantName.​namestring[ 0 .. 23 ] charactersrequired

The merchant or trading as name associated with the merchant

originator.​merchant.​merchantName.​citystring[ 0 .. 13 ] charactersrequired

The city where the merchant is located

originator.​merchant.​merchantName.​regionstring[ 0 .. 2 ] charactersrequired

The state or region where the merchant is located

originator.​merchant.​merchantName.​countrystring[ 0 .. 2 ] charactersrequired

The country where the merchant is located

originator.​operatorIdstring[ 0 .. 30 ] characters

The ID that uniquely identifies the person operating the terminal specified by the terminalId field.

originator.​channelIdstring[ 0 .. 50 ] characters

The ID that uniquely identifies the originator's channel that this transaction was received through.

clientobject(Institution)required

Originating, acquiring, processing, or receiving institution details

client.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

client.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

settlementEntityobject(Institution)

Originating, acquiring, processing, or receiving institution details

receiverobject(Institution)

Originating, acquiring, processing, or receiving institution details

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

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

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

slipDataobject(SlipData)

Data that may be printed on the customer slip for information purposes

basketRefstring

Used to group multiple transactions which would otherwise be considered independent.

tranTypestring

Data relating to the type of transaction taking place (i.e. cash withdrawal, goods and services etc.).

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

This specifies the type of source account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
destAccTypestring

This specifies the type of destination account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

voucherobject(Voucher)required

Specifically describes the voucher provisioned by the vendor.

voucher.​codestring[ 0 .. 40 ] characters

The voucher's code used by the customer to redeem the voucher. This must be present in ProvisionResponse, RedemptionRequest and RefundRequest messages. This may be present in a ProvisionRequest if the voucher vendor allows the client to set the voucher code. It is recommended this field not be populated in other instances as it may be considered sensitive data.

voucher.​expiryDatestring(date-time)

The date and time at which the voucher expires. The format shall be as defined for date-time in RFC 3339 section 5.6.

voucher.​redeemInstructionsArray of strings

An array of free text lines which provide the customer with information on how to redeem the voucher. These are intended to be printed on a customer's receipt slip.

voucher.​serialNumberstring[ 0 .. 40 ] characters

The voucher's serial number. This can be used to identify the voucher in the vendor's system but cannot be used to redeem the voucher.

voucher.​pinobject(Pin)

Base model for capturing either a clear PIN or encrypted PIN

productobject(Product)

Product related data.

posInfoobject(PosInfo)

POS related data.

recipientobject(Customer)

A customer who ultimately requests a transaction be performed.

tendersArray of objects(Tender)

An array of tenders used to pay for the transaction.

Response
application/json
{ "transactionLabels": [ {} ], "id": "string", "time": "2019-08-24T14:15:22Z", "originator": { "institution": {}, "terminalId": "stringst", "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", "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {} }, "voucher": { "code": "string", "expiryDate": "2019-08-24T14:15:22Z", "redeemInstructions": [], "serialNumber": "string", "pin": {} }, "product": { "productId": "string", "barcode": "string", "name": "string", "amount": {}, "minAmount": {}, "maxAmount": {}, "description": "string", "isFixedValue": false, "receiver": {}, "channelProductListings": [] }, "posInfo": { "entryMode": {}, "posConditionCode": "NORMAL_PRESENTMENT" }, "recipient": { "firstName": "string", "lastName": "string", "address": "string", "dateOfBirth": "2019-08-24T14:15:22Z", "status": "string", "msisdn": "string", "emailAddress": "user@example.com", "addressDetails": {}, "profileId": "string" }, "tenders": [ {} ] }

confirmVoucher

Request

Confirm a voucher provision request that completed successfully. Once a consumer has paid for a voucher and received the voucher from the merchant the merchant must notify the vendor that the voucher may be redeemed at some point in the future as per the voucher vendor's instructions. confirmVoucher must be repeated until a final HTTP status code is received (i.e. not HTTP 5xx). confirmVoucher may be called repeatedly on the same voucher resource without negative effect.

Security
httpBasic or oauth2
Bodyapplication/jsonrequired

A voucher provision confirmation.

idstringrequired

The randomly generated UUID identifying this advice, as defined for a variant 4 UUID in RFC 4122

requestIdstringrequired

The UUID identifying the request that this advice relates to

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

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

The unaltered thirdPartyIdentifiers array as supplied in the related BasicResponse message. Required if thirdPartyIdentifiers field was present in the BasicResponse. If no thirdPartyIdentifiers was received in the BasicResponse or no BasicResponse was received then this should be set to the thirdPartyIdentifiers sent in the original request.

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

tendersArray of objects(Tender)required

An array of tenders used to pay for the transaction

tenders[].​accountTypestring

The type of account

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""STORED_VALUE"
tenders[].​amountobject(LedgerAmount)required

An amount object only containing value and currency, and optionally an indicator of DEBIT/CREDIT

tenders[].​amount.​amountinteger(int64)required

Amount in minor denomination, e.g. R799.95 is encoded as 79995

tenders[].​amount.​currencystring[0-9]{3}required

Three digit currency number from ISO 4217, e.g. South African Rand is encoded as 710

tenders[].​amount.​ledgerIndicatorstring

Indicates whether this amount is a debit or a credit. Only required when the amount can be either a debit or a credit

Enum"DEBIT""CREDIT"
tenders[].​cardNumberstring[0-9]{6}[0-9*]{0,13}

A PCI compliant masked card number, with at least the first 6 digits in the clear. Only applicable to card based transactions

tenders[].​referencestring[ 0 .. 40 ] characters

A free text reference

tenders[].​tenderTypestringrequired

The type of tender used

Enum"CASH""CHEQUE""CREDIT_CARD""DEBIT_CARD""WALLET""ROUNDING""GIFT_CARD""LOYALTY_CARD""OTHER""REWARD"
Failed to generate code sample.

Responses

successful operation

Bodyapplication/json
idstringrequired

The randomly generated UUID identifying this advice, as defined for a variant 4 UUID in RFC 4122

requestIdstringrequired

The UUID identifying the request that this advice relates to

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

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

The unaltered thirdPartyIdentifiers array as supplied in the related BasicResponse message. Required if thirdPartyIdentifiers field was present in the BasicResponse. If no thirdPartyIdentifiers was received in the BasicResponse or no BasicResponse was received then this should be set to the thirdPartyIdentifiers sent in the original request.

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

tendersArray of objects(Tender)required

An array of tenders used to pay for the transaction

tenders[].​accountTypestring

The type of account

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""STORED_VALUE"
tenders[].​amountobject(LedgerAmount)required

An amount object only containing value and currency, and optionally an indicator of DEBIT/CREDIT

tenders[].​amount.​amountinteger(int64)required

Amount in minor denomination, e.g. R799.95 is encoded as 79995

tenders[].​amount.​currencystring[0-9]{3}required

Three digit currency number from ISO 4217, e.g. South African Rand is encoded as 710

tenders[].​amount.​ledgerIndicatorstring

Indicates whether this amount is a debit or a credit. Only required when the amount can be either a debit or a credit

Enum"DEBIT""CREDIT"
tenders[].​cardNumberstring[0-9]{6}[0-9*]{0,13}

A PCI compliant masked card number, with at least the first 6 digits in the clear. Only applicable to card based transactions

tenders[].​referencestring[ 0 .. 40 ] characters

A free text reference

tenders[].​tenderTypestringrequired

The type of tender used

Enum"CASH""CHEQUE""CREDIT_CARD""DEBIT_CARD""WALLET""ROUNDING""GIFT_CARD""LOYALTY_CARD""OTHER""REWARD"
Response
application/json
{ "id": "string", "requestId": "string", "time": "2019-08-24T14:15:22Z", "thirdPartyIdentifiers": [ {} ], "stan": "string", "rrn": "string", "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {} }, "tenders": [ {} ] }

reverseVoucher

Request

Reverse a voucher provision request that failed or timed out. If a voucherProvision request fails with one of the 5xx HTTP statuses code, or no response was received within the timeout period, it must be reversed to ensure the vendor knows to never expect further messages pertaining to the voucher. reverseVoucher must be repeated until a final HTTP status code is received (i.e. not 5xx). reverseVoucher may be called repeatedly on the same voucher resource without negative effect.

Security
httpBasic or oauth2
Bodyapplication/jsonrequired

A voucher provision reversal.

idstringrequired

The randomly generated UUID identifying this advice, as defined for a variant 4 UUID in RFC 4122

requestIdstringrequired

The UUID identifying the request that this advice relates to

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

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

The unaltered thirdPartyIdentifiers array as supplied in the related BasicResponse message. Required if thirdPartyIdentifiers field was present in the BasicResponse. If no thirdPartyIdentifiers was received in the BasicResponse or no BasicResponse was received then this should be set to the thirdPartyIdentifiers sent in the original request.

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

reversalReasonstringrequired

The reason for the reversal

Enum"TIMEOUT""CANCELLED""RESPONSE_NOT_FINAL"
Failed to generate code sample.

Responses

successful operation

Bodyapplication/json
idstringrequired

The randomly generated UUID identifying this advice, as defined for a variant 4 UUID in RFC 4122

requestIdstringrequired

The UUID identifying the request that this advice relates to

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

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

The unaltered thirdPartyIdentifiers array as supplied in the related BasicResponse message. Required if thirdPartyIdentifiers field was present in the BasicResponse. If no thirdPartyIdentifiers was received in the BasicResponse or no BasicResponse was received then this should be set to the thirdPartyIdentifiers sent in the original request.

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

reversalReasonstringrequired

The reason for the reversal

Enum"TIMEOUT""CANCELLED""RESPONSE_NOT_FINAL"
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" }

retryProvisionVoucher

Request

If no response was received to a provision request due to a timeout or temporary communications failure, the appropriate channel may retry the same provision request by calling this resource. Where possible the original provision request will be resubmitted to the provider. If the provider had received the original request, it will respond by returning the voucher that was already issued. If not, then either a new voucher will be issued as per a normal voucher provision or the retry will be declined.

Security
httpBasic or oauth2
Path
provisionIdstringrequired

The UUID generated for the original voucher provision request.

Bodyapplication/jsonrequired

The original voucher provision request.

transactionLabelsArray of objects(TransactionLabel)

A list containing labels that can be used to discover this transaction or group it with other transactions sharing labels with the same label name and value. Transaction labels should never be used to make transaction processing decisions.

idstringrequired

The randomly generated UUID identifying this transaction, as defined for a variant 4 UUID 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

The Originator object encapsulates data relating to the originator of the transaction

originator.​institutionobject(Institution)required

Originating, acquiring, processing, or receiving institution details

originator.​institution.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

originator.​institution.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

originator.​terminalIdstring= 8 charactersrequired

The ID that uniquely identifies each device or system in an originator's institution capable of sending requests. Required for transactions initiated from physical card entry or point-of-sale devices

originator.​merchantobject(Merchant)required

Merchant related data. Must be included if available

originator.​merchant.​merchantTypestring[0-9]{4}required

The assigned four digit merchant category code

originator.​merchant.​merchantIdstring= 15 charactersrequired

The assigned merchant identifier. Also known as card acceptor id

originator.​merchant.​merchantNameobject(MerchantName)required

A container object representing the Merchant Name and Location

originator.​merchant.​merchantName.​namestring[ 0 .. 23 ] charactersrequired

The merchant or trading as name associated with the merchant

originator.​merchant.​merchantName.​citystring[ 0 .. 13 ] charactersrequired

The city where the merchant is located

originator.​merchant.​merchantName.​regionstring[ 0 .. 2 ] charactersrequired

The state or region where the merchant is located

originator.​merchant.​merchantName.​countrystring[ 0 .. 2 ] charactersrequired

The country where the merchant is located

originator.​operatorIdstring[ 0 .. 30 ] characters

The ID that uniquely identifies the person operating the terminal specified by the terminalId field.

originator.​channelIdstring[ 0 .. 50 ] characters

The ID that uniquely identifies the originator's channel that this transaction was received through.

clientobject(Institution)required

Originating, acquiring, processing, or receiving institution details

client.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

client.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

settlementEntityobject(Institution)

Originating, acquiring, processing, or receiving institution details

receiverobject(Institution)

Originating, acquiring, processing, or receiving institution details

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

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

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

slipDataobject(SlipData)

Data that may be printed on the customer slip for information purposes

basketRefstring

Used to group multiple transactions which would otherwise be considered independent.

tranTypestring

Data relating to the type of transaction taking place (i.e. cash withdrawal, goods and services etc.).

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

This specifies the type of source account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
destAccTypestring

This specifies the type of destination account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

tendersArray of objects(Tender)

An array of tenders used to pay for the transaction.

voucherobject(Voucher)

Specifically describes the voucher provisioned by the vendor.

productobject(Product)

Product related data.

posInfoobject(PosInfo)

POS related data.

customerobject(Customer)

A customer who ultimately requests a transaction be performed.

recipientobject(Customer)

A customer who ultimately requests a transaction be performed.

paymentMethodsArray of objects(PaymentMethod)

An array of payment methods to be used as payment for the transaction. This is used if payment is not tendered at the point of sale, but is effected through one or more calls to third party payment providers as part of the request. A PaymentMethod differs from a Tender in that the former represents payment that still needs to be collected from a third party, whereas the latter represents payment that has already been collected at the point of sale.

Failed to generate code sample.

Responses

successful operation

Bodyapplication/json
transactionLabelsArray of objects(TransactionLabel)

A list containing labels that can be used to discover this transaction or group it with other transactions sharing labels with the same label name and value. Transaction labels should never be used to make transaction processing decisions.

idstringrequired

The randomly generated UUID identifying this transaction, as defined for a variant 4 UUID 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

The Originator object encapsulates data relating to the originator of the transaction

originator.​institutionobject(Institution)required

Originating, acquiring, processing, or receiving institution details

originator.​institution.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

originator.​institution.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

originator.​terminalIdstring= 8 charactersrequired

The ID that uniquely identifies each device or system in an originator's institution capable of sending requests. Required for transactions initiated from physical card entry or point-of-sale devices

originator.​merchantobject(Merchant)required

Merchant related data. Must be included if available

originator.​merchant.​merchantTypestring[0-9]{4}required

The assigned four digit merchant category code

originator.​merchant.​merchantIdstring= 15 charactersrequired

The assigned merchant identifier. Also known as card acceptor id

originator.​merchant.​merchantNameobject(MerchantName)required

A container object representing the Merchant Name and Location

originator.​merchant.​merchantName.​namestring[ 0 .. 23 ] charactersrequired

The merchant or trading as name associated with the merchant

originator.​merchant.​merchantName.​citystring[ 0 .. 13 ] charactersrequired

The city where the merchant is located

originator.​merchant.​merchantName.​regionstring[ 0 .. 2 ] charactersrequired

The state or region where the merchant is located

originator.​merchant.​merchantName.​countrystring[ 0 .. 2 ] charactersrequired

The country where the merchant is located

originator.​operatorIdstring[ 0 .. 30 ] characters

The ID that uniquely identifies the person operating the terminal specified by the terminalId field.

originator.​channelIdstring[ 0 .. 50 ] characters

The ID that uniquely identifies the originator's channel that this transaction was received through.

clientobject(Institution)required

Originating, acquiring, processing, or receiving institution details

client.​idstringrequired

The institution's ID. API implementations should take care to set this field as appropriate for the implementation.

client.​namestring[ 0 .. 40 ] charactersrequired

The institutions's name

settlementEntityobject(Institution)

Originating, acquiring, processing, or receiving institution details

receiverobject(Institution)

Originating, acquiring, processing, or receiving institution details

thirdPartyIdentifiersArray of objects(ThirdPartyIdentifier)required

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

thirdPartyIdentifiers[].​institutionIdstringrequired

The entity's institution ID.

thirdPartyIdentifiers[].​transactionIdentifierstringrequired

The identifier assigned to this transaction by the institution represented in institutionId. This value should be unique within the institution's system.

slipDataobject(SlipData)

Data that may be printed on the customer slip for information purposes

basketRefstring

Used to group multiple transactions which would otherwise be considered independent.

tranTypestring

Data relating to the type of transaction taking place (i.e. cash withdrawal, goods and services etc.).

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

This specifies the type of source account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
destAccTypestring

This specifies the type of destination account being used in the transaction (i.e. cheque, savings).

Enum"DEFAULT""SAVINGS""CHEQUE""CREDIT""UNIVERSAL""ELECTRONIC_PURSE""GIFT_CARD""STORED_VALUE"
stanstring

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

rrnstring

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

amountsobject(Amounts)

Amounts which make up the transaction. Absent amounts have zero value.

voucherobject(Voucher)required

Specifically describes the voucher provisioned by the vendor.

voucher.​codestring[ 0 .. 40 ] characters

The voucher's code used by the customer to redeem the voucher. This must be present in ProvisionResponse, RedemptionRequest and RefundRequest messages. This may be present in a ProvisionRequest if the voucher vendor allows the client to set the voucher code. It is recommended this field not be populated in other instances as it may be considered sensitive data.

voucher.​expiryDatestring(date-time)

The date and time at which the voucher expires. The format shall be as defined for date-time in RFC 3339 section 5.6.

voucher.​redeemInstructionsArray of strings

An array of free text lines which provide the customer with information on how to redeem the voucher. These are intended to be printed on a customer's receipt slip.

voucher.​serialNumberstring[ 0 .. 40 ] characters

The voucher's serial number. This can be used to identify the voucher in the vendor's system but cannot be used to redeem the voucher.

voucher.​pinobject(Pin)

Base model for capturing either a clear PIN or encrypted PIN

productobject(Product)

Product related data.

posInfoobject(PosInfo)

POS related data.

recipientobject(Customer)

A customer who ultimately requests a transaction be performed.

tendersArray of objects(Tender)

An array of tenders used to pay for the transaction.

Response
application/json
{ "transactionLabels": [ {} ], "id": "string", "time": "2019-08-24T14:15:22Z", "originator": { "institution": {}, "terminalId": "stringst", "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", "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {} }, "voucher": { "code": "string", "expiryDate": "2019-08-24T14:15:22Z", "redeemInstructions": [], "serialNumber": "string", "pin": {} }, "product": { "productId": "string", "barcode": "string", "name": "string", "amount": {}, "minAmount": {}, "maxAmount": {}, "description": "string", "isFixedValue": false, "receiver": {}, "channelProductListings": [] }, "posInfo": { "entryMode": {}, "posConditionCode": "NORMAL_PRESENTMENT" }, "recipient": { "firstName": "string", "lastName": "string", "address": "string", "dateOfBirth": "2019-08-24T14:15:22Z", "status": "string", "msisdn": "string", "emailAddress": "user@example.com", "addressDetails": {}, "profileId": "string" }, "tenders": [ {} ] }