Airtime Service Interface (5.28.0)

The Electrum Airtime Service describes an interface for airtime transactions.

Download OpenAPI description
Languages
Servers

https://[placeholder].dev/airtime/v5/

Schema

PinHashed

Base model for capturing either a clear PIN or encrypted PIN

typestringrequired

Whether the PIN is communicated in the clear or encrypted.

Enum"CLEAR_PIN""ENCRYPTED_PIN""HASHED_PIN"
Discriminator
pinstring.{0,20}required

A clear PIN

{ "type": "PinClear", "pin": "string" }

PosEntryMode

Describes how the PAN and PIN were captured by the POS.

panEntryModestringrequired

Describes the method by which the PAN was captured.

Enum"UNKNOWN""MANUAL""MAGSTRIPE_NO_CVV""BARCODE""OCR""ICC_CVV""CONTACTLESS_ICC""MAGSTRIPE_CVV""CONTACTLESS_MAGSTRIPE""ICC_NO_CVV"
pinEntryCapabilitystringrequired

Describes whether the PIN can be entered.

Enum"UNKNOWN""CAN_ACCEPT""CANNOT_ACCEPT"
{ "panEntryMode": "UNKNOWN", "pinEntryCapability": "UNKNOWN" }

PosInfo

POS related data.

entryModeobject(PosEntryMode)

Describes how the PAN and PIN were captured by the POS.

posConditionCodestring

Describes the circumstances of the transaciton at the POS.

Enum"NORMAL_PRESENTMENT""CUSTOMER_NOT_PRESENT""CUSTOMER_PRESENT_AND_CARD_NOT_PRESENT""CUSTOMER_IDENTITY_VERIFIED""PUBLIC_UTILITY_TERMINAL""CUSTOMER_TERMINAL""MANUAL_REVERSAL""UNATTENDED_TERMINAL_AND_CARD_CAN_BE_RETAINED""UNATTENDED_TERMINAL_AND_CARD_CANNOT_BE_RETAINED"
{ "entryMode": { "panEntryMode": "UNKNOWN", "pinEntryCapability": "UNKNOWN" }, "posConditionCode": "NORMAL_PRESENTMENT" }

lookupMsisdn

Request

Looks up information associated with the given Msisdn. This includes such information as available products and promotions, operator information etc.

Security
httpBasic or oauth2
Query
msisdnstringrequired

The Msisdn. This must conform to the ITU E.164 numbering plan (https://www.itu.int/rec/T-REC-E.164/en).

senderMsisdnstring

The sender Msisdn. The MSISDN from which the request originated. This must conform to the ITU E.164 numbering plan (https://www.itu.int/rec/T-REC-E.164/en).

operatorstring

The provider who processed the original purchase attempt.

productTypestring

Used to filter the products to lookup for a given msisdn. This should be a value appropriate for the Product.type field.

channelNamestring

Used to filter the products to lookup for a given channel.

productCategorystring

Used to filter the products to lookup within a specific category. The productType field should be used preferentially if applicable. An example of a relevant productCategory would be the name of a promotion if only products within a specific promotion should be retrieved.

Failed to generate code sample.

Responses

OK

Bodyapplication/json
msisdnobject(Msisdn)

Msisdn related data.

senderMsisdnobject(Msisdn)

Msisdn related data.

amountsobject(Amounts)

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

promotionobject(Promotion)

Promotion related data.

availableProductsArray of objects(Product)

Products which may be available to the customer identified by the Msisdn.

Response
application/json
{ "msisdn": { "msisdn": "string", "country": "st", "operator": {} }, "senderMsisdn": { "msisdn": "string", "country": "st", "operator": {} }, "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {} }, "promotion": { "promotion": "string", "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z" }, "availableProducts": [ {} ] }

listProducts

Request

If a list of products that are available for sale is maintained, this API call returns the list of products. If such a list is not maintained, then a 501 Not Implemented status code will be returned.

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.

Failed to generate code sample.

Responses

OK

Bodyapplication/jsonArray [
isDirectTopupboolean

Describes whether or not the product directly recharges the recipients account (true), or a voucher number is required (false) to redeem the product.

Default false
productIdstring^[a-zA-Z0-9!#%&':;()*+\-./<=>?@\\^_`|~]{1,20}...required

A vendor determined code identifying the product the voucher should pertain to.

barcodestring[0-9A-Za-z]{1,13}

A barcode code identifying the product. This is an alternative identifier for the product but does not supersede the productId.

namestring[ 1 .. 120 ] characters

The name of the product.

descriptionobject(Description)

A description for a product which contains relevant different types of descriptions.

typestring

An indication of the type of the product.

Enum"AIRTIME_FIXED""AIRTIME_VARIABLE""SMS_BUNDLE""DATA""APP_RELATED""COMBO""DATA_FIXED""DATA_VARIABLE""VOICE_BUNDLE"
wholesalePriceobject(LedgerAmount)

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

recipientAmountobject(LedgerAmount)

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

productValuesArray of objects(LedgerAmount)

The value of the product. Multiple values may be returned in varying currencies in the case of products available internationally.

validityPeriodobject(ValidityPeriod)

Specifically describes the length of time for which a product is valid. Any unused portion of a product (e.g. unused data) will be forfeit at the end of the validity period.

productContentsArray of objects(ProductContent)

A list defining the contents of the airtime product.

operatorobject(Institution)

Originating, acquiring, processing, or receiving institution details

channelsArray of objects(ChannelProductListing)

A list of channels the product is available at.

]
Response
application/json
[ { "isDirectTopup": false, "productId": "string", "barcode": "string", "name": "string", "description": {}, "type": "AIRTIME_FIXED", "wholesalePrice": {}, "recipientAmount": {}, "productValues": [], "validityPeriod": {}, "productContents": [], "operator": {}, "channels": [] } ]

purchase

Request

Requests an airtime product from the service provider.

Security
httpBasic or oauth2
Bodyapplication/jsonrequired

An airtime 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.

productobject(Product)required

Product related data.

product.​isDirectTopupboolean

Describes whether or not the product directly recharges the recipients account (true), or a voucher number is required (false) to redeem the product.

Default false
product.​productIdstring^[a-zA-Z0-9!#%&':;()*+\-./<=>?@\\^_`|~]{1,20}...required

A vendor determined code identifying the product the voucher should pertain to.

product.​barcodestring[0-9A-Za-z]{1,13}

A barcode code identifying the product. This is an alternative identifier for the product but does not supersede the productId.

product.​namestring[ 1 .. 120 ] characters

The name of the product.

product.​descriptionobject(Description)

A description for a product which contains relevant different types of descriptions.

product.​typestring

An indication of the type of the product.

Enum"AIRTIME_FIXED""AIRTIME_VARIABLE""SMS_BUNDLE""DATA""APP_RELATED""COMBO""DATA_FIXED""DATA_VARIABLE""VOICE_BUNDLE"
product.​wholesalePriceobject(LedgerAmount)

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

product.​recipientAmountobject(LedgerAmount)

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

product.​productValuesArray of objects(LedgerAmount)

The value of the product. Multiple values may be returned in varying currencies in the case of products available internationally.

product.​validityPeriodobject(ValidityPeriod)

Specifically describes the length of time for which a product is valid. Any unused portion of a product (e.g. unused data) will be forfeit at the end of the validity period.

product.​productContentsArray of objects(ProductContent)

A list defining the contents of the airtime product.

product.​operatorobject(Institution)

Originating, acquiring, processing, or receiving institution details

product.​channelsArray of objects(ChannelProductListing)

A list of channels the product is available at.

tendersArray of objects(Tender)

An array of tenders used to pay for the transaction. This is used if payment is tendered at the point of sale. A Tender differs from a PaymentMethod in that the former represents a payment that has already been collected at the point of sale, whereas the latter represents a payment that still needs to be collected from a third party.

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.

recipientMsisdnobject(Msisdn)

Msisdn related data.

senderMsisdnobject(Msisdn)

Msisdn related data.

Failed to generate code sample.

Responses

Created

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.

productobject(Product)required

Product related data.

product.​isDirectTopupboolean

Describes whether or not the product directly recharges the recipients account (true), or a voucher number is required (false) to redeem the product.

Default false
product.​productIdstring^[a-zA-Z0-9!#%&':;()*+\-./<=>?@\\^_`|~]{1,20}...required

A vendor determined code identifying the product the voucher should pertain to.

product.​barcodestring[0-9A-Za-z]{1,13}

A barcode code identifying the product. This is an alternative identifier for the product but does not supersede the productId.

product.​namestring[ 1 .. 120 ] characters

The name of the product.

product.​descriptionobject(Description)

A description for a product which contains relevant different types of descriptions.

product.​typestring

An indication of the type of the product.

Enum"AIRTIME_FIXED""AIRTIME_VARIABLE""SMS_BUNDLE""DATA""APP_RELATED""COMBO""DATA_FIXED""DATA_VARIABLE""VOICE_BUNDLE"
product.​wholesalePriceobject(LedgerAmount)

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

product.​recipientAmountobject(LedgerAmount)

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

product.​productValuesArray of objects(LedgerAmount)

The value of the product. Multiple values may be returned in varying currencies in the case of products available internationally.

product.​validityPeriodobject(ValidityPeriod)

Specifically describes the length of time for which a product is valid. Any unused portion of a product (e.g. unused data) will be forfeit at the end of the validity period.

product.​productContentsArray of objects(ProductContent)

A list defining the contents of the airtime product.

product.​operatorobject(Institution)

Originating, acquiring, processing, or receiving institution details

product.​channelsArray of objects(ChannelProductListing)

A list of channels the product is available at.

msisdnobject(Msisdn)

Msisdn related data.

voucherobject(Voucher)

Specifically describes the voucher provisioned by the vendor.

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": {} }, "product": { "isDirectTopup": false, "productId": "string", "barcode": "string", "name": "string", "description": {}, "type": "AIRTIME_FIXED", "wholesalePrice": {}, "recipientAmount": {}, "productValues": [], "validityPeriod": {}, "productContents": [], "operator": {}, "channels": [] }, "msisdn": { "msisdn": "string", "country": "st", "operator": {} }, "voucher": { "pin": "string", "expiryDate": "2019-08-24T14:15:22Z", "serialNumber": "string", "batchNumber": "string", "redeemInstructions": [] } }

purchaseConfirmation

Request

Once a consumer has paid for an airtime product the merchant must notify the vendor that the transactioncompleted successfully at the POS. This operation must be repeated until a final HTTP status code isreceived (i.e. not 500 or 504). The operation is idempotent and so may be called repeatedly without negative effect.

Security
httpBasic or oauth2
Bodyapplication/jsonrequired

A purchase 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

Accepted

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": [ {} ] }

purchaseReversal

Request

If a purchase operation fails with a 500 or 504 HTTP status code, or no response was received within the timeout period, and the provider supports the reversal operation, it must be reversed to ensure the provider knows the airtime purchase did not complete successfully. This operation must be repeated until a final HTTP status code is received (i.e. not 500 or 504). The operation is idempotent and so may be called repeatedly on the same airtime purchase resource without negative effect. If the airtime provider does not support the reversal operation, refer to the purchaseStatus operation.

Security
httpBasic or oauth2
Bodyapplication/jsonrequired

An airtime purchase 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

Accepted

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" }

purchaseStatus

Request

If the airtime provider does not support the reversal operation then the purchaseStatus operation should be used to determine the outcome of a prior purchase. This operation will, as far as possbile, return the same PurchaseResponse or ErrorDetail as would have been returned had the original purchase completed normally.

Security
httpBasic or oauth2
Query
providerstring

The provider who processed the original purchase attempt. Conditionally required if purchaseRef is supplied.

purchaseReferencestring

The reference returned in the original purchase attempt. Conditionally required if the originalMsgId is not supplied.

originalMsgIdstring

The message ID of the original PurchaseRequest which failed. Conditionally required if the purchaseRef is not supplied.

Failed to generate code sample.

Responses

OK

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.

productobject(Product)required

Product related data.

product.​isDirectTopupboolean

Describes whether or not the product directly recharges the recipients account (true), or a voucher number is required (false) to redeem the product.

Default false
product.​productIdstring^[a-zA-Z0-9!#%&':;()*+\-./<=>?@\\^_`|~]{1,20}...required

A vendor determined code identifying the product the voucher should pertain to.

product.​barcodestring[0-9A-Za-z]{1,13}

A barcode code identifying the product. This is an alternative identifier for the product but does not supersede the productId.

product.​namestring[ 1 .. 120 ] characters

The name of the product.

product.​descriptionobject(Description)

A description for a product which contains relevant different types of descriptions.

product.​typestring

An indication of the type of the product.

Enum"AIRTIME_FIXED""AIRTIME_VARIABLE""SMS_BUNDLE""DATA""APP_RELATED""COMBO""DATA_FIXED""DATA_VARIABLE""VOICE_BUNDLE"
product.​wholesalePriceobject(LedgerAmount)

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

product.​recipientAmountobject(LedgerAmount)

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

product.​productValuesArray of objects(LedgerAmount)

The value of the product. Multiple values may be returned in varying currencies in the case of products available internationally.

product.​validityPeriodobject(ValidityPeriod)

Specifically describes the length of time for which a product is valid. Any unused portion of a product (e.g. unused data) will be forfeit at the end of the validity period.

product.​productContentsArray of objects(ProductContent)

A list defining the contents of the airtime product.

product.​operatorobject(Institution)

Originating, acquiring, processing, or receiving institution details

product.​channelsArray of objects(ChannelProductListing)

A list of channels the product is available at.

msisdnobject(Msisdn)

Msisdn related data.

voucherobject(Voucher)

Specifically describes the voucher provisioned by the vendor.

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": {} }, "product": { "isDirectTopup": false, "productId": "string", "barcode": "string", "name": "string", "description": {}, "type": "AIRTIME_FIXED", "wholesalePrice": {}, "recipientAmount": {}, "productValues": [], "validityPeriod": {}, "productContents": [], "operator": {}, "channels": [] }, "msisdn": { "msisdn": "string", "country": "st", "operator": {} }, "voucher": { "pin": "string", "expiryDate": "2019-08-24T14:15:22Z", "serialNumber": "string", "batchNumber": "string", "redeemInstructions": [] } }

purchaseTrial

Request

This operation is identical to the purchase operation except that no voucher is returned (for voucher based products) or no product will be applied to the MSISDN (for direct top-ups). This operation carries no financial impact. The purpose of the operation is to determine whether it is worth proceeding to a tender step, i.e. is a subsequent purchase likely to to be successful (in which case the downstream should move to the tender step) or fail (in which case the downstream should not take tender).

Security
httpBasic or oauth2
Bodyapplication/jsonrequired

An airtime 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.

productobject(Product)required

Product related data.

product.​isDirectTopupboolean

Describes whether or not the product directly recharges the recipients account (true), or a voucher number is required (false) to redeem the product.

Default false
product.​productIdstring^[a-zA-Z0-9!#%&':;()*+\-./<=>?@\\^_`|~]{1,20}...required

A vendor determined code identifying the product the voucher should pertain to.

product.​barcodestring[0-9A-Za-z]{1,13}

A barcode code identifying the product. This is an alternative identifier for the product but does not supersede the productId.

product.​namestring[ 1 .. 120 ] characters

The name of the product.

product.​descriptionobject(Description)

A description for a product which contains relevant different types of descriptions.

product.​typestring

An indication of the type of the product.

Enum"AIRTIME_FIXED""AIRTIME_VARIABLE""SMS_BUNDLE""DATA""APP_RELATED""COMBO""DATA_FIXED""DATA_VARIABLE""VOICE_BUNDLE"
product.​wholesalePriceobject(LedgerAmount)

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

product.​recipientAmountobject(LedgerAmount)

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

product.​productValuesArray of objects(LedgerAmount)

The value of the product. Multiple values may be returned in varying currencies in the case of products available internationally.

product.​validityPeriodobject(ValidityPeriod)

Specifically describes the length of time for which a product is valid. Any unused portion of a product (e.g. unused data) will be forfeit at the end of the validity period.

product.​productContentsArray of objects(ProductContent)

A list defining the contents of the airtime product.

product.​operatorobject(Institution)

Originating, acquiring, processing, or receiving institution details

product.​channelsArray of objects(ChannelProductListing)

A list of channels the product is available at.

tendersArray of objects(Tender)

An array of tenders used to pay for the transaction. This is used if payment is tendered at the point of sale. A Tender differs from a PaymentMethod in that the former represents a payment that has already been collected at the point of sale, whereas the latter represents a payment that still needs to be collected from a third party.

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.

recipientMsisdnobject(Msisdn)

Msisdn related data.

senderMsisdnobject(Msisdn)

Msisdn related data.

Failed to generate code sample.

Responses

OK

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.

productobject(Product)required

Product related data.

product.​isDirectTopupboolean

Describes whether or not the product directly recharges the recipients account (true), or a voucher number is required (false) to redeem the product.

Default false
product.​productIdstring^[a-zA-Z0-9!#%&':;()*+\-./<=>?@\\^_`|~]{1,20}...required

A vendor determined code identifying the product the voucher should pertain to.

product.​barcodestring[0-9A-Za-z]{1,13}

A barcode code identifying the product. This is an alternative identifier for the product but does not supersede the productId.

product.​namestring[ 1 .. 120 ] characters

The name of the product.

product.​descriptionobject(Description)

A description for a product which contains relevant different types of descriptions.

product.​typestring

An indication of the type of the product.

Enum"AIRTIME_FIXED""AIRTIME_VARIABLE""SMS_BUNDLE""DATA""APP_RELATED""COMBO""DATA_FIXED""DATA_VARIABLE""VOICE_BUNDLE"
product.​wholesalePriceobject(LedgerAmount)

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

product.​recipientAmountobject(LedgerAmount)

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

product.​productValuesArray of objects(LedgerAmount)

The value of the product. Multiple values may be returned in varying currencies in the case of products available internationally.

product.​validityPeriodobject(ValidityPeriod)

Specifically describes the length of time for which a product is valid. Any unused portion of a product (e.g. unused data) will be forfeit at the end of the validity period.

product.​productContentsArray of objects(ProductContent)

A list defining the contents of the airtime product.

product.​operatorobject(Institution)

Originating, acquiring, processing, or receiving institution details

product.​channelsArray of objects(ChannelProductListing)

A list of channels the product is available at.

msisdnobject(Msisdn)

Msisdn related data.

voucherobject(Voucher)

Specifically describes the voucher provisioned by the vendor.

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": {} }, "product": { "isDirectTopup": false, "productId": "string", "barcode": "string", "name": "string", "description": {}, "type": "AIRTIME_FIXED", "wholesalePrice": {}, "recipientAmount": {}, "productValues": [], "validityPeriod": {}, "productContents": [], "operator": {}, "channels": [] }, "msisdn": { "msisdn": "string", "country": "st", "operator": {} }, "voucher": { "pin": "string", "expiryDate": "2019-08-24T14:15:22Z", "serialNumber": "string", "batchNumber": "string", "redeemInstructions": [] } }

provisionVoucherDeprecated

Request

Requests a voucher from the voucher vendor.

Security
httpBasic or oauth2
Path
requestIdstringrequired

The randomly generated UUID of this request.

Bodyapplication/jsonrequired

A voucher 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.

productobject(Product)required

Product related data.

product.​isDirectTopupboolean

Describes whether or not the product directly recharges the recipients account (true), or a voucher number is required (false) to redeem the product.

Default false
product.​productIdstring^[a-zA-Z0-9!#%&':;()*+\-./<=>?@\\^_`|~]{1,20}...required

A vendor determined code identifying the product the voucher should pertain to.

product.​barcodestring[0-9A-Za-z]{1,13}

A barcode code identifying the product. This is an alternative identifier for the product but does not supersede the productId.

product.​namestring[ 1 .. 120 ] characters

The name of the product.

product.​descriptionobject(Description)

A description for a product which contains relevant different types of descriptions.

product.​typestring

An indication of the type of the product.

Enum"AIRTIME_FIXED""AIRTIME_VARIABLE""SMS_BUNDLE""DATA""APP_RELATED""COMBO""DATA_FIXED""DATA_VARIABLE""VOICE_BUNDLE"
product.​wholesalePriceobject(LedgerAmount)

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

product.​recipientAmountobject(LedgerAmount)

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

product.​productValuesArray of objects(LedgerAmount)

The value of the product. Multiple values may be returned in varying currencies in the case of products available internationally.

product.​validityPeriodobject(ValidityPeriod)

Specifically describes the length of time for which a product is valid. Any unused portion of a product (e.g. unused data) will be forfeit at the end of the validity period.

product.​productContentsArray of objects(ProductContent)

A list defining the contents of the airtime product.

product.​operatorobject(Institution)

Originating, acquiring, processing, or receiving institution details

product.​channelsArray of objects(ChannelProductListing)

A list of channels the product is available at.

tendersArray of objects(Tender)

An array of tenders used to pay for the transaction. This is used if payment is tendered at the point of sale. A Tender differs from a PaymentMethod in that the former represents a payment that has already been collected at the point of sale, whereas the latter represents a payment that still needs to be collected from a third party.

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

Created

Headers
Locationstring

The location of the created voucher resource

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.

responseProductobject(Product)

Product related data.

voucherobject(Voucher)required

Specifically describes the voucher provisioned by the vendor.

voucher.​pinstring[0-9]{1,20}

The voucher's PIN used by the customer to redeem the voucher. This must be present in VoucherResponse messages. 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 in UTC. The format shall be as defined for date-time in RFC 3339 section 5.6.

voucher.​serialNumberstring[0-9a-zA-Z]{1,20}required

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.​batchNumberstring[0-9a-zA-Z]{1,20}

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

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.

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": {} }, "responseProduct": { "isDirectTopup": false, "productId": "string", "barcode": "string", "name": "string", "description": {}, "type": "AIRTIME_FIXED", "wholesalePrice": {}, "recipientAmount": {}, "productValues": [], "validityPeriod": {}, "productContents": [], "operator": {}, "channels": [] }, "voucher": { "pin": "string", "expiryDate": "2019-08-24T14:15:22Z", "serialNumber": "string", "batchNumber": "string", "redeemInstructions": [] } }

confirmVoucherDeprecated

Request

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. This operation must be repeated until a final HTTP status code is received (i.e. not 500 or 504). The operation is idempotent, so may be called repeatedly on the same voucher resource without negative effect.

Security
httpBasic or oauth2
Path
requestIdstringrequired

The UUID generated for the original voucher provision request.

confirmationIdstringrequired

The randomly generated UUID of this request.

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"
voucherobject(Voucher)

Specifically describes the voucher provisioned by the vendor.

Failed to generate code sample.

Responses

Accepted

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

reverseVoucherDeprecated

Request

If a voucherProvision request fails with a 500 or 504 HTTP status 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. This operation must be repeated until a final HTTP status code is received (i.e. not 500 or 504). The operation is idempotent, so may be called repeatedly on the same voucher resource without negative effect.

Security
httpBasic or oauth2
Path
requestIdstringrequired

The UUID generated for the original voucher provision request.

reversalIdstringrequired

The randomly generated UUID of this request.

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

Accepted

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