Account Payments Service Interface (4.19.0)

The Electrum Account Payments Service describes an interface for performing account payments transactions. These transactions require a reference number which uniquely identifies the account processor, account issuer, as well as the customer account, and is typically printed on a customer invoice. The customer then makes use of this reference number to make a payment towards the corresponding account. This API is often used to pay bills or to top up accounts.

Download OpenAPI description
Languages
Servers

https://[placeholder].dev/billpay/v4/

Schema

EncryptionParameters

Parameters pertaining to the generation of the PIN block. Required if the service is to perform any operations on the encrypted PIN, such as translation.

pinBlockFormatstring

PIN block format that was used when encrypting the PIN. Defaults to ISO_9564_FORMAT_0.

Default "ISO_9564_FORMAT_0"
Enum"ISO_9564_FORMAT_0""ISO_9564_FORMAT_1""ISO_9564_FORMAT_3""ISO_9564_FORMAT_4"
accountNumberstring[0-9]{12}required

12 digit account number used when encrypting the PIN. When account number is a card number (PAN), this is the rightmost 12 digits excluding the check digit.

keyIndexinteger(int32)

Index of the key under which the PIN block is encrypted. Where keys are exchanged in TR-31 KeyBlock format, this should be set to the key version number field of the key used for encryption. If this field is not populated, the most recently exchanged key will be used. Note that omitting this field may require a higher level of synchronization during automated key exchange in some environments.

{ "pinBlockFormat": "ISO_9564_FORMAT_0", "accountNumber": "string", "keyIndex": 0 }

ErrorDetail

Represents the outcome of a completed transaction

errorTypestringrequired

The type of error that occurred

Enum"DUPLICATE_RECORD""FORMAT_ERROR""FUNCTION_NOT_SUPPORTED""GENERAL_ERROR""INVALID_AMOUNT""ROUTING_ERROR""TRANSACTION_NOT_SUPPORTED""UNABLE_TO_LOCATE_RECORD""UNKNOWN_CUSTOMER_ACCOUNT""UPSTREAM_UNAVAILABLE"
errorMessagestring[ 0 .. 20 ] charactersrequired

A short description of the error

requestTypestringrequired

The type of request being processed when the error occurred. Refer to Release Notes for deprecated values.

Enum"ACCOUNT_LOOKUP_REQUEST""TRAFFIC_FINE_LOOKUP_REQUEST""POLICY_LOOKUP_REQUEST""PAYMENT_REQUEST""TRAFFIC_FINE_PAYMENT_REQUEST""POLICY_PAYMENT_REQUEST""PAYMENT_REVERSAL""TRAFFIC_FINE_PAYMENT_REVERSAL""PAYMENT_CONFIRMATION""TRAFFIC_FINE_PAYMENT_CONFIRMATION"
idstringrequired

The UUID of the message for which error occurred.

originalIdstring

The UUID of the original request message in the case of an error occurring for an advice message.

detailMessageobject

A free form detailed description of a particular failure condition may optionally be supplied

{ "errorType": "DUPLICATE_RECORD", "errorMessage": "string", "requestType": "ACCOUNT_LOOKUP_REQUEST", "id": "string", "originalId": "string", "detailMessage": {} }

HashedPinParameters

A collection of parameters required to reliably reproduce the hashed value (excluding the actual PIN value).

namestring[ 0 .. 20 ] charactersrequired

The name of the hashing algorithm.

{ "name": "string" }

listBillers

Request

Request details on managed billers. Not all service providers support biller management. In the case where the function is not supported a 501 HTTP status code will be returned.

Security
httpBasic or oauth2
Failed to generate code sample.

Responses

OK

Bodyapplication/json
billersArray of objects(Biller)

The billers supported by the catalog hosted on the Electrum system

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

lookupBills

Request

Requests all bills related to a specific reference number. The reference number can be in the form of a traffic fine notice number, ID number, or account reference number. Not all reference types are supported by all service providers and in these cases a 501 HTTP status code may be returned.

Security
httpBasic or oauth2
Path
referenceNumberstringrequired

The reference number to use for the lookup

Query
billsTypestringrequired

An enumerated value describing which bills to return, e.g., traffic fines or account bills.

Enum"TRAFFIC_FINES""ACCOUNT_BILLS"
requestIdstring

The unique ID of this request

merchantIdstring

The assigned merchant identifier. Also known as card acceptor ID.

terminalIdstring

The ID that uniquely identifies each device or system in an originator's institution that is capable of sending requests

originatorInstIdstring

Identifies the institution from which the transaction originates. Value to be assigned by Electrum.

receiverIdstring

Originating, acquiring, processing, or receiving institution details

basketRefstring

Used to group multiple transactions which would otherwise be considered independent

originatorCountryCodestring

The country code where the originator is located from ISO 3166-1 alpha-2, e.g. South African country code is encoded as ZA

Failed to generate code sample.

Responses

OK

Bodyapplication/json
requestIdstring

A unique ID used to identify the request

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)

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

customerobject(Customer)

A bill payment customer

billsArray of objects(Bill)

A list of all bills related to a reference number. If no bills were found, this defaults to an empty list

paymentOriginatorDetailsRequiredboolean

A boolean flag which indicates whether payment originator details are required in the following payment request for FATF compliance.

Default false
Response
application/json
{ "requestId": "string", "time": "2019-08-24T14:15:22Z", "thirdPartyIdentifiers": [ {} ], "customer": { "firstName": "string", "lastName": "string", "address": "string", "idNumber": "string", "idType": "NATIONAL_ID", "contactNumber": "string" }, "bills": [ {} ], "paymentOriginatorDetailsRequired": false }

paymentStatus

Request

In the case where a payment request reaches a timeout, the purchaseStatus operation should be used to determine the outcome of a prior payment. This operation will return the same PurchaseResponse or ErrorDetail as would have been returned had the original purchase completed normally. This operation should only be used for facilitating a single to dual flow on a digital channel.

Security
httpBasic or oauth2
Path
paymentMsgIdstringrequired

The randomly generated UUID of the original failed PaymentRequest.

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(BillSlipData)required

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

slipData.​messageLinesArray of objects(SlipLine)

An array of text lines and optional formatting to be printed on the customer slip.

slipData.​slipWidthinteger(int32)

The width of the slip in normal (unformatted) characters.

slipData.​issuerReferencestring[A-Z0-9]{1,40}

An identifier that is printed on the customer slip and uniquely identifies the payment on the service provider's system. This value is used by the customer to request a refund when the service supports this function, and it is thus important that this number is unique.

slipData.​phoneNumberstring

The call centre phone number

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.

customerobject(Customer)

A bill payment customer

amountsobject(BillpayAmounts)required

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

amounts.​requestAmountobject(LedgerAmount)

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

amounts.​approvedAmountobject(LedgerAmount)

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

amounts.​feeAmountobject(LedgerAmount)

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

amounts.​balanceAmountobject(LedgerAmount)

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

amounts.​additionalAmountsobject

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

amounts.​maxPayableAmountobject(LedgerAmount)

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

amounts.​minPayableAmountobject(LedgerAmount)

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

partPaymentAllowedboolean

Indicates whether a payment amount may be less than the amount due. Defaults to true.

Default false
overPaymentAllowedboolean

Indicates whether a payment amount may be more than the amount due. Defaults to true.

Default false
accountobject(Account)required

Represents the status of a customer account.

account.​accountRefstring[ 6 .. 40 ] charactersrequired

A reference number identifying the bill payments processor, bill issuer, and customer

account.​dueDatestring(date)

The effective date of the current billing period in the format yyyy-MM-dd

tendersArray of objects(Tender)

Contains the tenders for the payment response if available

paymentMethodsArray of objects(PaymentMethod)

Contains the payment method for the payment response if available

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", "phoneNumber": "string" }, "basketRef": "string", "tranType": "GOODS_AND_SERVICES", "srcAccType": "DEFAULT", "destAccType": "DEFAULT", "stan": "string", "rrn": "string", "customer": { "firstName": "string", "lastName": "string", "address": "string", "idNumber": "string", "idType": "NATIONAL_ID", "contactNumber": "string" }, "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {}, "maxPayableAmount": {}, "minPayableAmount": {} }, "partPaymentAllowed": false, "overPaymentAllowed": false, "account": { "accountRef": "string", "dueDate": "2019-08-24" }, "tenders": [ {} ], "paymentMethods": [ {} ] }

createTrafficFinePayment

Request

Requests that a payment be made towards a traffic fine.

Security
httpBasic or oauth2
Path
paymentIdstringrequired

The randomly generated UUID of this request

Bodyapplication/jsonrequired

A traffic fine payment 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.

selectedCategoryobject(Category)

Category to which a bill issuer can belong

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.

customerobject(Customer)

A bill payment customer

noticeNumberstring[ 6 .. 40 ] charactersrequired

A reference number identifying the traffic fine to the service provider.

amountsobject(BillpayAmounts)required

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

amounts.​requestAmountobject(LedgerAmount)

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

amounts.​approvedAmountobject(LedgerAmount)

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

amounts.​feeAmountobject(LedgerAmount)

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

amounts.​balanceAmountobject(LedgerAmount)

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

amounts.​additionalAmountsobject

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

amounts.​maxPayableAmountobject(LedgerAmount)

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

amounts.​minPayableAmountobject(LedgerAmount)

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

tendersArray of objects(Tender)

Contains the tenders for the payment request if available

paymentMethodsArray of objects(PaymentMethod)

Contains the payment method for the payment request if available

lookupIdstring

The UUID identifying the lookup that this request relates to

Failed to generate code sample.

Responses

Created

Headers
Locationstring

The location of the created payments 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(BillSlipData)required

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

slipData.​messageLinesArray of objects(SlipLine)

An array of text lines and optional formatting to be printed on the customer slip.

slipData.​slipWidthinteger(int32)

The width of the slip in normal (unformatted) characters.

slipData.​issuerReferencestring[A-Z0-9]{1,40}

An identifier that is printed on the customer slip and uniquely identifies the payment on the service provider's system. This value is used by the customer to request a refund when the service supports this function, and it is thus important that this number is unique.

slipData.​phoneNumberstring

The call centre phone number

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.

customerobject(Customer)

A bill payment customer

amountsobject(BillpayAmounts)required

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

amounts.​requestAmountobject(LedgerAmount)

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

amounts.​approvedAmountobject(LedgerAmount)

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

amounts.​feeAmountobject(LedgerAmount)

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

amounts.​balanceAmountobject(LedgerAmount)

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

amounts.​additionalAmountsobject

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

amounts.​maxPayableAmountobject(LedgerAmount)

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

amounts.​minPayableAmountobject(LedgerAmount)

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

partPaymentAllowedboolean

Indicates whether a payment amount may be less than the amount due. Defaults to true.

Default false
overPaymentAllowedboolean

Indicates whether a payment amount may be more than the amount due. Defaults to true.

Default false
trafficFineobject(TrafficFine)required

Represents the status of a traffic fine.

trafficFine.​noticeNumberstring[ 6 .. 40 ] charactersrequired

A reference number identifying the traffic fine to the processor's system.

trafficFine.​dueDatestring(date)

The date by which the traffic fine should be paid in the format yyyy-MM-dd.

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", "phoneNumber": "string" }, "basketRef": "string", "tranType": "GOODS_AND_SERVICES", "srcAccType": "DEFAULT", "destAccType": "DEFAULT", "stan": "string", "rrn": "string", "customer": { "firstName": "string", "lastName": "string", "address": "string", "idNumber": "string", "idType": "NATIONAL_ID", "contactNumber": "string" }, "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {}, "maxPayableAmount": {}, "minPayableAmount": {} }, "partPaymentAllowed": false, "overPaymentAllowed": false, "trafficFine": { "noticeNumber": "string", "dueDate": "2019-08-24" } }

createAccountPayment

Request

Requests that a payment be made towards a customer account.

Security
httpBasic or oauth2
Path
paymentIdstringrequired

The randomly generated UUID of this request

Bodyapplication/jsonrequired

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

selectedCategoryobject(Category)

Category to which a bill issuer can belong

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.

customerobject(Customer)

A bill payment customer

accountRefstring[ 6 .. 40 ] charactersrequired

A reference number identifying the bill payments processor, bill issuer, and customer

amountsobject(BillpayAmounts)required

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

amounts.​requestAmountobject(LedgerAmount)

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

amounts.​approvedAmountobject(LedgerAmount)

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

amounts.​feeAmountobject(LedgerAmount)

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

amounts.​balanceAmountobject(LedgerAmount)

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

amounts.​additionalAmountsobject

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

amounts.​maxPayableAmountobject(LedgerAmount)

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

amounts.​minPayableAmountobject(LedgerAmount)

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

tendersArray of objects(Tender)

Contains the tenders for the payment request if available

paymentMethodsArray of objects(PaymentMethod)

Contains the payment method for the payment request if available

lookupIdstring

The UUID identifying the lookup that this request relates to

Failed to generate code sample.

Responses

Created

Headers
Locationstring

The location of the created payments 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(BillSlipData)required

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

slipData.​messageLinesArray of objects(SlipLine)

An array of text lines and optional formatting to be printed on the customer slip.

slipData.​slipWidthinteger(int32)

The width of the slip in normal (unformatted) characters.

slipData.​issuerReferencestring[A-Z0-9]{1,40}

An identifier that is printed on the customer slip and uniquely identifies the payment on the service provider's system. This value is used by the customer to request a refund when the service supports this function, and it is thus important that this number is unique.

slipData.​phoneNumberstring

The call centre phone number

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.

customerobject(Customer)

A bill payment customer

amountsobject(BillpayAmounts)required

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

amounts.​requestAmountobject(LedgerAmount)

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

amounts.​approvedAmountobject(LedgerAmount)

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

amounts.​feeAmountobject(LedgerAmount)

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

amounts.​balanceAmountobject(LedgerAmount)

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

amounts.​additionalAmountsobject

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

amounts.​maxPayableAmountobject(LedgerAmount)

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

amounts.​minPayableAmountobject(LedgerAmount)

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

partPaymentAllowedboolean

Indicates whether a payment amount may be less than the amount due. Defaults to true.

Default false
overPaymentAllowedboolean

Indicates whether a payment amount may be more than the amount due. Defaults to true.

Default false
accountobject(Account)required

Represents the status of a customer account.

account.​accountRefstring[ 6 .. 40 ] charactersrequired

A reference number identifying the bill payments processor, bill issuer, and customer

account.​dueDatestring(date)

The effective date of the current billing period in the format yyyy-MM-dd

tendersArray of objects(Tender)

Contains the tenders for the payment response if available

paymentMethodsArray of objects(PaymentMethod)

Contains the payment method for the payment response if available

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", "phoneNumber": "string" }, "basketRef": "string", "tranType": "GOODS_AND_SERVICES", "srcAccType": "DEFAULT", "destAccType": "DEFAULT", "stan": "string", "rrn": "string", "customer": { "firstName": "string", "lastName": "string", "address": "string", "idNumber": "string", "idType": "NATIONAL_ID", "contactNumber": "string" }, "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {}, "maxPayableAmount": {}, "minPayableAmount": {} }, "partPaymentAllowed": false, "overPaymentAllowed": false, "account": { "accountRef": "string", "dueDate": "2019-08-24" }, "tenders": [ {} ], "paymentMethods": [ {} ] }

confirmPayment

Request

If a payment request (createPayment operation) is successful, and returns a 201 status, it must be confirmed or cancelled in order to complete the transaction. Confirmation of a payment (this operation) will only succeed if the payment was previously created, but not cancelled. This operation must be repeated until a final HTTP status code is received (i.e. 202 or 400). If a 5xx status code is received, or no response is received, the request must be repeated. The confirmation operation is idempotent and may be called repeatedly on the same payment resource without adverse effect.

Security
httpBasic or oauth2
Path
adviceIdstringrequired

The randomly generated UUID of this request

paymentIdstringrequired

The UUID generated for the original createPayment request

Bodyapplication/jsonrequired

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

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

reversePayment

Request

If a payment request (createPayment operation) fails with a 5xx HTTP status code, or no response was received within the timeout limit, it must be reversed. This is to ensure that the payment is not reflected on the customer's account. The reversal (this operation) must be repeated until a final HTTP status code is received (i.e. 202 or 400). The operation is idempotent and so may be called repeatedly on the same payment resource without adverse effect.

Security
httpBasic or oauth2
Path
adviceIdstringrequired

The randomly generated UUID of this request

paymentIdstringrequired

The UUID generated for the original createPayment request

Bodyapplication/jsonrequired

A payment 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""REFUND""VOID"
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": {} } }

createRefund

Request

If a payment is completed and confirmed successfully, some services allow customers to request a refund for a limited time after the payment took place. Not all service providers support refunds. In the case where this function is not supported, a 501 HTTP status code will be returned

Security
httpBasic or oauth2
Path
refundIdstringrequired

The randomly generated UUID of this request

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.

selectedCategoryobject(Category)

Category to which a bill issuer can belong

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.

customerobject(Customer)

A bill payment customer

issuerReferencestring[A-Z0-9]{1,20}required

An identifier that is printed on the customer slip and uniquely identifies the payment on the bill issuer's system. This value is used by the customer to request a refund when the service supports this function. It is thus important that this number is unique.

refundReasonstring[ 0 .. 20 ] charactersrequired

The reason for the refund as given by the customer

Failed to generate code sample.

Responses

Created

Headers
Locationstring

The location of the created refund 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(BillSlipData)required

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

slipData.​messageLinesArray of objects(SlipLine)

An array of text lines and optional formatting to be printed on the customer slip.

slipData.​slipWidthinteger(int32)

The width of the slip in normal (unformatted) characters.

slipData.​issuerReferencestring[A-Z0-9]{1,40}

An identifier that is printed on the customer slip and uniquely identifies the payment on the service provider's system. This value is used by the customer to request a refund when the service supports this function, and it is thus important that this number is unique.

slipData.​phoneNumberstring

The call centre phone number

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.

customerobject(Customer)

A bill payment customer

amountsobject(BillpayAmounts)required

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

amounts.​requestAmountobject(LedgerAmount)

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

amounts.​approvedAmountobject(LedgerAmount)

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

amounts.​feeAmountobject(LedgerAmount)

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

amounts.​balanceAmountobject(LedgerAmount)

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

amounts.​additionalAmountsobject

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

amounts.​maxPayableAmountobject(LedgerAmount)

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

amounts.​minPayableAmountobject(LedgerAmount)

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

partPaymentAllowedboolean

Indicates whether a payment amount may be less than the amount due. Defaults to true.

Default false
overPaymentAllowedboolean

Indicates whether a payment amount may be more than the amount due. Defaults to true.

Default false
accountobject(Account)

Represents the status of a customer account.

trafficFineobject(TrafficFine)

Represents the status of a traffic fine.

policyobject(Policy)

Represents the status of a customer policy. Replaced by a general Bill object in v4.14.0.

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", "phoneNumber": "string" }, "basketRef": "string", "tranType": "GOODS_AND_SERVICES", "srcAccType": "DEFAULT", "destAccType": "DEFAULT", "stan": "string", "rrn": "string", "customer": { "firstName": "string", "lastName": "string", "address": "string", "idNumber": "string", "idType": "NATIONAL_ID", "contactNumber": "string" }, "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {}, "maxPayableAmount": {}, "minPayableAmount": {} }, "partPaymentAllowed": false, "overPaymentAllowed": false, "account": { "accountRef": "string", "dueDate": "2019-08-24" }, "trafficFine": { "noticeNumber": "string", "dueDate": "2019-08-24" }, "policy": { "policyNumber": "string", "dueDate": "2019-08-24" } }

confirmRefund

Request

If a refund request (createRefund operation) previously succeeded with a 201 status it must be confirmed or reversed to complete the transaction. The refund confirmation (this operation) can only succeed if a refund was created but not reversed. The operation must be repeated until a final HTTP status code is received (i.e. 202 or 400). If a 5xx status code is received, or no response is received, the request must be repeated. The operation may be called repeatedly on the same refund resource without adverse effect.

Security
httpBasic or oauth2
Path
adviceIdstringrequired

The randomly generated UUID of this request

refundIdstringrequired

The UUID generated for the corresponding createRefund request

Bodyapplication/jsonrequired

A 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

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

reverseRefund

Request

If a refund request (createRefund operation) fails with a 5xx HTTP status code, or no response was received within the timeout period, it must be reversed. This is to ensure the refund is not refelected on a customer's account. The refund reversal (this operation) must be repeated until a final HTTP status code is received (i.e. 202 or 400). The operation is idempotent and may be called repeatedly on the same payment resource without adverse effect.

Security
httpBasic or oauth2
Path
adviceIdstringrequired

The randomly generated UUID of this request

refundIdstringrequired

The UUID generated for the corresponding createRefund request

Bodyapplication/jsonrequired

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

requestPolicyInfoDeprecated

Request

Requests the current status of the policy identified by the supplied policyNumber. In the case where this function is not supported by the service provider, a 501 HTTP status code may be returned.<br><br>This operation is deprecated. Use lookupBills instead.

Security
httpBasic or oauth2
Path
requestIdstringrequired

The randomly generated UUID of this request

Bodyapplication/jsonrequired

A policy lookup 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.

selectedCategoryobject(Category)

Category to which a bill issuer can belong

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.

customerobject(Customer)

A bill payment customer

policyNumberstring[ 6 .. 40 ] charactersrequired

A reference number identifying the policy to the service provider.

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(BillSlipData)required

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

slipData.​messageLinesArray of objects(SlipLine)

An array of text lines and optional formatting to be printed on the customer slip.

slipData.​slipWidthinteger(int32)

The width of the slip in normal (unformatted) characters.

slipData.​issuerReferencestring[A-Z0-9]{1,40}

An identifier that is printed on the customer slip and uniquely identifies the payment on the service provider's system. This value is used by the customer to request a refund when the service supports this function, and it is thus important that this number is unique.

slipData.​phoneNumberstring

The call centre phone number

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.

customerobject(Customer)

A bill payment customer

amountsobject(BillpayAmounts)required

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

amounts.​requestAmountobject(LedgerAmount)

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

amounts.​approvedAmountobject(LedgerAmount)

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

amounts.​feeAmountobject(LedgerAmount)

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

amounts.​balanceAmountobject(LedgerAmount)

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

amounts.​additionalAmountsobject

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

amounts.​maxPayableAmountobject(LedgerAmount)

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

amounts.​minPayableAmountobject(LedgerAmount)

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

partPaymentAllowedboolean

Indicates whether a payment amount may be less than the amount due. Defaults to true.

Default false
overPaymentAllowedboolean

Indicates whether a payment amount may be more than the amount due. Defaults to true.

Default false
policyobject(Policy)required

Represents the status of a customer policy. Replaced by a general Bill object in v4.14.0.

policy.​policyNumberstring[ 6 .. 40 ] charactersrequired

A reference number identifying the policy to the processor.

policy.​dueDatestring(date)

The date by which the next policy payment must be made in the format yyyy-MM-dd.

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", "phoneNumber": "string" }, "basketRef": "string", "tranType": "GOODS_AND_SERVICES", "srcAccType": "DEFAULT", "destAccType": "DEFAULT", "stan": "string", "rrn": "string", "customer": { "firstName": "string", "lastName": "string", "address": "string", "idNumber": "string", "idType": "NATIONAL_ID", "contactNumber": "string" }, "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {}, "maxPayableAmount": {}, "minPayableAmount": {} }, "partPaymentAllowed": false, "overPaymentAllowed": false, "policy": { "policyNumber": "string", "dueDate": "2019-08-24" } }

requestTrafficFineInfoDeprecated

Request

Requests information related to a specific traffic fine as identified by the noticeNumber. In the case where this function is not supported by the service provider, a 501 HTTP status code will be returned.<br><br>This operation is deprecated. Use lookupBills instead.

Security
httpBasic or oauth2
Path
requestIdstringrequired

The randomly generated UUID of this request

Bodyapplication/jsonrequired

A traffic fine lookup 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.

selectedCategoryobject(Category)

Category to which a bill issuer can belong

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.

customerobject(Customer)

A bill payment customer

noticeNumberstring[ 6 .. 40 ] charactersrequired

A reference number identifying the traffic fine to the service provider.

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(BillSlipData)required

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

slipData.​messageLinesArray of objects(SlipLine)

An array of text lines and optional formatting to be printed on the customer slip.

slipData.​slipWidthinteger(int32)

The width of the slip in normal (unformatted) characters.

slipData.​issuerReferencestring[A-Z0-9]{1,40}

An identifier that is printed on the customer slip and uniquely identifies the payment on the service provider's system. This value is used by the customer to request a refund when the service supports this function, and it is thus important that this number is unique.

slipData.​phoneNumberstring

The call centre phone number

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.

customerobject(Customer)

A bill payment customer

amountsobject(BillpayAmounts)required

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

amounts.​requestAmountobject(LedgerAmount)

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

amounts.​approvedAmountobject(LedgerAmount)

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

amounts.​feeAmountobject(LedgerAmount)

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

amounts.​balanceAmountobject(LedgerAmount)

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

amounts.​additionalAmountsobject

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

amounts.​maxPayableAmountobject(LedgerAmount)

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

amounts.​minPayableAmountobject(LedgerAmount)

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

partPaymentAllowedboolean

Indicates whether a payment amount may be less than the amount due. Defaults to true.

Default false
overPaymentAllowedboolean

Indicates whether a payment amount may be more than the amount due. Defaults to true.

Default false
trafficFineobject(TrafficFine)required

Represents the status of a traffic fine.

trafficFine.​noticeNumberstring[ 6 .. 40 ] charactersrequired

A reference number identifying the traffic fine to the processor's system.

trafficFine.​dueDatestring(date)

The date by which the traffic fine should be paid in the format yyyy-MM-dd.

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", "phoneNumber": "string" }, "basketRef": "string", "tranType": "GOODS_AND_SERVICES", "srcAccType": "DEFAULT", "destAccType": "DEFAULT", "stan": "string", "rrn": "string", "customer": { "firstName": "string", "lastName": "string", "address": "string", "idNumber": "string", "idType": "NATIONAL_ID", "contactNumber": "string" }, "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {}, "maxPayableAmount": {}, "minPayableAmount": {} }, "partPaymentAllowed": false, "overPaymentAllowed": false, "trafficFine": { "noticeNumber": "string", "dueDate": "2019-08-24" } }

requestAccountInfoDeprecated

Request

Requests the current status of the account identified by the supplied accountRef. In the case where this function is not supported by the service provider, a 501 HTTP status code will be returned. <br><br>This operation is deprecated. Use lookupBills instead.

Security
httpBasic or oauth2
Path
requestIdstringrequired

The randomly generated UUID of this request

Bodyapplication/jsonrequired

An account lookup 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.

selectedCategoryobject(Category)

Category to which a bill issuer can belong

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.

customerobject(Customer)

A bill payment customer

accountRefstring[ 6 .. 40 ] charactersrequired

A reference number identifying the bill payments processor, bill issuer, and customer

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(BillSlipData)required

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

slipData.​messageLinesArray of objects(SlipLine)

An array of text lines and optional formatting to be printed on the customer slip.

slipData.​slipWidthinteger(int32)

The width of the slip in normal (unformatted) characters.

slipData.​issuerReferencestring[A-Z0-9]{1,40}

An identifier that is printed on the customer slip and uniquely identifies the payment on the service provider's system. This value is used by the customer to request a refund when the service supports this function, and it is thus important that this number is unique.

slipData.​phoneNumberstring

The call centre phone number

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.

customerobject(Customer)

A bill payment customer

amountsobject(BillpayAmounts)required

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

amounts.​requestAmountobject(LedgerAmount)

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

amounts.​approvedAmountobject(LedgerAmount)

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

amounts.​feeAmountobject(LedgerAmount)

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

amounts.​balanceAmountobject(LedgerAmount)

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

amounts.​additionalAmountsobject

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

amounts.​maxPayableAmountobject(LedgerAmount)

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

amounts.​minPayableAmountobject(LedgerAmount)

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

partPaymentAllowedboolean

Indicates whether a payment amount may be less than the amount due. Defaults to true.

Default false
overPaymentAllowedboolean

Indicates whether a payment amount may be more than the amount due. Defaults to true.

Default false
accountobject(Account)required

Represents the status of a customer account.

account.​accountRefstring[ 6 .. 40 ] charactersrequired

A reference number identifying the bill payments processor, bill issuer, and customer

account.​dueDatestring(date)

The effective date of the current billing period in the format yyyy-MM-dd

paymentOriginatorDetailsRequiredboolean

A boolean flag which indicates whether payment originator details are required in the following payment request for FATF compliance.

Default false
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", "phoneNumber": "string" }, "basketRef": "string", "tranType": "GOODS_AND_SERVICES", "srcAccType": "DEFAULT", "destAccType": "DEFAULT", "stan": "string", "rrn": "string", "customer": { "firstName": "string", "lastName": "string", "address": "string", "idNumber": "string", "idType": "NATIONAL_ID", "contactNumber": "string" }, "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {}, "maxPayableAmount": {}, "minPayableAmount": {} }, "partPaymentAllowed": false, "overPaymentAllowed": false, "account": { "accountRef": "string", "dueDate": "2019-08-24" }, "paymentOriginatorDetailsRequired": false }

createPolicyPaymentDeprecated

Request

Requests that a payment be made towards a policy.

Security
httpBasic or oauth2
Path
paymentIdstringrequired

The randomly generated UUID of this request

Bodyapplication/jsonrequired

A policy payment 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.

selectedCategoryobject(Category)

Category to which a bill issuer can belong

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.

customerobject(Customer)

A bill payment customer

policyNumberstring[ 6 .. 40 ] charactersrequired

A reference number identifying the policy to the service provider.

amountsobject(BillpayAmounts)required

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

amounts.​requestAmountobject(LedgerAmount)

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

amounts.​approvedAmountobject(LedgerAmount)

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

amounts.​feeAmountobject(LedgerAmount)

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

amounts.​balanceAmountobject(LedgerAmount)

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

amounts.​additionalAmountsobject

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

amounts.​maxPayableAmountobject(LedgerAmount)

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

amounts.​minPayableAmountobject(LedgerAmount)

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

tendersArray of objects(Tender)

Contains the tenders for the payment request if available

paymentMethodsArray of objects(PaymentMethod)

Contains the payment method for the payment request if available

lookupIdstring

The UUID identifying the lookup that this request relates to

Failed to generate code sample.

Responses

Created

Headers
Locationstring

The location of the created payments 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(BillSlipData)required

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

slipData.​messageLinesArray of objects(SlipLine)

An array of text lines and optional formatting to be printed on the customer slip.

slipData.​slipWidthinteger(int32)

The width of the slip in normal (unformatted) characters.

slipData.​issuerReferencestring[A-Z0-9]{1,40}

An identifier that is printed on the customer slip and uniquely identifies the payment on the service provider's system. This value is used by the customer to request a refund when the service supports this function, and it is thus important that this number is unique.

slipData.​phoneNumberstring

The call centre phone number

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.

customerobject(Customer)

A bill payment customer

amountsobject(BillpayAmounts)required

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

amounts.​requestAmountobject(LedgerAmount)

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

amounts.​approvedAmountobject(LedgerAmount)

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

amounts.​feeAmountobject(LedgerAmount)

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

amounts.​balanceAmountobject(LedgerAmount)

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

amounts.​additionalAmountsobject

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

amounts.​maxPayableAmountobject(LedgerAmount)

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

amounts.​minPayableAmountobject(LedgerAmount)

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

partPaymentAllowedboolean

Indicates whether a payment amount may be less than the amount due. Defaults to true.

Default false
overPaymentAllowedboolean

Indicates whether a payment amount may be more than the amount due. Defaults to true.

Default false
policyobject(Policy)required

Represents the status of a customer policy. Replaced by a general Bill object in v4.14.0.

policy.​policyNumberstring[ 6 .. 40 ] charactersrequired

A reference number identifying the policy to the processor.

policy.​dueDatestring(date)

The date by which the next policy payment must be made in the format yyyy-MM-dd.

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", "phoneNumber": "string" }, "basketRef": "string", "tranType": "GOODS_AND_SERVICES", "srcAccType": "DEFAULT", "destAccType": "DEFAULT", "stan": "string", "rrn": "string", "customer": { "firstName": "string", "lastName": "string", "address": "string", "idNumber": "string", "idType": "NATIONAL_ID", "contactNumber": "string" }, "amounts": { "requestAmount": {}, "approvedAmount": {}, "feeAmount": {}, "balanceAmount": {}, "additionalAmounts": {}, "maxPayableAmount": {}, "minPayableAmount": {} }, "partPaymentAllowed": false, "overPaymentAllowed": false, "policy": { "policyNumber": "string", "dueDate": "2019-08-24" } }