Electrum Regulated Payments Partner API (15.2.0)

The Electrum Regulated Payments API is an asynchronous API that allows partners to participate in various nationally regulated payment schemes.

As the Regulated Payments API is asynchronous, partners have a choice of how to integrate with Electrum:

  • Webhooks: Electrum will send events to the partner containing inbound payments to action, or responses to outbound payment requests. Webhooks are defined in the Electrum Regulated Payments Partner API.
  • Partner API: Electrum will call operations exposed by the partner containing inbound payments to action, or responses to outbound payment requests. The operations are defined in this document.

Receiving transactional events via webhooks or API are equivalent, except that it may be more familiar or convenient to implement one style or the other.

This document describes the operations a partner must implement for Electrum to consume in order to complete the integration with the Electrum Regulated Payments API.

Download OpenAPI description
Languages
Servers
Mock server
https://docs.electrumsoftware.com/_mock/openapi/elpapi/elpapi-partner/
Partner API sandbox
https://example.com/path/payments/partner-api/v1/

transactional

Operations that participate in transaction processing, which may or may not have financial impact.

Operations

financial

Operations that participate in transaction processing and have financial impact.

Operations

credit-transfer

Operations related to credit transfer transactions.

Operations

direct-debit

Operations related to direct debit transactions.

Operations

payment-return

Operations related to payment returns.

Operations

identifier-determination

Operations used to retrieve additional information related to an identifier

Operations

funds-management

Operations related to the management of funds, including reservations, postings, and voiding of reservations.

Operations

Schema

traceparent

A value used to trace an HTTP message within an Electrum Regulated Payments implementation. This field must be set as per the traceparent element defined in the W3C Trace Context Level 2 specification.

string(traceparent)^[A-Fa-f0-9]{2}\-[A-Fa-f0-9]{32}\-[A-Fa-f0-9]...

A value used to trace an HTTP message within an Electrum Regulated Payments implementation. This field must be set as per the traceparent element defined in the W3C Trace Context Level 2 specification.

"string"

tracestate

A value used to provide context to an HTTP message as it is traced within an Electrum Regulated Payments implementation. This field must be set as per the traceparent element defined in the W3C Trace Context Level 2 specification.

string(tracestate)^[A-Za-z0-9=, _\*/@]{0,1024}$

A value used to provide context to an HTTP message as it is traced within an Electrum Regulated Payments implementation. This field must be set as per the traceparent element defined in the W3C Trace Context Level 2 specification.

"string"

BaseMessage

A model containing the foundational elements shared across messages and generally expected in a message used during processing with the Electrum Regulated Payments API.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

TransactionIdentifiers

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

{ "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }

BaseTransactionMessage

A model containing the foundational elements shared across messages relating to transactions.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

PaymentSchemeName

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
string(PaymentSchemeName)

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
"ZA_RTC"

ZaRtcCreditTransferPaymentSchemeData

userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

{ "userReference": "string", "originatorEchoData": "string", "businessReference": "string" }

ZaRtcCreditTransferPaymentScheme

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

{ "schema": "ZA_RTC", "schemeData": { "userReference": "string", "originatorEchoData": "string", "businessReference": "string" } }

ZaRppSchemeData

hasRtpboolean

Indicates whether the RPP transaction was initiated via a Request To Pay.

{ "hasRtp": true }

ZaRppCreditTransferPaymentScheme

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
schemeDataobject(ZaRppSchemeData)
{ "schema": "ZA_RTC", "schemeData": { "hasRtp": true } }

ShortenedAccountNumber

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

string(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

"stringstrin"

ZaEftSchemeData

userReferencestring<= 30 charactersrequired

An explanation of an EFT transaction, which will be printed on the debtor's statement for direct debits or the creditor's statement for credit transfers. Note that when populating a value for a direct debit, the first 10 characters must contain the Banks user code as configured at Bankserv. If configured, Electrum will populate this value automatically, in which case at most 20 characters should be used as a reference to avoid truncation.

shortenedDebtorAccountNumberstring(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

shortenedCreditorAccountNumberstring(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

{ "userReference": "string", "shortenedDebtorAccountNumber": "stringstrin", "shortenedCreditorAccountNumber": "stringstrin" }

ZaEftCreditTransferPaymentScheme

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
schemeDataobject(ZaEftSchemeData)required
schemeData.​userReferencestring<= 30 charactersrequired

An explanation of an EFT transaction, which will be printed on the debtor's statement for direct debits or the creditor's statement for credit transfers. Note that when populating a value for a direct debit, the first 10 characters must contain the Banks user code as configured at Bankserv. If configured, Electrum will populate this value automatically, in which case at most 20 characters should be used as a reference to avoid truncation.

schemeData.​shortenedDebtorAccountNumberstring(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

schemeData.​shortenedCreditorAccountNumberstring(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

{ "schema": "ZA_RTC", "schemeData": { "userReference": "string", "shortenedDebtorAccountNumber": "stringstrin", "shortenedCreditorAccountNumber": "stringstrin" } }

CreditTransferPaymentScheme

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

{ "schema": "ZA_RTC", "schemeData": { "userReference": "string", "originatorEchoData": "string", "businessReference": "string" } }

Amount

valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

{ "value": 0.1, "currency": "string" }

TransactionAmounts

bankSettlementAmountobject(Amount)required
bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

instructedAmountobject(Amount)
{ "bankSettlementAmount": { "value": 0.1, "currency": "string" }, "instructedAmount": { "value": 0.1, "currency": "string" } }

LocalInstrumentTypeCode

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

valuestringrequired
  • 0000 - BusinessPayment
  • 0001 - ConvertedBankPayment
  • 0002 - StandingOrder
  • 0090 - MassPaymentBeneficiary
  • 0091 - MassPaymentOurs
  • 0092 - MassPaymentShared
  • 0220 - StandingAuthorisationGeneral
  • 0221 - OneOffAuthorisation
  • 0222 - StandingAuthorisationCompanies
  • 0223 - StandingAuthorisationLotteries
  • 0224 - OneOffAuthorisationCharities
  • 0225 - OneOffAuthorisationTuitionFees
  • 0226 - OneOffAuthorisationConstructionIndustry
  • 0227 - StandingAuthorisationCompaniesWithoutDebtorRevocationRight
  • 04 - PreauthorisedDirectDebitDE
  • 05 - NonPreauthorisedDirectDebitDE
  • 08 - PreauthorisedDirectDebitOrdinaireNormalClearing4Day
  • 19 - BusinessToCustomerDirectDebit
  • 58 - BusinessToBusinessDirectDebit
  • 60 - RecoveredBillofExchangeorPromissoryNote
  • 82 - NonPreauthorisedDirectDebitAT
  • 83 - PreauthorisedDirectDebitAT
  • 85 - PreauthorisedDirectDebitAccéléréAcceleratedClearing2DayOrdinaireNormalClearing4Day
  • 89 - PreauthorisedDirectDebitVérifiéVerifiedClearing
  • AC01 - IncorrectAccountNumber
  • ACCEPT - PaymentViaAcceptgiroOwnedByCurrence
  • ADD - AuthenticatedDirectDebit
  • ARC - AccountsReceivableCheck
  • ASTI - AncillarySystemTransferInitiation
  • B2B - SEPABusinessToBusinessDirectDebit
  • B2BAMIPM - SEPAB2BDirectDebitAMI
  • BACP - BackupPayment
  • BPA - BatchPaymentsAruba
  • BSE - PaperlessChequeCollection
  • BTR - BankTransfer
  • CARD - CardClearing
  • CCD - CashConcentrationOrDisbursementCorporateCounterparty
  • CCI - CashConcentrationIntragroup
  • CHN - TruncatedChecks
  • CIE - CustomerInitiatedEntry
  • CKS - CheckSameDaySettlementWire
  • CLSCCPERX - CLSClearedFXForEurex
  • CLSCCPLCH - CLSClearedFXForLCH
  • COR1 - SEPADirectDebit1DaySettlement
  • CORAMIPM - SEPACoreDirectDebitAMI
  • CORE - SEPADirectDebitCore
  • CPP - CashPerPost
  • CR1AMIPM - SEPACoreD1DirectDebitAMI
  • CRP - CreditTransferPreferred
  • CTP - CustomerTransferPlus
  • CTR - CustomerTransfer
  • CTX - CorporateTradeExchange
  • DDFA - DirectDebitFixedAmount
  • DDMC - DirectDebitConfirmedElectronicMandate
  • DDMP - DirectDebitPaperMandateWithPaperAuthorisation
  • DDMU - DirectDebitUnconfirmedElectronicMandate
  • DDNR - CoreNoRefund
  • DDT - DirectDebits
  • DEP - DepositToSendersAccount
  • DRB - BankToBankDrawdownRequestOrResponseNonvalue
  • DRC - CustomerOrCorporateDrawdownRequestOrResponseNonvalue
  • DRW - DrawdownResponseValueToHonorADrawdownRequest
  • FADAMIPM - SEPAFADirectDebitAMI
  • FFR - FedFundsReturned
  • FFS - FedFundsSold
  • GST - TruncatedCreditTransfers
  • IAT - InternationalACH
  • ICMC - IncidentManagementCorrection
  • IDEAL - PaymentsViaInternetOwnedByCurrence
  • IN - CrossBorderCustomerCreditTransfer
  • INST - InstantCreditTransfer
  • INSTIDEAL - PaymentsViaInternetOwnedByCurrenceUsingInstantCreditTransfer
  • INSTNT01 - InstantCreditTransferNotTimeCritical
  • INSTNT01IDEAL - PaymentsViaInternetOwnedByCurrenceUsingInstantCreditTransferNotTimeCritical
  • INSTTC01 - InstantCreditTransferTimeCritical
  • INSTTC01IDEAL - PaymentsViaInternetOwnedByCurrenceUsingInstantCreditTransferTimeCritical
  • IPA - InstantPaymentsAruba
  • ISE - ImageBasedChequeCollection
  • ITP - InstantCreditTransferPreferred
  • MANP - MandatedPayment
  • NLDO - DutchDomesticBulkPayment
  • NLGOV - DirectDebitInitiatedByTheGovernmentWithSpecialConditions
  • NLUP - DutchUrgentPayment
  • ONCL - Overnight
  • PERI - PaymentWithERI
  • POP - PointOfPurchase
  • POS - PointOfSale
  • PPD - PrearrangedPaymentOrDepositConsumerCounterparty
  • RCK - RepresentedCheckEntry
  • RDD - ReturnedDirectDebits
  • RIBA - NonPreauthorisedDirectDebitRIBA
  • RIDO - PreauthorisedRevocableDirectDebit
  • RIDV - PreauthorisedRevocableUrgentDirectDebit
  • RTR - ReturnedCreditTransfers
  • SBTI - SettlementBankTransferInitiation
  • SCN - RevokedTruncatedChecks
  • SDCL - SameDayClearedPayments
  • SDD - RevokedDirectDebits
  • SDN - PaymentsViaStandaardDigitaleNota
  • SGT - RevokedTruncatedCreditTransfers
  • SRD - RevokedReturnedDirectDebits
  • SRT - RevokedReturnedCreditTransfers
  • STR - RevokedCreditTransfers
  • SVC - NonValueServiceMessage
  • TEL - TelephoneInitiatedEntry
  • TRF - CreditTransfers
  • UDD - UnauthenticatedDirectDebit
  • WEB - InternetInitiatedEntry
Enum"0000""0001""0002""0090""0091""0092""0220""0221""0222""0223"
{ "schema": "string", "value": "0000" }

ProprietaryValueLiteral

A proprietary value.

string(ProprietaryValueLiteral)<= 35 characters

A proprietary value.

"string"

ProprietaryValue

A model that describes a proprietary value assigned by some party, the purpose of which is to provide for the possibility of parties using values that are not standardised.

schemastringrequired

Identifies the value as being proprietary (i.e. not published in an external list). Always PROPRIETARY

valuestring(ProprietaryValueLiteral)<= 35 charactersrequired

A proprietary value.

{ "schema": "string", "value": "string" }

LocalInstrumentType

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
valuestringrequired
  • 0000 - BusinessPayment
  • 0001 - ConvertedBankPayment
  • 0002 - StandingOrder
  • 0090 - MassPaymentBeneficiary
  • 0091 - MassPaymentOurs
  • 0092 - MassPaymentShared
  • 0220 - StandingAuthorisationGeneral
  • 0221 - OneOffAuthorisation
  • 0222 - StandingAuthorisationCompanies
  • 0223 - StandingAuthorisationLotteries
  • 0224 - OneOffAuthorisationCharities
  • 0225 - OneOffAuthorisationTuitionFees
  • 0226 - OneOffAuthorisationConstructionIndustry
  • 0227 - StandingAuthorisationCompaniesWithoutDebtorRevocationRight
  • 04 - PreauthorisedDirectDebitDE
  • 05 - NonPreauthorisedDirectDebitDE
  • 08 - PreauthorisedDirectDebitOrdinaireNormalClearing4Day
  • 19 - BusinessToCustomerDirectDebit
  • 58 - BusinessToBusinessDirectDebit
  • 60 - RecoveredBillofExchangeorPromissoryNote
  • 82 - NonPreauthorisedDirectDebitAT
  • 83 - PreauthorisedDirectDebitAT
  • 85 - PreauthorisedDirectDebitAccéléréAcceleratedClearing2DayOrdinaireNormalClearing4Day
  • 89 - PreauthorisedDirectDebitVérifiéVerifiedClearing
  • AC01 - IncorrectAccountNumber
  • ACCEPT - PaymentViaAcceptgiroOwnedByCurrence
  • ADD - AuthenticatedDirectDebit
  • ARC - AccountsReceivableCheck
  • ASTI - AncillarySystemTransferInitiation
  • B2B - SEPABusinessToBusinessDirectDebit
  • B2BAMIPM - SEPAB2BDirectDebitAMI
  • BACP - BackupPayment
  • BPA - BatchPaymentsAruba
  • BSE - PaperlessChequeCollection
  • BTR - BankTransfer
  • CARD - CardClearing
  • CCD - CashConcentrationOrDisbursementCorporateCounterparty
  • CCI - CashConcentrationIntragroup
  • CHN - TruncatedChecks
  • CIE - CustomerInitiatedEntry
  • CKS - CheckSameDaySettlementWire
  • CLSCCPERX - CLSClearedFXForEurex
  • CLSCCPLCH - CLSClearedFXForLCH
  • COR1 - SEPADirectDebit1DaySettlement
  • CORAMIPM - SEPACoreDirectDebitAMI
  • CORE - SEPADirectDebitCore
  • CPP - CashPerPost
  • CR1AMIPM - SEPACoreD1DirectDebitAMI
  • CRP - CreditTransferPreferred
  • CTP - CustomerTransferPlus
  • CTR - CustomerTransfer
  • CTX - CorporateTradeExchange
  • DDFA - DirectDebitFixedAmount
  • DDMC - DirectDebitConfirmedElectronicMandate
  • DDMP - DirectDebitPaperMandateWithPaperAuthorisation
  • DDMU - DirectDebitUnconfirmedElectronicMandate
  • DDNR - CoreNoRefund
  • DDT - DirectDebits
  • DEP - DepositToSendersAccount
  • DRB - BankToBankDrawdownRequestOrResponseNonvalue
  • DRC - CustomerOrCorporateDrawdownRequestOrResponseNonvalue
  • DRW - DrawdownResponseValueToHonorADrawdownRequest
  • FADAMIPM - SEPAFADirectDebitAMI
  • FFR - FedFundsReturned
  • FFS - FedFundsSold
  • GST - TruncatedCreditTransfers
  • IAT - InternationalACH
  • ICMC - IncidentManagementCorrection
  • IDEAL - PaymentsViaInternetOwnedByCurrence
  • IN - CrossBorderCustomerCreditTransfer
  • INST - InstantCreditTransfer
  • INSTIDEAL - PaymentsViaInternetOwnedByCurrenceUsingInstantCreditTransfer
  • INSTNT01 - InstantCreditTransferNotTimeCritical
  • INSTNT01IDEAL - PaymentsViaInternetOwnedByCurrenceUsingInstantCreditTransferNotTimeCritical
  • INSTTC01 - InstantCreditTransferTimeCritical
  • INSTTC01IDEAL - PaymentsViaInternetOwnedByCurrenceUsingInstantCreditTransferTimeCritical
  • IPA - InstantPaymentsAruba
  • ISE - ImageBasedChequeCollection
  • ITP - InstantCreditTransferPreferred
  • MANP - MandatedPayment
  • NLDO - DutchDomesticBulkPayment
  • NLGOV - DirectDebitInitiatedByTheGovernmentWithSpecialConditions
  • NLUP - DutchUrgentPayment
  • ONCL - Overnight
  • PERI - PaymentWithERI
  • POP - PointOfPurchase
  • POS - PointOfSale
  • PPD - PrearrangedPaymentOrDepositConsumerCounterparty
  • RCK - RepresentedCheckEntry
  • RDD - ReturnedDirectDebits
  • RIBA - NonPreauthorisedDirectDebitRIBA
  • RIDO - PreauthorisedRevocableDirectDebit
  • RIDV - PreauthorisedRevocableUrgentDirectDebit
  • RTR - ReturnedCreditTransfers
  • SBTI - SettlementBankTransferInitiation
  • SCN - RevokedTruncatedChecks
  • SDCL - SameDayClearedPayments
  • SDD - RevokedDirectDebits
  • SDN - PaymentsViaStandaardDigitaleNota
  • SGT - RevokedTruncatedCreditTransfers
  • SRD - RevokedReturnedDirectDebits
  • SRT - RevokedReturnedCreditTransfers
  • STR - RevokedCreditTransfers
  • SVC - NonValueServiceMessage
  • TEL - TelephoneInitiatedEntry
  • TRF - CreditTransfers
  • UDD - UnauthenticatedDirectDebit
  • WEB - InternetInitiatedEntry
Enum"0000""0001""0002""0090""0091""0092""0220""0221""0222""0223"
{ "schema": "CODE", "value": "0000" }

PaymentTypeInformation

localInstrumentobject(LocalInstrumentType)
{ "localInstrument": { "schema": "string", "value": "0000" } }

AddressTypeCode

  • ADDR: A postal address.
  • PBOX: A postal office (PO) box address.
  • HOME: A (residential) home address.
  • BIZZ: A business address.
  • MLTO: Address to which mail is sent.
  • DLVY: Address to which delivery is to take place
string(AddressTypeCode)
  • ADDR: A postal address.
  • PBOX: A postal office (PO) box address.
  • HOME: A (residential) home address.
  • BIZZ: A business address.
  • MLTO: Address to which mail is sent.
  • DLVY: Address to which delivery is to take place
Enum"ADDR""PBOX""HOME""BIZZ""MLTO""DLVY"
"ADDR"

CountryCode

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

string(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

"string"

PostalAddress

addressTypestring(AddressTypeCode)
  • ADDR: A postal address.
  • PBOX: A postal office (PO) box address.
  • HOME: A (residential) home address.
  • BIZZ: A business address.
  • MLTO: Address to which mail is sent.
  • DLVY: Address to which delivery is to take place
Enum"ADDR""PBOX""HOME""BIZZ""MLTO""DLVY"
departmentstring[ 1 .. 70 ] characters
streetNamestring[ 1 .. 70 ] characters
buildingNumberstring[ 1 .. 16 ] characters
buildingNamestring[ 1 .. 35 ] characters
floorstring[ 1 .. 70 ] characters
postBoxstring[ 1 .. 16 ] characters
postCodestring[ 1 .. 16 ] characters
townNamestring[ 1 .. 35 ] characters
townLocationNamestring[ 1 .. 35 ] characters
districtNamestring[ 1 .. 35 ] characters
countrySubDivisionstring[ 1 .. 35 ] characters
countrystring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

addressLineArray of strings[ 0 .. 7 ] items
{ "addressType": "ADDR", "department": "string", "streetName": "string", "buildingNumber": "string", "buildingName": "string", "floor": "string", "postBox": "string", "postCode": "string", "townName": "string", "townLocationName": "string", "districtName": "string", "countrySubDivision": "string", "country": "string", "addressLine": [ "string" ] }

PhoneNumber

string(PhoneNumber)^\+[0-9]{1,3}-[0-9()+\-]{1,30}$
"string"

ContactDetails

phoneNumberstring(PhoneNumber)^\+[0-9]{1,3}-[0-9()+\-]{1,30}$
mobileNumberstring(PhoneNumber)^\+[0-9]{1,3}-[0-9()+\-]{1,30}$
emailAddressstring(email)
{ "phoneNumber": "string", "mobileNumber": "string", "emailAddress": "user@example.com" }

PersonIdentificationCode

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

valuestringrequired
  • ARNU: AlienRegistrationNumber. A number assigned by a social security agency to identify a non-resident person.
  • CCPT: PassportNumber. A number assigned by an authority to identify the passport number of a person.
  • CUST: CustomerIdentificationNumber. A number assigned by an issuer to identify a customer.
  • DRLC: DriversLicenseNumber. A number assigned by an authority to identify a driver's license.
  • EMPL: EmployeeIdentificationNumber. A number assigned by a registration authority to an employee.
  • NIDN: NationalIdentityNumber. A number assigned by an authority to identify the national identity number of a person.
  • SOSE: SocialSecurityNumber. A number assigned by an authority to identify the social security number of a person.
  • TELE: TelephoneNumber. A number assigned by a telephone or mobile phone operator to identify a person. A person may have multiple phone numbers.
  • TXID: TaxIdentificationNumber. A number assigned by a tax authority to identify a person.
  • POID: PersonOtherIdentification. Other identification of the person.
Enum"ARNU""CCPT""CUST""DRLC""EMPL""NIDN""SOSE""TELE""TXID""POID"
{ "schema": "string", "value": "ARNU" }

PersonIdentifierScheme

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
valuestringrequired
  • ARNU: AlienRegistrationNumber. A number assigned by a social security agency to identify a non-resident person.
  • CCPT: PassportNumber. A number assigned by an authority to identify the passport number of a person.
  • CUST: CustomerIdentificationNumber. A number assigned by an issuer to identify a customer.
  • DRLC: DriversLicenseNumber. A number assigned by an authority to identify a driver's license.
  • EMPL: EmployeeIdentificationNumber. A number assigned by a registration authority to an employee.
  • NIDN: NationalIdentityNumber. A number assigned by an authority to identify the national identity number of a person.
  • SOSE: SocialSecurityNumber. A number assigned by an authority to identify the social security number of a person.
  • TELE: TelephoneNumber. A number assigned by a telephone or mobile phone operator to identify a person. A person may have multiple phone numbers.
  • TXID: TaxIdentificationNumber. A number assigned by a tax authority to identify a person.
  • POID: PersonOtherIdentification. Other identification of the person.
Enum"ARNU""CCPT""CUST""DRLC""EMPL""NIDN""SOSE""TELE""TXID""POID"
{ "schema": "CODE", "value": "ARNU" }

PersonIdentifier

identificationstring<= 35 charactersrequired

Unique and unambiguous identification of a person, for example a passport.

schemeobject(PersonIdentifierScheme)
issuerstring<= 35 characters

The entity that assigns the identification

{ "identification": "string", "scheme": { "schema": "string", "value": "ARNU" }, "issuer": "string" }

PersonIdentification

schemastringrequired

Identifies the party as a person, always PERSON

identifiersArray of objects(PersonIdentifier)required
identifiers[].​identificationstring<= 35 charactersrequired

Unique and unambiguous identification of a person, for example a passport.

identifiers[].​schemeobject(PersonIdentifierScheme)
identifiers[].​issuerstring<= 35 characters

The entity that assigns the identification

{ "schema": "string", "identifiers": [ {} ] }

OrganisationIdentifierBic

An organisation identified by a code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority, as described in ISO 9362: 2014 - Banking - Banking telecommunication messages - Business identifier code (BIC).

BICstring[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]...required
schemastringrequired

Indicates the identifier as a BIC organisation identifier, always BIC

{ "BIC": "string", "schema": "string" }

OrganisationIdentifierLei

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

LEIstring[A-Z0-9]{18,18}[0-9]{2,2}required
schemastringrequired

Indicates the identifier as a LEI organisation identifier, always LEI

{ "LEI": "string", "schema": "string" }

OrganisationIdentificationCode

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

valuestringrequired
  • BANK : BankPartyIdentification. Unique and unambiguous assignment made by a specific bank or similar financial institution to identify a relationship as defined between the bank and its client.
  • CBID : CentralBankIdentificationNumber. A unique identification number assigned by a central bank to identify an organisation.
  • CHID : ClearingIdentificationNumber. A unique identification number assigned by a clearing house to identify an organisation
  • CINC : CertificateOfIncorporationNumber. A unique identification number assigned by a designated authority to a certificate of incorporation and used to identify an organisation.
  • COID : CountryIdentificationCode. Country authority given organisation identification (e.g., corporate registration number)
  • CUST : CustomerNumber. Number assigned by an issuer to identify a customer or number assigned by a party to identify a creditor or debtor relationship.
  • DUNS : DataUniversalNumberingSystem. A unique identification number provided by Dun & Bradstreet to identify an organisation.
  • EMPL : EmployerIdentificationNumber. Number assigned by a registration authority to an employer.
  • GS1G : GS1GLNIdentifier. Global Location Number. A non-significant reference number used to identify legal entities, functional entities, or physical entities according to GS1 numbering scheme rules.The number is used to retrieve detailed information that is linked to it.
  • SREN : SIREN. The SIREN number is a 9 digit code assigned by INSEE, the French National Institute for Statistics and Economic Studies, to identify an organisation in France.
  • SRET : SIRET. The SIRET number is a 14 digit code assigned by INSEE, the French National Institute for Statistics and Economic Studies, to identify an organisation unit in France. It consists of the SIREN number, followed by a five digit classification number, to identify the local geographical unit of that entity
  • TXID : TaxIdentificationNumber. Number assigned by a tax authority to identify an organisation.
  • BDID : BusinessDomainIdentifier. Identifier of the business domain in which the organisation is active.
  • BOID : BusinessOtherIdentification. Other identification of the organisation.
Enum"BANK""CBID""CHID""CINC""COID""CUST""DUNS""EMPL""GS1G""SREN"
{ "schema": "string", "value": "BANK" }

OrganisationIdentifierScheme

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
valuestringrequired
  • BANK : BankPartyIdentification. Unique and unambiguous assignment made by a specific bank or similar financial institution to identify a relationship as defined between the bank and its client.
  • CBID : CentralBankIdentificationNumber. A unique identification number assigned by a central bank to identify an organisation.
  • CHID : ClearingIdentificationNumber. A unique identification number assigned by a clearing house to identify an organisation
  • CINC : CertificateOfIncorporationNumber. A unique identification number assigned by a designated authority to a certificate of incorporation and used to identify an organisation.
  • COID : CountryIdentificationCode. Country authority given organisation identification (e.g., corporate registration number)
  • CUST : CustomerNumber. Number assigned by an issuer to identify a customer or number assigned by a party to identify a creditor or debtor relationship.
  • DUNS : DataUniversalNumberingSystem. A unique identification number provided by Dun & Bradstreet to identify an organisation.
  • EMPL : EmployerIdentificationNumber. Number assigned by a registration authority to an employer.
  • GS1G : GS1GLNIdentifier. Global Location Number. A non-significant reference number used to identify legal entities, functional entities, or physical entities according to GS1 numbering scheme rules.The number is used to retrieve detailed information that is linked to it.
  • SREN : SIREN. The SIREN number is a 9 digit code assigned by INSEE, the French National Institute for Statistics and Economic Studies, to identify an organisation in France.
  • SRET : SIRET. The SIRET number is a 14 digit code assigned by INSEE, the French National Institute for Statistics and Economic Studies, to identify an organisation unit in France. It consists of the SIREN number, followed by a five digit classification number, to identify the local geographical unit of that entity
  • TXID : TaxIdentificationNumber. Number assigned by a tax authority to identify an organisation.
  • BDID : BusinessDomainIdentifier. Identifier of the business domain in which the organisation is active.
  • BOID : BusinessOtherIdentification. Other identification of the organisation.
Enum"BANK""CBID""CHID""CINC""COID""CUST""DUNS""EMPL""GS1G""SREN"
{ "schema": "CODE", "value": "BANK" }

OrganisationIdentifierOther

A unique identification of an organisation, as assigned by an institution, using an identification scheme.

identificationstring<= 35 charactersrequired
schemastringrequired

Indicates the identifier as a unique identification of an organisation, as assigned by an institution. Always OTHER

issuerstring<= 35 characters

The name of the entity that assigns the identification

schemeobject(OrganisationIdentifierScheme)
{ "identification": "string", "schema": "string", "issuer": "string", "scheme": { "schema": "string", "value": "BANK" } }

OrganisationIdentifier

Holds identification details for an organisation.

BICstring[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]...required
schemastringrequired

Indicates the identifier as a BIC organisation identifier, always BIC

Discriminator
{ "BIC": "string", "schema": "BIC" }

OrganisationIdentification

schemastringrequired

Identifies the party as an organisation, always ORGANISATION

identifiersArray of objects(OrganisationIdentifier)required
identifiers[].​BICstring[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]...required
identifiers[].​schemastringrequired

Indicates the identifier as a BIC organisation identifier, always BIC

Discriminator
{ "schema": "string", "identifiers": [ {} ] }

PartyIdentification

The identification of a party, either a person or an organisation.

schemastringrequired

Identifies the party as a person, always PERSON

Discriminator
identifiersArray of objects(PersonIdentifier)required
identifiers[].​identificationstring<= 35 charactersrequired

Unique and unambiguous identification of a person, for example a passport.

identifiers[].​schemeobject(PersonIdentifierScheme)
identifiers[].​issuerstring<= 35 characters

The entity that assigns the identification

{ "schema": "PERSON", "identifiers": [ {} ] }

Party

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

addressobject(PostalAddress)
contactDetailsobject(ContactDetails)
countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

{ "legalName": "string", "knownAsName": "string", "address": { "addressType": "ADDR", "department": "string", "streetName": "string", "buildingNumber": "string", "buildingName": "string", "floor": "string", "postBox": "string", "postCode": "string", "townName": "string", "townLocationName": "string", "districtName": "string", "countrySubDivision": "string", "country": "string", "addressLine": [] }, "contactDetails": { "phoneNumber": "string", "mobileNumber": "string", "emailAddress": "user@example.com" }, "countryOfResidence": "string", "identification": { "schema": "string", "identifiers": [] } }

IBAN

An identifier used internationally by financial institutions to uniquely identify the account of a customer at a financial institution, as described in the latest edition of the international standard ISO 13616: 2007

string(IBAN)[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}

An identifier used internationally by financial institutions to uniquely identify the account of a customer at a financial institution, as described in the latest edition of the international standard ISO 13616: 2007

"string"

IBANIdentifier

schemastringrequired

Indicates the account identifier is an IBAN, always IBAN

valuestring(IBAN)[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}required

An identifier used internationally by financial institutions to uniquely identify the account of a customer at a financial institution, as described in the latest edition of the international standard ISO 13616: 2007

{ "schema": "string", "value": "string" }

ExternalAccountIdentificationCode

  • AIIN: Issuer Identification Number - identifies a card issuing institution in an international interchange environment. Issued by ABA (American Bankers Association).
  • BBAN: Basic Bank Account Number - identifier used nationally by financial institutions, ie, in individual countries, generally as part of a National Account Numbering Scheme(s), to uniquely identify the account of a customer.
  • CUID: (United States) Clearing House Interbank Payments System (CHIPS) Universal Identification (UID) - identifies entities that own accounts at CHIPS participating financial institutions, through which CHIPS payments are effected. The CHIPS UID is assigned by the New York Clearing House.
  • UPIC: Universal Payment Identification Code - identifier used by the New York Clearing House to mask confidential data, such as bank accounts and bank routing numbers. UPIC numbers remain with business customers, regardless of banking relationship changes.
string(ExternalAccountIdentificationCode)
  • AIIN: Issuer Identification Number - identifies a card issuing institution in an international interchange environment. Issued by ABA (American Bankers Association).
  • BBAN: Basic Bank Account Number - identifier used nationally by financial institutions, ie, in individual countries, generally as part of a National Account Numbering Scheme(s), to uniquely identify the account of a customer.
  • CUID: (United States) Clearing House Interbank Payments System (CHIPS) Universal Identification (UID) - identifies entities that own accounts at CHIPS participating financial institutions, through which CHIPS payments are effected. The CHIPS UID is assigned by the New York Clearing House.
  • UPIC: Universal Payment Identification Code - identifier used by the New York Clearing House to mask confidential data, such as bank accounts and bank routing numbers. UPIC numbers remain with business customers, regardless of banking relationship changes.
Enum"AIIN""BBAN""CUID""UPIC"
"AIIN"

GenericAccountIdentificationSchemeCode

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

valuestring(ExternalAccountIdentificationCode)required
  • AIIN: Issuer Identification Number - identifies a card issuing institution in an international interchange environment. Issued by ABA (American Bankers Association).
  • BBAN: Basic Bank Account Number - identifier used nationally by financial institutions, ie, in individual countries, generally as part of a National Account Numbering Scheme(s), to uniquely identify the account of a customer.
  • CUID: (United States) Clearing House Interbank Payments System (CHIPS) Universal Identification (UID) - identifies entities that own accounts at CHIPS participating financial institutions, through which CHIPS payments are effected. The CHIPS UID is assigned by the New York Clearing House.
  • UPIC: Universal Payment Identification Code - identifier used by the New York Clearing House to mask confidential data, such as bank accounts and bank routing numbers. UPIC numbers remain with business customers, regardless of banking relationship changes.
Enum"AIIN""BBAN""CUID""UPIC"
{ "schema": "string", "value": "AIIN" }

GenericAccountIdentificationScheme

Identifies the scheme that defines the identification of a generic account.

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
valuestring(ExternalAccountIdentificationCode)required
  • AIIN: Issuer Identification Number - identifies a card issuing institution in an international interchange environment. Issued by ABA (American Bankers Association).
  • BBAN: Basic Bank Account Number - identifier used nationally by financial institutions, ie, in individual countries, generally as part of a National Account Numbering Scheme(s), to uniquely identify the account of a customer.
  • CUID: (United States) Clearing House Interbank Payments System (CHIPS) Universal Identification (UID) - identifies entities that own accounts at CHIPS participating financial institutions, through which CHIPS payments are effected. The CHIPS UID is assigned by the New York Clearing House.
  • UPIC: Universal Payment Identification Code - identifier used by the New York Clearing House to mask confidential data, such as bank accounts and bank routing numbers. UPIC numbers remain with business customers, regardless of banking relationship changes.
Enum"AIIN""BBAN""CUID""UPIC"
{ "schema": "CODE", "value": "AIIN" }

GenericAccountIdentifier

schemastringrequired

Identifies this account identifier as generic, always GENERIC

schemeobject(GenericAccountIdentificationScheme)

Identifies the scheme that defines the identification of a generic account.

issuerstring<= 35 characters

The entity that assigns the identification

valuestring[ 1 .. 40 ] charactersrequired
{ "schema": "string", "scheme": { "schema": "string", "value": "AIIN" }, "issuer": "string", "value": "string" }

BankingIdentifier

schemastringrequired

Indicates the account identifier is an IBAN, always IBAN

Discriminator
valuestring(IBAN)[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}required

An identifier used internationally by financial institutions to uniquely identify the account of a customer at a financial institution, as described in the latest edition of the international standard ISO 13616: 2007

{ "schema": "IBAN", "value": "string" }

NonBankingIdentifier

namespacestring[ 1 .. 40 ] characters

An identifier's namespace provides a context for the identifier to distinguish different identifiers which may have the same value but be intended to identify different accounts. For example, a bank may use the same MSISDN (identifier) with different namespaces to distinguish between a customer's cheque or savings accounts.

This may be used by the following schemes:

  • ZA_RPP
schemastring

Indicates the schema of the identifier, e.g. MOBILE, CUSTOM.

Discriminator
valuestring(PhoneNumber)^\+[0-9]{1,3}-[0-9()+\-]{1,30}$required
{ "namespace": "string", "schema": "MOBILE", "value": "string" }

MobileNumberIdentifier

namespacestring[ 1 .. 40 ] characters

An identifier's namespace provides a context for the identifier to distinguish different identifiers which may have the same value but be intended to identify different accounts. For example, a bank may use the same MSISDN (identifier) with different namespaces to distinguish between a customer's cheque or savings accounts.

This may be used by the following schemes:

  • ZA_RPP
schemastring

Indicates the schema of the identifier, e.g. MOBILE, CUSTOM.

Discriminator
valuestring(PhoneNumber)^\+[0-9]{1,3}-[0-9()+\-]{1,30}$required
{ "namespace": "string", "schema": "MOBILE", "value": "string" }

CustomIdentifier

namespacestring[ 1 .. 40 ] characters

An identifier's namespace provides a context for the identifier to distinguish different identifiers which may have the same value but be intended to identify different accounts. For example, a bank may use the same MSISDN (identifier) with different namespaces to distinguish between a customer's cheque or savings accounts.

This may be used by the following schemes:

  • ZA_RPP
schemastring

Indicates the schema of the identifier, e.g. MOBILE, CUSTOM.

Discriminator
valuestring(PhoneNumber)^\+[0-9]{1,3}-[0-9()+\-]{1,30}$required
{ "namespace": "string", "schema": "MOBILE", "value": "string" }

ExternalCashAccountType1Code

  • CACC : Current - Account used to post debits and credits when no specific account has been nominated.
  • CARD : Card Account - Account used for credit card payments.
  • CASH : Cash Payment - Account used for the payment of cash.
  • CHAR : Charges - Account used for charges if different from the account for payment.
  • CISH : Cash Income - Account used for payment of income if different from the current cash account.
  • COMM : Commission - Account used for commission if different from the account for payment.
  • CPAC : Clearing Participant Settlement Account - Account used to post settlement debit and credit entries on behalf of a designated Clearing Participant.
  • LLSV : Limited Liquidity Savings Account - Account used for savings with special interest and withdrawal terms.
  • LOAN : Loan - Account used for loans.
  • MGLD : Marginal Lending - Account used for a marginal lending facility.
  • MOMA : Money Market - Account used for money markets if different from the cash account.
  • NREX : Non-Resident External - Account used for non-resident external.
  • ODFT : Overdraft - Account is used for overdrafts.
  • ONDP : Overnight Deposit - Account used for overnight deposits.
  • OTHR : Other Account - Account not otherwise specified.
  • SACC : Settlement - Account used to post debit and credit entries, as a result of transactions cleared and settled through a specific clearing and settlement system.
  • SLRY : Salary - Accounts used for salary payments.
  • SVGS : Savings - Account used for savings.
  • TAXE : Tax - Account used for taxes if different from the account for payment.
  • TRAN : Transacting Account - A transacting account is the most basic type of bank account that you can get. The main difference between transaction and cheque accounts is that you usually do not get a cheque book with your transacting account and neither are you offered an overdraft facility.
  • TRAS : Cash Trading - Account used for trading if different from the current cash account.
string(ExternalCashAccountType1Code)
  • CACC : Current - Account used to post debits and credits when no specific account has been nominated.
  • CARD : Card Account - Account used for credit card payments.
  • CASH : Cash Payment - Account used for the payment of cash.
  • CHAR : Charges - Account used for charges if different from the account for payment.
  • CISH : Cash Income - Account used for payment of income if different from the current cash account.
  • COMM : Commission - Account used for commission if different from the account for payment.
  • CPAC : Clearing Participant Settlement Account - Account used to post settlement debit and credit entries on behalf of a designated Clearing Participant.
  • LLSV : Limited Liquidity Savings Account - Account used for savings with special interest and withdrawal terms.
  • LOAN : Loan - Account used for loans.
  • MGLD : Marginal Lending - Account used for a marginal lending facility.
  • MOMA : Money Market - Account used for money markets if different from the cash account.
  • NREX : Non-Resident External - Account used for non-resident external.
  • ODFT : Overdraft - Account is used for overdrafts.
  • ONDP : Overnight Deposit - Account used for overnight deposits.
  • OTHR : Other Account - Account not otherwise specified.
  • SACC : Settlement - Account used to post debit and credit entries, as a result of transactions cleared and settled through a specific clearing and settlement system.
  • SLRY : Salary - Accounts used for salary payments.
  • SVGS : Savings - Account used for savings.
  • TAXE : Tax - Account used for taxes if different from the account for payment.
  • TRAN : Transacting Account - A transacting account is the most basic type of bank account that you can get. The main difference between transaction and cheque accounts is that you usually do not get a cheque book with your transacting account and neither are you offered an overdraft facility.
  • TRAS : Cash Trading - Account used for trading if different from the current cash account.
Enum"CACC""CARD""CASH""CHAR""CISH""COMM""CPAC""LLSV""LOAN""MGLD"
"CACC"

AccountTypeCode

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

valuestring(ExternalCashAccountType1Code)required
  • CACC : Current - Account used to post debits and credits when no specific account has been nominated.
  • CARD : Card Account - Account used for credit card payments.
  • CASH : Cash Payment - Account used for the payment of cash.
  • CHAR : Charges - Account used for charges if different from the account for payment.
  • CISH : Cash Income - Account used for payment of income if different from the current cash account.
  • COMM : Commission - Account used for commission if different from the account for payment.
  • CPAC : Clearing Participant Settlement Account - Account used to post settlement debit and credit entries on behalf of a designated Clearing Participant.
  • LLSV : Limited Liquidity Savings Account - Account used for savings with special interest and withdrawal terms.
  • LOAN : Loan - Account used for loans.
  • MGLD : Marginal Lending - Account used for a marginal lending facility.
  • MOMA : Money Market - Account used for money markets if different from the cash account.
  • NREX : Non-Resident External - Account used for non-resident external.
  • ODFT : Overdraft - Account is used for overdrafts.
  • ONDP : Overnight Deposit - Account used for overnight deposits.
  • OTHR : Other Account - Account not otherwise specified.
  • SACC : Settlement - Account used to post debit and credit entries, as a result of transactions cleared and settled through a specific clearing and settlement system.
  • SLRY : Salary - Accounts used for salary payments.
  • SVGS : Savings - Account used for savings.
  • TAXE : Tax - Account used for taxes if different from the account for payment.
  • TRAN : Transacting Account - A transacting account is the most basic type of bank account that you can get. The main difference between transaction and cheque accounts is that you usually do not get a cheque book with your transacting account and neither are you offered an overdraft facility.
  • TRAS : Cash Trading - Account used for trading if different from the current cash account.
Enum"CACC""CARD""CASH""CHAR""CISH""COMM""CPAC""LLSV""LOAN""MGLD"
{ "schema": "string", "value": "CACC" }

AccountType

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
valuestring(ExternalCashAccountType1Code)required
  • CACC : Current - Account used to post debits and credits when no specific account has been nominated.
  • CARD : Card Account - Account used for credit card payments.
  • CASH : Cash Payment - Account used for the payment of cash.
  • CHAR : Charges - Account used for charges if different from the account for payment.
  • CISH : Cash Income - Account used for payment of income if different from the current cash account.
  • COMM : Commission - Account used for commission if different from the account for payment.
  • CPAC : Clearing Participant Settlement Account - Account used to post settlement debit and credit entries on behalf of a designated Clearing Participant.
  • LLSV : Limited Liquidity Savings Account - Account used for savings with special interest and withdrawal terms.
  • LOAN : Loan - Account used for loans.
  • MGLD : Marginal Lending - Account used for a marginal lending facility.
  • MOMA : Money Market - Account used for money markets if different from the cash account.
  • NREX : Non-Resident External - Account used for non-resident external.
  • ODFT : Overdraft - Account is used for overdrafts.
  • ONDP : Overnight Deposit - Account used for overnight deposits.
  • OTHR : Other Account - Account not otherwise specified.
  • SACC : Settlement - Account used to post debit and credit entries, as a result of transactions cleared and settled through a specific clearing and settlement system.
  • SLRY : Salary - Accounts used for salary payments.
  • SVGS : Savings - Account used for savings.
  • TAXE : Tax - Account used for taxes if different from the account for payment.
  • TRAN : Transacting Account - A transacting account is the most basic type of bank account that you can get. The main difference between transaction and cheque accounts is that you usually do not get a cheque book with your transacting account and neither are you offered an overdraft facility.
  • TRAS : Cash Trading - Account used for trading if different from the current cash account.
Enum"CACC""CARD""CASH""CHAR""CISH""COMM""CPAC""LLSV""LOAN""MGLD"
{ "schema": "CODE", "value": "CACC" }

PaymentAccount

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

identificationobject(BankingIdentifier)
proxyobject(NonBankingIdentifier)
typeobject(AccountType)
namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

{ "identification": { "schema": "string", "value": "string" }, "proxy": { "namespace": "string", "schema": "string" }, "type": { "schema": "string", "value": "CACC" }, "name": "string", "currency": "string" }

BranchIdentification

identificationstringrequired

Unique and unambiguous identification of a branch of a financial institution.

namestring<= 140 characters

The name by which this branch is known and is usually used to identify the branch.

addressobject(PostalAddress)
{ "identification": "string", "name": "string", "address": { "addressType": "ADDR", "department": "string", "streetName": "string", "buildingNumber": "string", "buildingName": "string", "floor": "string", "postBox": "string", "postCode": "string", "townName": "string", "townLocationName": "string", "districtName": "string", "countrySubDivision": "string", "country": "string", "addressLine": [] } }

FinancialInstitutionIdentifier

schemastringrequired

Indicates the account identifier is a Financial Institution Identifier, always FII

bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

memberIdstring<= 35 characters

Identification of a member of a clearing system.

namespacesArray of strings
{ "schema": "string", "bicfi": "string", "memberId": "string", "namespaces": [ "string" ] }

AccountIdentifier

schemastringrequired

Indicates the account identifier is an IBAN, always IBAN

Discriminator
valuestring(IBAN)[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}required

An identifier used internationally by financial institutions to uniquely identify the account of a customer at a financial institution, as described in the latest edition of the international standard ISO 13616: 2007

{ "schema": "IBAN", "value": "string" }

AccountIdentification

Holds details pertaining to an identifier of an account or store of value.

identifierobject(AccountIdentifier)required
identifier.​schemastringrequired

Indicates the account identifier is an IBAN, always IBAN

Discriminator
identifier.​valuestring(IBAN)[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}required

An identifier used internationally by financial institutions to uniquely identify the account of a customer at a financial institution, as described in the latest edition of the international standard ISO 13616: 2007

accountKnownAsstring<= 40 characters

A name or label of the account.

registeredSchemesArray of strings(PaymentSchemeName)

The list of schemes with which the identifier is registered.

Items Enum"ZA_RTC""ZA_RPP""ZA_EFT"
{ "identifier": { "schema": "string", "value": "string" }, "accountKnownAs": "string", "registeredSchemes": [ "ZA_RTC" ] }

InstitutionIdentification

bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

memberIdstring<= 35 characters

Identification of a member of a clearing system.

namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

branchobject(BranchIdentification)
additionalIdentificationsArray of objects(AccountIdentification)
{ "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": { "identification": "string", "name": "string", "address": {} }, "additionalIdentifications": [ {} ] }

Instruction

codestring
  • PHOA: Please advise/contact next agent by phone
  • TELA: Please advise/contact next agent by the most efficient means of telecommunication.
  • RT14: Type is an enquiry on a suspicious transaction.
Enum"PHOA""TELA""RT14"
informationstring[ 1 .. 140 ] characters

Further information complementing the coded instruction or instruction to the next agent that is bilaterally agreed or specific to a user community.

{ "code": "PHOA", "information": "string" }

PurposeTypeCode

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

valuestringrequired
  • ACCT : AccountManagement
  • ADCS : AdvisoryDonationCopyrightServices
  • ADMG : AdministrativeManagement
  • ADVA : AdvancePayment
  • AEMP : ActiveEmploymentPolicy
  • AGRT : AgriculturalTransfer
  • AIRB : Air
  • ALLW : Allowance
  • ALMY : AlimonyPayment
  • AMEX : Amex
  • ANNI : Annuity
  • ANTS : AnesthesiaServices
  • AREN : AccountsReceivablesEntry
  • AUCO : AuthenticatedCollections
  • B112 : TrailerFeePayment
  • BBSC : BabyBonusScheme
  • BCDM : BearerChequeDomestic
  • BCFG : BearerChequeForeign
  • BECH : ChildBenefit
  • BENE : UnemploymentDisabilityBenefit
  • BEXP : BusinessExpenses
  • BFWD : BondForward
  • BKDF : BankLoanDelayedDrawFunding
  • BKFE : BankLoanFees
  • BKFM : BankLoanFundingMemo
  • BKIP : BankLoanAccruedInterestPayment
  • BKPP : BankLoanPrincipalPaydown
  • BLDM : BuildingMaintenance
  • BNET : BondForwardNetting
  • BOCE : BackOfficeConversionEntry
  • BOND : Bonds
  • BONU : BonusPayment.
  • BR12 : TrailerFeeRebate
  • BUSB : Bus
  • CABD : CorporateActions-Bonds
  • CAEQ : CorporateActions-Equities
  • CAFI : CustodianManagementFeeInhouse
  • CASH : CashManagementTransfer
  • CBCR : CreditCard
  • CBFF : CapitalBuilding
  • CBFR : CapitalBuildingRetirement
  • CBLK : CardBulkClearing
  • CBTV : CableTVBill
  • CCHD : CashCompensationHelplessnessDisability
  • CCIR : CrossCurrencyIRS
  • CCPC : CCPClearedInitialMargin
  • CCPM : CCPClearedVariationMargin
  • CCRD : CreditCardPayment
  • CCSM : CCPClearedInitialMarginSegregatedCash
  • CDBL : CreditCardBill
  • CDCB : CardPaymentWithCashBack
  • CDCD : CashDisbursementCashSettlement
  • CDCS : CashDisbursementWithSurcharging
  • CDDP : CardDeferredPayment
  • CDEP : CreditDefaultEventPayment
  • CDOC : OriginalCredit
  • CDQC : QuasiCash
  • CFDI : CapitalFallingDueInhouse
  • CFEE : CancellationFee
  • CGDD : CardGeneratedDirectDebit
  • CHAR : CharityPayment
  • CLPR : CarLoanPrincipalRepayment
  • CMDT : CommodityTransfer
  • COLL : CollectionPayment
  • COMC : CommercialPayment
  • COMM : Commission
  • COMP : CompensationPayment
  • COMT : ConsumerThirdPartyConsolidatedPayment
  • CORT : TradeSettlementPayment
  • COST : Costs
  • CPKC : CarparkCharges
  • CPYR : Copyright
  • CRDS : CreditDefaultSwap
  • CRPR : CrossProduct
  • CRSP : CreditSupport
  • CRTL : CreditLine
  • CSDB : CashDisbursementCashManagement
  • CSLP : CompanySocialLoanPaymentToBank
  • CVCF : ConvalescentCareFacility
  • DBCR : DebitCard
  • DBTC : DebitCollectionPayment
  • DCRD : DebitCardPayment
  • DEPT : Deposit
  • DERI : Derivatives
  • DICL : Diners
  • DIVD : Dividend
  • DMEQ : DurableMedicaleEquipment
  • DNTS : DentalServices
  • DSMT : PrintedOrderDisbursement
  • DVPM : DeliverAgainstPayment
  • ECPG : GuaranteedEPayment
  • ECPR : EPaymentReturn
  • ECPU : NonGuaranteedEPayment
  • EDUC : Education
  • EFTC : LowValueCredit
  • EFTD : LowValueDebit
  • ELEC : ElectricityBill
  • ENRG : Energies
  • EPAY : Epayment
  • EQPT : EquityOption
  • EQTS : Equities
  • EQUS : EquitySwap
  • ESTX : EstateTax
  • ETUP : EPurseTopUp
  • EXPT : ExoticOption
  • EXTD : ExchangeTradedDerivatives
  • FACT : FactorUpdateRelatedPayment
  • FAND : FinancialAidInCaseOfNaturalDisaster
  • FCOL : FeeCollection
  • FCPM : LatePaymentOfFeesAndCharges
  • FEES : PaymentOfFees
  • FERB : Ferry
  • FIXI : FixedIncome
  • FLCR : FleetCard
  • FNET : FuturesNettingPayment
  • FORW : ForwardForeignExchange
  • FREX : ForeignExchange
  • FUTR : Futures
  • FWBC : ForwardBrokerOwnedCashCollateral
  • FWCC : ForwardClientOwnedCashCollateral
  • FWLV : ForeignWorkerLevy
  • FWSB : ForwardBrokerOwnedCashCollateralSegregated
  • FWSC : ForwardClientOwnedSegregatedCashCollateral
  • FXNT : ForeignExchangeRelatedNetting
  • GAFA : GovernmentFamilyAllowance
  • GAHO : GovernmentHousingAllowance
  • GAMB : GamblingOrWageringPayment
  • GASB : GasBill
  • GDDS : PurchaseSaleOfGoods
  • GDSV : PurchaseSaleOfGoodsAndServices
  • GFRP : GuaranteeFundRightsPayment
  • GIFT : Gift
  • GOVI : GovernmentInsurance
  • GOVT : GovernmentPayment
  • GSCB : PurchaseSaleOfGoodsAndServicesWithCashBack
  • GSTX : GoodsServicesTax
  • GVEA : AustrianGovernmentEmployeesCategoryA
  • GVEB : AustrianGovernmentEmployeesCategoryB
  • GVEC : AustrianGovernmentEmployeesCategoryC
  • GVED : AustrianGovernmentEmployeesCategoryD
  • GWLT : GovermentWarLegislationTransfer
  • HEDG : Hedging
  • HLRP : PropertyLoanRepayment
  • HLST : PropertyLoanSettlement
  • HLTC : HomeHealthCare
  • HLTI : HealthInsurance
  • HREC : HousingRelatedContribution
  • HSPC : HospitalCare
  • HSTX : HousingTax
  • ICCP : IrrevocableCreditCardPayment
  • ICRF : IntermediateCareFacility
  • IDCP : IrrevocableDebitCardPayment
  • IHRP : InstalmentHirePurchaseAgreement
  • INPC : InsurancePremiumCar
  • INPR : InsurancePremiumRefund
  • INSC : PaymentOfInsuranceClaim
  • INSM : Installment
  • INSU : InsurancePremium
  • INTC : IntraCompanyPayment
  • INTE : Interest
  • INTP : IntraPartyPayment
  • INTX : IncomeTax
  • INVS : InvestmentAndSecurities
  • IPAY : InstantPayments
  • IPCA : InstantPaymentsCancellation
  • IPDO : InstantPaymentsForDonations
  • IPEA : InstantPaymentsInECommerceWithoutAddressData
  • IPEC : InstantPaymentsInECommerceWithAddressData
  • IPEW : InstantPaymentsInECommerce
  • IPPS : InstantPaymentsAtPOS
  • IPRT : InstantPaymentsReturn
  • IPU2 : InstantPaymentsUnattendedVendingMachineWith2FA
  • IPUW : InstantPaymentsUnattendedVendingMachineWithout2FA
  • IVPT : InvoicePayment
  • LBIN : LendingBuyInNetting
  • LBRI : LaborInsurance
  • LCOL : LendingCashCollateralFreeMovement
  • LFEE : LendingFees
  • LICF : LicenseFee
  • LIFI : LifeInsurance
  • LIMA : LiquidityManagement
  • LMEQ : LendingEquityMarkedToMarketCashCollateral
  • LMFI : LendingFixedIncomeMarkedToMarketCashCollateral
  • LMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateral
  • LOAN : Loan
  • LOAR : LoanRepayment
  • LOTT : LotteryPayment
  • LREB : LendingRebatePayments
  • LREV : LendingRevenuePayments
  • LSFL : LendingClaimPayment
  • LTCF : LongTermCareFacility
  • MAFC : MedicalAidFundContribution
  • MARF : MedicalAidRefund
  • MARG : DailyMarginOnListedDerivatives
  • MBSB : MBSBrokerOwnedCashCollateral
  • MBSC : MBSClientOwnedCashCollateral
  • MCDM : MultiCurrenyChequeDomestic
  • MCFG : MultiCurrenyChequeForeign
  • MDCS : MedicalServices
  • MGCC : FuturesInitialMargin
  • MGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateral
  • MOMA : MoneyMarket
  • MP2B : MobileP2BPayment
  • MP2P : MobileP2PPayment
  • MSVC : MultipleServiceTypes
  • MTUP : MobileTopUp
  • NETT : Netting
  • NITX : NetIncomeTax
  • NOWS : NotOtherwiseSpecified
  • NWCH : NetworkCharge
  • NWCM : NetworkCommunication
  • OCCC : ClientOwnedOCCPledgedCollateral
  • OCDM : OrderChequeDomestic
  • OCFG : OrderChequeForeign
  • OFEE : OpeningFee
  • OPBC : OTCOptionBrokerOwnedCashCollateral
  • OPCC : OTCOptionClientOwnedCashCollateral
  • OPSB : OTCOptionBrokerOwnedSegregatedCashCollateral
  • OPSC : OTCOptionClientOwnedCashSegregatedCashCollateral
  • OPTN : FXOption
  • OTCD : OTCDerivatives
  • OTHR : Other
  • OTLC : OtherTelecomRelatedBill
  • PADD : PreauthorizedDebit
  • PAYR : Payroll
  • PCOM : PropertyCompletionPayment
  • PDEP : PropertyDeposit
  • PEFC : PensionFundContribution
  • PENO : PaymentBasedOnEnforcementOrder
  • PENS : PensionPayment
  • PHON : TelephoneBill
  • PLDS : PropertyLoanDisbursement
  • PLRF : PropertyLoanRefinancing
  • POPE : PointOfPurchaseEntry
  • PPTI : PropertyInsurance
  • PRCP : PricePayment
  • PRME : PreciousMetal
  • PTSP : PaymentTerms
  • PTXP : PropertyTax
  • RAPI : RapidPaymentInstruction
  • RCKE : RepresentedCheckEntry
  • RCPT : ReceiptPayment
  • RDTX : RoadTax
  • REBT : Rebate
  • REFU : Refund
  • RELG : RentalLeaseGeneral
  • RENT : Rent
  • REOD : AccountOverdraftRepayment
  • REPO : RepurchaseAgreement
  • RHBS : RehabilitationSupport
  • RIMB : ReimbursementOfAPreviousErroneousTransaction
  • RINP : RecurringInstallmentPayment
  • RLWY : Railway
  • ROYA : Royalties
  • RPBC : BilateralRepoBrokerOwnedCollateral
  • RPCC : RepoClientOwnedCollateral
  • RPNT : BilateralRepoInternetNetting
  • RPSB : BilateralRepoBrokerOwnedSegregatedCashCollateral
  • RPSC : BilateralRepoClientOwnedSegregatedCashCollateral
  • RRBN : RoundRobin
  • RRCT : ReimbursementReceivedCreditTransfer
  • RRTP : RelatedRequestToPay
  • RVPM : ReceiveAgainstPayment
  • RVPO : ReverseRepurchaseAgreement
  • SALA : SalaryPayment
  • SASW : ATM
  • SAVG : Savings
  • SBSC : SecuritiesBuySellSellBuyBack
  • SCIE : SingleCurrencyIRSExotic
  • SCIR : SingleCurrencyIRS
  • SCRP : SecuritiesCrossProducts
  • SCVE : PurchaseSaleOfServices
  • SECU : Securities
  • SEPI : SecuritiesPurchaseInhouse
  • SERV : ServiceCharges
  • SHBC : BrokerOwnedCollateralShortSale
  • SHCC : ClientOwnedCollateralShortSale
  • SHSL : ShortSell
  • SLEB : SecuritiesLendingAndBorrowing
  • SLOA : SecuredLoan
  • SLPI : PaymentSlipInstruction
  • SPLT : SplitPayments
  • SPSP : SalaryPensionSumPayment
  • SSBE : SocialSecurityBenefit
  • STDY : Study
  • SUBS : Subscription
  • SUPP : SupplierPayment
  • SWBC : SwapBrokerOwnedCashCollateral
  • SWCC : SwapClientOwnedCashCollateral
  • SWFP : SwapContractFinalPayment
  • SWPP : SwapContractPartialPayment
  • SWPT : Swaption
  • SWRS : SwapContractResetPayment
  • SWSB : SwapsBrokerOwnedSegregatedCashCollateral
  • SWSC : SwapsClientOwnedSegregatedCashCollateral
  • SWUF : SwapContractUpfrontPayment
  • TAXR : TaxRefund
  • TAXS : TaxPayment
  • TBAN : TBAPairOffNetting
  • TBAS : ToBeAnnounced
  • TBBC : TBABrokerOwnedCashCollateral
  • TBCC : TBAClientOwnedCashCollateral
  • TBIL : TelecommunicationsBill
  • TCSC : TownCouncilServiceCharges
  • TELI : TelephoneInitiatedTransaction
  • TLRF : NonUSMutualFundTrailerFeePayment
  • TLRR : NonUSMutualFundTrailerFeeRebatePayment
  • TMPG : TMPGClaimPayment
  • TPRI : TriPartyRepoInterest
  • TPRP : TriPartyRepoNetting
  • TRAD : Commercial
  • TRCP : TreasuryCrossProduct
  • TREA : TreasuryPayment
  • TRFD : TrustFund
  • TRNC : TruncatedPaymentSlip
  • TRPT : RoadPricing
  • TRVC : TravellerCheque
  • UBIL : Utilities
  • UNIT : UnitTrustPurchase
  • VATX : ValueAddedTaxPayment
  • VIEW : VisionCare
  • WEBI : InternetInitiatedTransaction
  • WHLD : WithHolding
  • WTER : WaterBill
Enum"BKDF""BKFE""BKFM""BKIP""BKPP""CBLK""CDCB""CDCD""CDCS""CDDP"
{ "schema": "string", "value": "BKDF" }

PurposeType

Specifies the underlying reason for the payment transaction

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
valuestringrequired
  • ACCT : AccountManagement
  • ADCS : AdvisoryDonationCopyrightServices
  • ADMG : AdministrativeManagement
  • ADVA : AdvancePayment
  • AEMP : ActiveEmploymentPolicy
  • AGRT : AgriculturalTransfer
  • AIRB : Air
  • ALLW : Allowance
  • ALMY : AlimonyPayment
  • AMEX : Amex
  • ANNI : Annuity
  • ANTS : AnesthesiaServices
  • AREN : AccountsReceivablesEntry
  • AUCO : AuthenticatedCollections
  • B112 : TrailerFeePayment
  • BBSC : BabyBonusScheme
  • BCDM : BearerChequeDomestic
  • BCFG : BearerChequeForeign
  • BECH : ChildBenefit
  • BENE : UnemploymentDisabilityBenefit
  • BEXP : BusinessExpenses
  • BFWD : BondForward
  • BKDF : BankLoanDelayedDrawFunding
  • BKFE : BankLoanFees
  • BKFM : BankLoanFundingMemo
  • BKIP : BankLoanAccruedInterestPayment
  • BKPP : BankLoanPrincipalPaydown
  • BLDM : BuildingMaintenance
  • BNET : BondForwardNetting
  • BOCE : BackOfficeConversionEntry
  • BOND : Bonds
  • BONU : BonusPayment.
  • BR12 : TrailerFeeRebate
  • BUSB : Bus
  • CABD : CorporateActions-Bonds
  • CAEQ : CorporateActions-Equities
  • CAFI : CustodianManagementFeeInhouse
  • CASH : CashManagementTransfer
  • CBCR : CreditCard
  • CBFF : CapitalBuilding
  • CBFR : CapitalBuildingRetirement
  • CBLK : CardBulkClearing
  • CBTV : CableTVBill
  • CCHD : CashCompensationHelplessnessDisability
  • CCIR : CrossCurrencyIRS
  • CCPC : CCPClearedInitialMargin
  • CCPM : CCPClearedVariationMargin
  • CCRD : CreditCardPayment
  • CCSM : CCPClearedInitialMarginSegregatedCash
  • CDBL : CreditCardBill
  • CDCB : CardPaymentWithCashBack
  • CDCD : CashDisbursementCashSettlement
  • CDCS : CashDisbursementWithSurcharging
  • CDDP : CardDeferredPayment
  • CDEP : CreditDefaultEventPayment
  • CDOC : OriginalCredit
  • CDQC : QuasiCash
  • CFDI : CapitalFallingDueInhouse
  • CFEE : CancellationFee
  • CGDD : CardGeneratedDirectDebit
  • CHAR : CharityPayment
  • CLPR : CarLoanPrincipalRepayment
  • CMDT : CommodityTransfer
  • COLL : CollectionPayment
  • COMC : CommercialPayment
  • COMM : Commission
  • COMP : CompensationPayment
  • COMT : ConsumerThirdPartyConsolidatedPayment
  • CORT : TradeSettlementPayment
  • COST : Costs
  • CPKC : CarparkCharges
  • CPYR : Copyright
  • CRDS : CreditDefaultSwap
  • CRPR : CrossProduct
  • CRSP : CreditSupport
  • CRTL : CreditLine
  • CSDB : CashDisbursementCashManagement
  • CSLP : CompanySocialLoanPaymentToBank
  • CVCF : ConvalescentCareFacility
  • DBCR : DebitCard
  • DBTC : DebitCollectionPayment
  • DCRD : DebitCardPayment
  • DEPT : Deposit
  • DERI : Derivatives
  • DICL : Diners
  • DIVD : Dividend
  • DMEQ : DurableMedicaleEquipment
  • DNTS : DentalServices
  • DSMT : PrintedOrderDisbursement
  • DVPM : DeliverAgainstPayment
  • ECPG : GuaranteedEPayment
  • ECPR : EPaymentReturn
  • ECPU : NonGuaranteedEPayment
  • EDUC : Education
  • EFTC : LowValueCredit
  • EFTD : LowValueDebit
  • ELEC : ElectricityBill
  • ENRG : Energies
  • EPAY : Epayment
  • EQPT : EquityOption
  • EQTS : Equities
  • EQUS : EquitySwap
  • ESTX : EstateTax
  • ETUP : EPurseTopUp
  • EXPT : ExoticOption
  • EXTD : ExchangeTradedDerivatives
  • FACT : FactorUpdateRelatedPayment
  • FAND : FinancialAidInCaseOfNaturalDisaster
  • FCOL : FeeCollection
  • FCPM : LatePaymentOfFeesAndCharges
  • FEES : PaymentOfFees
  • FERB : Ferry
  • FIXI : FixedIncome
  • FLCR : FleetCard
  • FNET : FuturesNettingPayment
  • FORW : ForwardForeignExchange
  • FREX : ForeignExchange
  • FUTR : Futures
  • FWBC : ForwardBrokerOwnedCashCollateral
  • FWCC : ForwardClientOwnedCashCollateral
  • FWLV : ForeignWorkerLevy
  • FWSB : ForwardBrokerOwnedCashCollateralSegregated
  • FWSC : ForwardClientOwnedSegregatedCashCollateral
  • FXNT : ForeignExchangeRelatedNetting
  • GAFA : GovernmentFamilyAllowance
  • GAHO : GovernmentHousingAllowance
  • GAMB : GamblingOrWageringPayment
  • GASB : GasBill
  • GDDS : PurchaseSaleOfGoods
  • GDSV : PurchaseSaleOfGoodsAndServices
  • GFRP : GuaranteeFundRightsPayment
  • GIFT : Gift
  • GOVI : GovernmentInsurance
  • GOVT : GovernmentPayment
  • GSCB : PurchaseSaleOfGoodsAndServicesWithCashBack
  • GSTX : GoodsServicesTax
  • GVEA : AustrianGovernmentEmployeesCategoryA
  • GVEB : AustrianGovernmentEmployeesCategoryB
  • GVEC : AustrianGovernmentEmployeesCategoryC
  • GVED : AustrianGovernmentEmployeesCategoryD
  • GWLT : GovermentWarLegislationTransfer
  • HEDG : Hedging
  • HLRP : PropertyLoanRepayment
  • HLST : PropertyLoanSettlement
  • HLTC : HomeHealthCare
  • HLTI : HealthInsurance
  • HREC : HousingRelatedContribution
  • HSPC : HospitalCare
  • HSTX : HousingTax
  • ICCP : IrrevocableCreditCardPayment
  • ICRF : IntermediateCareFacility
  • IDCP : IrrevocableDebitCardPayment
  • IHRP : InstalmentHirePurchaseAgreement
  • INPC : InsurancePremiumCar
  • INPR : InsurancePremiumRefund
  • INSC : PaymentOfInsuranceClaim
  • INSM : Installment
  • INSU : InsurancePremium
  • INTC : IntraCompanyPayment
  • INTE : Interest
  • INTP : IntraPartyPayment
  • INTX : IncomeTax
  • INVS : InvestmentAndSecurities
  • IPAY : InstantPayments
  • IPCA : InstantPaymentsCancellation
  • IPDO : InstantPaymentsForDonations
  • IPEA : InstantPaymentsInECommerceWithoutAddressData
  • IPEC : InstantPaymentsInECommerceWithAddressData
  • IPEW : InstantPaymentsInECommerce
  • IPPS : InstantPaymentsAtPOS
  • IPRT : InstantPaymentsReturn
  • IPU2 : InstantPaymentsUnattendedVendingMachineWith2FA
  • IPUW : InstantPaymentsUnattendedVendingMachineWithout2FA
  • IVPT : InvoicePayment
  • LBIN : LendingBuyInNetting
  • LBRI : LaborInsurance
  • LCOL : LendingCashCollateralFreeMovement
  • LFEE : LendingFees
  • LICF : LicenseFee
  • LIFI : LifeInsurance
  • LIMA : LiquidityManagement
  • LMEQ : LendingEquityMarkedToMarketCashCollateral
  • LMFI : LendingFixedIncomeMarkedToMarketCashCollateral
  • LMRK : LendingUnspecifiedTypeOfMarkedToMarketCashCollateral
  • LOAN : Loan
  • LOAR : LoanRepayment
  • LOTT : LotteryPayment
  • LREB : LendingRebatePayments
  • LREV : LendingRevenuePayments
  • LSFL : LendingClaimPayment
  • LTCF : LongTermCareFacility
  • MAFC : MedicalAidFundContribution
  • MARF : MedicalAidRefund
  • MARG : DailyMarginOnListedDerivatives
  • MBSB : MBSBrokerOwnedCashCollateral
  • MBSC : MBSClientOwnedCashCollateral
  • MCDM : MultiCurrenyChequeDomestic
  • MCFG : MultiCurrenyChequeForeign
  • MDCS : MedicalServices
  • MGCC : FuturesInitialMargin
  • MGSC : FuturesInitialMarginClientOwnedSegregatedCashCollateral
  • MOMA : MoneyMarket
  • MP2B : MobileP2BPayment
  • MP2P : MobileP2PPayment
  • MSVC : MultipleServiceTypes
  • MTUP : MobileTopUp
  • NETT : Netting
  • NITX : NetIncomeTax
  • NOWS : NotOtherwiseSpecified
  • NWCH : NetworkCharge
  • NWCM : NetworkCommunication
  • OCCC : ClientOwnedOCCPledgedCollateral
  • OCDM : OrderChequeDomestic
  • OCFG : OrderChequeForeign
  • OFEE : OpeningFee
  • OPBC : OTCOptionBrokerOwnedCashCollateral
  • OPCC : OTCOptionClientOwnedCashCollateral
  • OPSB : OTCOptionBrokerOwnedSegregatedCashCollateral
  • OPSC : OTCOptionClientOwnedCashSegregatedCashCollateral
  • OPTN : FXOption
  • OTCD : OTCDerivatives
  • OTHR : Other
  • OTLC : OtherTelecomRelatedBill
  • PADD : PreauthorizedDebit
  • PAYR : Payroll
  • PCOM : PropertyCompletionPayment
  • PDEP : PropertyDeposit
  • PEFC : PensionFundContribution
  • PENO : PaymentBasedOnEnforcementOrder
  • PENS : PensionPayment
  • PHON : TelephoneBill
  • PLDS : PropertyLoanDisbursement
  • PLRF : PropertyLoanRefinancing
  • POPE : PointOfPurchaseEntry
  • PPTI : PropertyInsurance
  • PRCP : PricePayment
  • PRME : PreciousMetal
  • PTSP : PaymentTerms
  • PTXP : PropertyTax
  • RAPI : RapidPaymentInstruction
  • RCKE : RepresentedCheckEntry
  • RCPT : ReceiptPayment
  • RDTX : RoadTax
  • REBT : Rebate
  • REFU : Refund
  • RELG : RentalLeaseGeneral
  • RENT : Rent
  • REOD : AccountOverdraftRepayment
  • REPO : RepurchaseAgreement
  • RHBS : RehabilitationSupport
  • RIMB : ReimbursementOfAPreviousErroneousTransaction
  • RINP : RecurringInstallmentPayment
  • RLWY : Railway
  • ROYA : Royalties
  • RPBC : BilateralRepoBrokerOwnedCollateral
  • RPCC : RepoClientOwnedCollateral
  • RPNT : BilateralRepoInternetNetting
  • RPSB : BilateralRepoBrokerOwnedSegregatedCashCollateral
  • RPSC : BilateralRepoClientOwnedSegregatedCashCollateral
  • RRBN : RoundRobin
  • RRCT : ReimbursementReceivedCreditTransfer
  • RRTP : RelatedRequestToPay
  • RVPM : ReceiveAgainstPayment
  • RVPO : ReverseRepurchaseAgreement
  • SALA : SalaryPayment
  • SASW : ATM
  • SAVG : Savings
  • SBSC : SecuritiesBuySellSellBuyBack
  • SCIE : SingleCurrencyIRSExotic
  • SCIR : SingleCurrencyIRS
  • SCRP : SecuritiesCrossProducts
  • SCVE : PurchaseSaleOfServices
  • SECU : Securities
  • SEPI : SecuritiesPurchaseInhouse
  • SERV : ServiceCharges
  • SHBC : BrokerOwnedCollateralShortSale
  • SHCC : ClientOwnedCollateralShortSale
  • SHSL : ShortSell
  • SLEB : SecuritiesLendingAndBorrowing
  • SLOA : SecuredLoan
  • SLPI : PaymentSlipInstruction
  • SPLT : SplitPayments
  • SPSP : SalaryPensionSumPayment
  • SSBE : SocialSecurityBenefit
  • STDY : Study
  • SUBS : Subscription
  • SUPP : SupplierPayment
  • SWBC : SwapBrokerOwnedCashCollateral
  • SWCC : SwapClientOwnedCashCollateral
  • SWFP : SwapContractFinalPayment
  • SWPP : SwapContractPartialPayment
  • SWPT : Swaption
  • SWRS : SwapContractResetPayment
  • SWSB : SwapsBrokerOwnedSegregatedCashCollateral
  • SWSC : SwapsClientOwnedSegregatedCashCollateral
  • SWUF : SwapContractUpfrontPayment
  • TAXR : TaxRefund
  • TAXS : TaxPayment
  • TBAN : TBAPairOffNetting
  • TBAS : ToBeAnnounced
  • TBBC : TBABrokerOwnedCashCollateral
  • TBCC : TBAClientOwnedCashCollateral
  • TBIL : TelecommunicationsBill
  • TCSC : TownCouncilServiceCharges
  • TELI : TelephoneInitiatedTransaction
  • TLRF : NonUSMutualFundTrailerFeePayment
  • TLRR : NonUSMutualFundTrailerFeeRebatePayment
  • TMPG : TMPGClaimPayment
  • TPRI : TriPartyRepoInterest
  • TPRP : TriPartyRepoNetting
  • TRAD : Commercial
  • TRCP : TreasuryCrossProduct
  • TREA : TreasuryPayment
  • TRFD : TrustFund
  • TRNC : TruncatedPaymentSlip
  • TRPT : RoadPricing
  • TRVC : TravellerCheque
  • UBIL : Utilities
  • UNIT : UnitTrustPurchase
  • VATX : ValueAddedTaxPayment
  • VIEW : VisionCare
  • WEBI : InternetInitiatedTransaction
  • WHLD : WithHolding
  • WTER : WaterBill
Enum"BKDF""BKFE""BKFM""BKIP""BKPP""CBLK""CDCB""CDCD""CDCS""CDDP"
{ "schema": "CODE", "value": "BKDF" }

ReferredDocumentType

schemastringrequired

Identifies the value as being either proprietary (PROPRIETARY) or as being a pre-defined code (CODE).

Enum"CODE""PROPRIETARY"
Discriminator
issuerstring<= 35 characters

Identification of the issuer of the reference document type.

valuestringrequired
  • AROI : AccountReceivableOpenItem
  • BOLD : BillOfLading
  • CINV : CommercialInvoice
  • CMCN : CommercialContract
  • CNFA : CreditNoteRelatedToFinancialAdjustment
  • CREN : CreditNote
  • DEBN : DebitNote
  • DISP : DispatchAdvice
  • DNFA : DebitNoteRelatedToFinancialAdjustment
  • HIRI : HireInvoice
  • MSIN : MeteredServiceInvoice
  • PUOR : PurchaseOrder
  • SBIN : SelfBilledInvoice
  • SOAC : StatementOfAccount
  • TSUT : TradeServicesUtilityTransaction
  • VCHR : Voucher
Enum"AROI""BOLD""CINV""CMCN""CNFA""CREN""DEBN""DISP""DNFA""HIRI"
{ "schema": "CODE", "issuer": "string", "value": "AROI" }

ReferredDocumentTypeCode

Specifies the type of referred document

schemastringrequired

Identifies the value as being either proprietary (PROPRIETARY) or as being a pre-defined code (CODE).

Enum"CODE""PROPRIETARY"
Discriminator
issuerstring<= 35 characters

Identification of the issuer of the reference document type.

valuestringrequired
  • AROI : AccountReceivableOpenItem
  • BOLD : BillOfLading
  • CINV : CommercialInvoice
  • CMCN : CommercialContract
  • CNFA : CreditNoteRelatedToFinancialAdjustment
  • CREN : CreditNote
  • DEBN : DebitNote
  • DISP : DispatchAdvice
  • DNFA : DebitNoteRelatedToFinancialAdjustment
  • HIRI : HireInvoice
  • MSIN : MeteredServiceInvoice
  • PUOR : PurchaseOrder
  • SBIN : SelfBilledInvoice
  • SOAC : StatementOfAccount
  • TSUT : TradeServicesUtilityTransaction
  • VCHR : Voucher
Enum"AROI""BOLD""CINV""CMCN""CNFA""CREN""DEBN""DISP""DNFA""HIRI"
{ "schema": "CODE", "issuer": "string", "value": "AROI" }

ReferredDocumentTypeProprietary

schemastringrequired

Identifies the value as being either proprietary (PROPRIETARY) or as being a pre-defined code (CODE).

Enum"CODE""PROPRIETARY"
Discriminator
issuerstring<= 35 characters

Identification of the issuer of the reference document type.

valuestringrequired
  • AROI : AccountReceivableOpenItem
  • BOLD : BillOfLading
  • CINV : CommercialInvoice
  • CMCN : CommercialContract
  • CNFA : CreditNoteRelatedToFinancialAdjustment
  • CREN : CreditNote
  • DEBN : DebitNote
  • DISP : DispatchAdvice
  • DNFA : DebitNoteRelatedToFinancialAdjustment
  • HIRI : HireInvoice
  • MSIN : MeteredServiceInvoice
  • PUOR : PurchaseOrder
  • SBIN : SelfBilledInvoice
  • SOAC : StatementOfAccount
  • TSUT : TradeServicesUtilityTransaction
  • VCHR : Voucher
Enum"AROI""BOLD""CINV""CMCN""CNFA""CREN""DEBN""DISP""DNFA""HIRI"
{ "schema": "CODE", "issuer": "string", "value": "AROI" }

ReferredDocument

typeobject(ReferredDocumentType)
documentIdentifierstring<= 35 characters
{ "type": { "schema": "CODE", "issuer": "string" }, "documentIdentifier": "string" }

ReferredDocumentAmount

duePayableAmountobject(Amount)
remittedAmountobject(Amount)
{ "duePayableAmount": { "value": 0.1, "currency": "string" }, "remittedAmount": { "value": 0.1, "currency": "string" } }

CreditorReferenceType

schemastringrequired

Identifies the value as being either proprietary (PROPRIETARY) or as being a pre-defined code (CODE).

Enum"CODE""PROPRIETARY"
Discriminator
issuerstring<= 35 characters

Entity that assigns the credit reference type

valuestringrequired
  • RADM (RemittanceAdviceMessage): Document is a remittance advice sent separately from the current transaction.
  • RPIN (RelatedPaymentInstruction): Document is a linked payment instruction to which the current payment instruction is related, for example, in a cover scenario.
  • FXDR (ForeignExchangeDealReference): Document is a pre-agreed or pre- arranged foreign exchange transaction to which the payment transaction refers.
  • DISP (DispatchAdvice): Document is a dispatch advice.
  • PUOR (PurchaseOrder): Document is a purchase order.
  • SCOR (StructuredCommunicationReference): Document is a structured communication reference provided by the creditor to identify the referred transaction.
Enum"RADM""RPIN""FXDR""DISP""PUOR""SCOR"
{ "schema": "CODE", "issuer": "string", "value": "RADM" }

CreditorReferenceTypeCode

Specifies the type of creditor reference.

schemastringrequired

Identifies the value as being either proprietary (PROPRIETARY) or as being a pre-defined code (CODE).

Enum"CODE""PROPRIETARY"
Discriminator
issuerstring<= 35 characters

Entity that assigns the credit reference type

valuestringrequired
  • RADM (RemittanceAdviceMessage): Document is a remittance advice sent separately from the current transaction.
  • RPIN (RelatedPaymentInstruction): Document is a linked payment instruction to which the current payment instruction is related, for example, in a cover scenario.
  • FXDR (ForeignExchangeDealReference): Document is a pre-agreed or pre- arranged foreign exchange transaction to which the payment transaction refers.
  • DISP (DispatchAdvice): Document is a dispatch advice.
  • PUOR (PurchaseOrder): Document is a purchase order.
  • SCOR (StructuredCommunicationReference): Document is a structured communication reference provided by the creditor to identify the referred transaction.
Enum"RADM""RPIN""FXDR""DISP""PUOR""SCOR"
{ "schema": "CODE", "issuer": "string", "value": "RADM" }

CreditorReferenceTypeProprietary

schemastringrequired

Identifies the value as being either proprietary (PROPRIETARY) or as being a pre-defined code (CODE).

Enum"CODE""PROPRIETARY"
Discriminator
issuerstring<= 35 characters

Entity that assigns the credit reference type

valuestringrequired
  • RADM (RemittanceAdviceMessage): Document is a remittance advice sent separately from the current transaction.
  • RPIN (RelatedPaymentInstruction): Document is a linked payment instruction to which the current payment instruction is related, for example, in a cover scenario.
  • FXDR (ForeignExchangeDealReference): Document is a pre-agreed or pre- arranged foreign exchange transaction to which the payment transaction refers.
  • DISP (DispatchAdvice): Document is a dispatch advice.
  • PUOR (PurchaseOrder): Document is a purchase order.
  • SCOR (StructuredCommunicationReference): Document is a structured communication reference provided by the creditor to identify the referred transaction.
Enum"RADM""RPIN""FXDR""DISP""PUOR""SCOR"
{ "schema": "CODE", "issuer": "string", "value": "RADM" }

CreditorReference

typeobject(CreditorReferenceType)
referencestring<= 35 characters

Unique reference, as assigned by the creditor, to unambiguously refer to the payment transaction.

{ "type": { "schema": "CODE", "issuer": "string" }, "reference": "string" }

StructuredRemittanceInformation

referredDocumentsArray of objects(ReferredDocument)
referredDocumentAmountobject(ReferredDocumentAmount)
creditorReferenceobject(CreditorReference)
originatorReferencestring<= 35 characters

An explanation of the transaction, this field may be used to capture the information which may then be displayed on the payment originator's bank statement (ie. the debtor for a credit transfer or the creditor for a direct debit). This field is not supported by all Electrum partner implementations, and will be ignored if provided in an unsupported use-case.

additionalRemittanceInformationArray of strings<= 3 items
{ "referredDocuments": [ {} ], "referredDocumentAmount": { "duePayableAmount": {}, "remittedAmount": {} }, "creditorReference": { "type": {}, "reference": "string" }, "originatorReference": "string", "additionalRemittanceInformation": [ "string" ] }

RemittanceInformation

unstructuredArray of strings
structuredArray of objects(StructuredRemittanceInformation)
{ "unstructured": [ "string" ], "structured": [ {} ] }

TaxInformation

totalAmountobject(Amount)required
totalAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
totalAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

{ "totalAmount": { "value": 0.1, "currency": "string" } }

CreditTransfer

A model containing the necessary information to request a transfer funds between a payer and a payee

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

PaymentStatusReport

An extension of BaseTransactionMessage which includes additional information pertinent to an asynchronous response message. In particular, original message identifiers.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

SchemeDeregistration

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
registeredAccountIdobject(AccountIdentifier)required
registeredAccountId.​schemastringrequired

Indicates the account identifier is an IBAN, always IBAN

Discriminator
registeredAccountId.​valuestring(IBAN)[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}required

An identifier used internationally by financial institutions to uniquely identify the account of a customer at a financial institution, as described in the latest edition of the international standard ISO 13616: 2007

participantobject(InstitutionIdentification)
{ "schema": "ZA_RPP", "registeredAccountId": { "schema": "string", "value": "string" }, "participant": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] } }

ZaRppProxyIdentifierSchemeDeregistration

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
registeredAccountIdobject(AccountIdentifier)required
registeredAccountId.​schemastringrequired

Indicates the account identifier is an IBAN, always IBAN

Discriminator
registeredAccountId.​valuestring(IBAN)[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}required

An identifier used internationally by financial institutions to uniquely identify the account of a customer at a financial institution, as described in the latest edition of the international standard ISO 13616: 2007

participantobject(InstitutionIdentification)
{ "schema": "ZA_RPP", "registeredAccountId": { "schema": "string", "value": "string" }, "participant": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] } }

IdentifierSchemeDeregistrationRequest

Holds details of an account identifier and other information required to deregister the identifier. externally with a scheme.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

BaseResponseMessage

An extension of BaseMessage which includes additional information pertinent to an asynchronous response message. In particular, original message identifiers.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

SchemeDeregistrationOutcome

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
deregistrationStatusstringrequired
Enum"ACCEPTED""REJECTED"
agentobject(InstitutionIdentification)required
agent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

agent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

agent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

agent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

agent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

agent.​branchobject(BranchIdentification)
agent.​additionalIdentificationsArray of objects(AccountIdentification)
proxyobject(NonBankingIdentifier)required
proxy.​namespacestring[ 1 .. 40 ] characters

An identifier's namespace provides a context for the identifier to distinguish different identifiers which may have the same value but be intended to identify different accounts. For example, a bank may use the same MSISDN (identifier) with different namespaces to distinguish between a customer's cheque or savings accounts.

This may be used by the following schemes:

  • ZA_RPP
proxy.​schemastring

Indicates the schema of the identifier, e.g. MOBILE, CUSTOM.

Discriminator
proxy.​valuestring(PhoneNumber)^\+[0-9]{1,3}-[0-9()+\-]{1,30}$required
reasonCodestring
  • AB06 : Timeout
  • AB07 : OfflineAgent
  • AB10 : ErrorInstructedAgent
  • AG03 : TransactionNotSupported
  • AG10 : AgentSuspended
  • AM18 : InvalidNumberOfTransactions
  • CH21 : RequiredCompulsoryElementMissing
  • DT02 : InvalidCreationDate
  • DUPL : DuplicateRequest
  • FF02 : SyntaxError
  • NAUT : NotAuthorised
  • PD01 : ProxyDomainInvalid
  • PX02 : InvalidProxy
  • PX03 : ProxyNotFound
  • PX04 : ProxyFormatInvalid
  • PX05 : Restricted Proxy
  • PX06 : Default proxy already exists
  • RC02 : InvalidBankIdentifier
  • RC08 : InvalidClearingSystemMemberIdentifier
  • RR10 : InvalidCharacterSet
  • RR12 : InvalidPartyID
Enum"AB06""AB07""AB10""AG03""AG10""AM18""CH21""DT02""DUPL""FF02"
{ "schema": "ZA_RPP", "deregistrationStatus": "ACCEPTED", "agent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "proxy": { "namespace": "string", "schema": "string" }, "reasonCode": "AB06" }

ZaRppProxyIdentifierSchemeDeregistrationOutcome

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
deregistrationStatusstringrequired
Enum"ACCEPTED""REJECTED"
agentobject(InstitutionIdentification)required
agent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

agent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

agent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

agent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

agent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

agent.​branchobject(BranchIdentification)
agent.​additionalIdentificationsArray of objects(AccountIdentification)
proxyobject(NonBankingIdentifier)required
proxy.​namespacestring[ 1 .. 40 ] characters

An identifier's namespace provides a context for the identifier to distinguish different identifiers which may have the same value but be intended to identify different accounts. For example, a bank may use the same MSISDN (identifier) with different namespaces to distinguish between a customer's cheque or savings accounts.

This may be used by the following schemes:

  • ZA_RPP
proxy.​schemastring

Indicates the schema of the identifier, e.g. MOBILE, CUSTOM.

Discriminator
proxy.​valuestring(PhoneNumber)^\+[0-9]{1,3}-[0-9()+\-]{1,30}$required
reasonCodestring
  • AB06 : Timeout
  • AB07 : OfflineAgent
  • AB10 : ErrorInstructedAgent
  • AG03 : TransactionNotSupported
  • AG10 : AgentSuspended
  • AM18 : InvalidNumberOfTransactions
  • CH21 : RequiredCompulsoryElementMissing
  • DT02 : InvalidCreationDate
  • DUPL : DuplicateRequest
  • FF02 : SyntaxError
  • NAUT : NotAuthorised
  • PD01 : ProxyDomainInvalid
  • PX02 : InvalidProxy
  • PX03 : ProxyNotFound
  • PX04 : ProxyFormatInvalid
  • PX05 : Restricted Proxy
  • PX06 : Default proxy already exists
  • RC02 : InvalidBankIdentifier
  • RC08 : InvalidClearingSystemMemberIdentifier
  • RR10 : InvalidCharacterSet
  • RR12 : InvalidPartyID
Enum"AB06""AB07""AB10""AG03""AG10""AM18""CH21""DT02""DUPL""FF02"
{ "schema": "ZA_RPP", "deregistrationStatus": "ACCEPTED", "agent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "proxy": { "namespace": "string", "schema": "string" }, "reasonCode": "AB06" }

IdentifierSchemeDeregistrationResponse

Holds details of the outcome of the deregistration of an identifier externally with a scheme.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

SchemeRegistration

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
identifierobject(NonBankingIdentifier)
participantobject(InstitutionIdentification)
{ "schema": "ZA_RPP", "identifier": { "namespace": "string", "schema": "string" }, "participant": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] } }

ZaRppProxyIdentifierSchemeRegistration

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
identifierobject(NonBankingIdentifier)
participantobject(InstitutionIdentification)
{ "schema": "ZA_RPP", "identifier": { "namespace": "string", "schema": "string" }, "participant": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] } }

IdentifierSchemeRegistrationRequest

Holds details of an account identifier and other information required to register the identifier externally with a scheme.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

SchemeRegistrationOutcome

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
registrationStatusstringrequired
Enum"ACCEPTED""REJECTED"
agentobject(InstitutionIdentification)required
agent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

agent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

agent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

agent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

agent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

agent.​branchobject(BranchIdentification)
agent.​additionalIdentificationsArray of objects(AccountIdentification)
proxyobject(NonBankingIdentifier)required
proxy.​namespacestring[ 1 .. 40 ] characters

An identifier's namespace provides a context for the identifier to distinguish different identifiers which may have the same value but be intended to identify different accounts. For example, a bank may use the same MSISDN (identifier) with different namespaces to distinguish between a customer's cheque or savings accounts.

This may be used by the following schemes:

  • ZA_RPP
proxy.​schemastring

Indicates the schema of the identifier, e.g. MOBILE, CUSTOM.

Discriminator
proxy.​valuestring(PhoneNumber)^\+[0-9]{1,3}-[0-9()+\-]{1,30}$required
reasonCodestring
  • AB06 : Timeout
  • AB07 : OfflineAgent
  • AB10 : ErrorInstructedAgent
  • AG03 : TransactionNotSupported
  • AG10 : AgentSuspended
  • AM18 : InvalidNumberOfTransactions
  • CH21 : RequiredCompulsoryElementMissing
  • DT02 : InvalidCreationDate
  • DUPL : DuplicateRequest
  • FF02 : SyntaxError
  • NAUT : NotAuthorised
  • PD01 : ProxyDomainInvalid
  • PX02 : InvalidProxy
  • PX03 : ProxyNotFound
  • PX04 : ProxyFormatInvalid
  • PX05 : Restricted Proxy
  • PX06 : Default proxy already exists
  • RC02 : InvalidBankIdentifier
  • RC08 : InvalidClearingSystemMemberIdentifier
  • RR10 : InvalidCharacterSet
  • RR12 : InvalidPartyID
Enum"AB06""AB07""AB10""AG03""AG10""AM18""CH21""DT02""DUPL""FF02"
{ "schema": "ZA_RPP", "registrationStatus": "ACCEPTED", "agent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "proxy": { "namespace": "string", "schema": "string" }, "reasonCode": "AB06" }

ZaRppProxyIdentifierSchemeRegistrationOutcome

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
registrationStatusstringrequired
Enum"ACCEPTED""REJECTED"
agentobject(InstitutionIdentification)required
agent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

agent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

agent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

agent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

agent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

agent.​branchobject(BranchIdentification)
agent.​additionalIdentificationsArray of objects(AccountIdentification)
proxyobject(NonBankingIdentifier)required
proxy.​namespacestring[ 1 .. 40 ] characters

An identifier's namespace provides a context for the identifier to distinguish different identifiers which may have the same value but be intended to identify different accounts. For example, a bank may use the same MSISDN (identifier) with different namespaces to distinguish between a customer's cheque or savings accounts.

This may be used by the following schemes:

  • ZA_RPP
proxy.​schemastring

Indicates the schema of the identifier, e.g. MOBILE, CUSTOM.

Discriminator
proxy.​valuestring(PhoneNumber)^\+[0-9]{1,3}-[0-9()+\-]{1,30}$required
reasonCodestring
  • AB06 : Timeout
  • AB07 : OfflineAgent
  • AB10 : ErrorInstructedAgent
  • AG03 : TransactionNotSupported
  • AG10 : AgentSuspended
  • AM18 : InvalidNumberOfTransactions
  • CH21 : RequiredCompulsoryElementMissing
  • DT02 : InvalidCreationDate
  • DUPL : DuplicateRequest
  • FF02 : SyntaxError
  • NAUT : NotAuthorised
  • PD01 : ProxyDomainInvalid
  • PX02 : InvalidProxy
  • PX03 : ProxyNotFound
  • PX04 : ProxyFormatInvalid
  • PX05 : Restricted Proxy
  • PX06 : Default proxy already exists
  • RC02 : InvalidBankIdentifier
  • RC08 : InvalidClearingSystemMemberIdentifier
  • RR10 : InvalidCharacterSet
  • RR12 : InvalidPartyID
Enum"AB06""AB07""AB10""AG03""AG10""AM18""CH21""DT02""DUPL""FF02"
{ "schema": "ZA_RPP", "registrationStatus": "ACCEPTED", "agent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "proxy": { "namespace": "string", "schema": "string" }, "reasonCode": "AB06" }

IdentifierSchemeRegistrationResponse

Holds details of the outcome of the registration of an identifier externally with a scheme.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

SchemeInquiry

agentobject(InstitutionIdentification)required
agent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

agent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

agent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

agent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

agent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

agent.​branchobject(BranchIdentification)
agent.​additionalIdentificationsArray of objects(AccountIdentification)
schemastringrequired
Discriminator
{ "agent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "schema": "ZA_RPP_LIST_DOMAINS" }

ZaRppListDomainsInquiry

agentobject(InstitutionIdentification)required
agent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

agent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

agent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

agent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

agent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

agent.​branchobject(BranchIdentification)
agent.​additionalIdentificationsArray of objects(AccountIdentification)
schemastringrequired
Discriminator
{ "agent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "schema": "ZA_RPP_LIST_DOMAINS" }

ZaRppListParticipantsInquiry

agentobject(InstitutionIdentification)required
agent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

agent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

agent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

agent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

agent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

agent.​branchobject(BranchIdentification)
agent.​additionalIdentificationsArray of objects(AccountIdentification)
schemastringrequired
Discriminator
{ "agent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "schema": "ZA_RPP_LIST_DOMAINS" }

SchemeInquiryRequest

A model containing the foundational elements shared across messages and generally expected in a message used during processing with the Electrum Regulated Payments API.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

SchemeReport

agentobject(InstitutionIdentification)required
agent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

agent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

agent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

agent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

agent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

agent.​branchobject(BranchIdentification)
agent.​additionalIdentificationsArray of objects(AccountIdentification)
domainsArray of objects(ZaInstitutionIdentificationWithDomain)required
domains[].​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

domains[].​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

domains[].​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

domains[].​memberIdstring<= 35 characters

Identification of a member of a clearing system.

domains[].​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

domains[].​branchobject(BranchIdentification)
domains[].​additionalIdentificationsArray of objects(AccountIdentification)
domains[].​domainstring<= 35 characters

A BankservAfrica-specific field requirement that associates this institution with a specific "domain"

  • which is essentially a type of namespace. This is the equivalent of the Electrum 'namespace' found on Non-Banking Identifiers, such as a MobileIdentifier
schemastringrequired
Discriminator
{ "agent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "domains": [ {} ], "schema": "ZA_RPP_LIST_DOMAINS" }

ZaInstitutionIdentificationWithDomain

bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

memberIdstring<= 35 characters

Identification of a member of a clearing system.

namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

branchobject(BranchIdentification)
additionalIdentificationsArray of objects(AccountIdentification)
domainstring<= 35 characters

A BankservAfrica-specific field requirement that associates this institution with a specific "domain"

  • which is essentially a type of namespace. This is the equivalent of the Electrum 'namespace' found on Non-Banking Identifiers, such as a MobileIdentifier
{ "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": { "identification": "string", "name": "string", "address": {} }, "additionalIdentifications": [ {} ], "domain": "string" }

ZaRppListDomainsSchemeReport

agentobject(InstitutionIdentification)required
agent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

agent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

agent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

agent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

agent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

agent.​branchobject(BranchIdentification)
agent.​additionalIdentificationsArray of objects(AccountIdentification)
domainsArray of objects(ZaInstitutionIdentificationWithDomain)required
domains[].​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

domains[].​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

domains[].​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

domains[].​memberIdstring<= 35 characters

Identification of a member of a clearing system.

domains[].​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

domains[].​branchobject(BranchIdentification)
domains[].​additionalIdentificationsArray of objects(AccountIdentification)
domains[].​domainstring<= 35 characters

A BankservAfrica-specific field requirement that associates this institution with a specific "domain"

  • which is essentially a type of namespace. This is the equivalent of the Electrum 'namespace' found on Non-Banking Identifiers, such as a MobileIdentifier
schemastringrequired
Discriminator
{ "agent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "domains": [ {} ], "schema": "ZA_RPP_LIST_DOMAINS" }

ZaRppServices

string(ZaRppServices)
Enum"PBPX""PBAC""RTP-PBPX""RTP-PBAC"
"PBPX"

ZaInstitutionDomainDetails

domainstring[ 1 .. 35 ] charactersrequired

A BankservAfrica-specific field requirement that associates this institution with a specific "domain"

  • which is essentially a type of namespace. This is the equivalent of the Electrum 'namespace' found on Non-Banking Identifiers, such as a MobileIdentifier
namestring[ 1 .. 100 ] charactersrequired

Name by which an institution is known and which is usually used to identify that institution

servicesArray of strings(ZaRppServices)>= 0 itemsrequired
Items Enum"PBPX""PBAC""RTP-PBPX""RTP-PBAC"
{ "domain": "string", "name": "string", "services": [ "PBPX" ] }

ParticipantIdentificationDetails

bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

memberIdstring[ 1 .. 35 ] characters

Identification of a member of a clearing system.

namestring<= 140 charactersrequired

Name by which an institution is known and which is usually used to identify that institution.

branchobject(BranchIdentification)
servicesArray of strings(ZaRppServices)>= 0 itemsrequired
Items Enum"PBPX""PBAC""RTP-PBPX""RTP-PBAC"
sponsoringAgentBicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

sponsoringAgentNamestring<= 100 characters

Name by which an institution is known and which is usually used to identify that institution.

domainDetailsArray of objects(ZaInstitutionDomainDetails)
{ "bicfi": "string", "memberId": "string", "name": "string", "branch": { "identification": "string", "name": "string", "address": {} }, "services": [ "PBPX" ], "sponsoringAgentBicfi": "string", "sponsoringAgentName": "string", "domainDetails": [ {} ] }

ZaRppListParticipantsSchemeReport

agentobject(InstitutionIdentification)required
agent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

agent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

agent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

agent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

agent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

agent.​branchobject(BranchIdentification)
agent.​additionalIdentificationsArray of objects(AccountIdentification)
domainsArray of objects(ZaInstitutionIdentificationWithDomain)required
domains[].​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

domains[].​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

domains[].​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

domains[].​memberIdstring<= 35 characters

Identification of a member of a clearing system.

domains[].​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

domains[].​branchobject(BranchIdentification)
domains[].​additionalIdentificationsArray of objects(AccountIdentification)
domains[].​domainstring<= 35 characters

A BankservAfrica-specific field requirement that associates this institution with a specific "domain"

  • which is essentially a type of namespace. This is the equivalent of the Electrum 'namespace' found on Non-Banking Identifiers, such as a MobileIdentifier
schemastringrequired
Discriminator
{ "agent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "domains": [ {} ], "schema": "ZA_RPP_LIST_DOMAINS" }

SchemeInquiryResponse

An extension of BaseMessage which includes additional information pertinent to an asynchronous response message. In particular, original message identifiers.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

DeterminationRequest

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
instructingAgentobject(InstitutionIdentification)
instructedAgentobject(InstitutionIdentification)
requestorobject(ZaRppRequestor)
identifierany(ZaRppIdentifier)required
identifier.​namespacestring[ 1 .. 40 ] characters

An identifier's namespace provides a context for the identifier to distinguish different identifiers which may have the same value but be intended to identify different accounts. For example, a bank may use the same MSISDN (identifier) with different namespaces to distinguish between a customer's cheque or savings accounts.

This may be used by the following schemes:

  • ZA_RPP
identifier.​schemastring

Indicates the schema of the identifier, e.g. MOBILE, CUSTOM.

Discriminator
identifier.​valuestring(PhoneNumber)^\+[0-9]{1,3}-[0-9()+\-]{1,30}$required
uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference. This identifier remains the same for all messages related to the same transaction.

verificationIdentificationstring[ 1 .. 35 ] charactersrequired

Unique identifier for this specific verification request.

{ "schema": "ZA_RPP", "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "requestor": { "schema": "string" }, "identifier": { "namespace": "string", "schema": "string", "value": "string" }, "uetr": "string", "verificationIdentification": "string" }

ZaRppRequestor

schemastring
Discriminator
legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

addressobject(PostalAddress)
contactDetailsobject(ContactDetails)
countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

{ "schema": "PARTY", "legalName": "string", "knownAsName": "string", "address": { "addressType": "ADDR", "department": "string", "streetName": "string", "buildingNumber": "string", "buildingName": "string", "floor": "string", "postBox": "string", "postCode": "string", "townName": "string", "townLocationName": "string", "districtName": "string", "countrySubDivision": "string", "country": "string", "addressLine": [] }, "contactDetails": { "phoneNumber": "string", "mobileNumber": "string", "emailAddress": "user@example.com" }, "countryOfResidence": "string", "identification": { "schema": "string", "identifiers": [] } }

PartyWithSchema

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

schemastring
Discriminator
legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

addressobject(PostalAddress)
contactDetailsobject(ContactDetails)
countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

{ "schema": "PARTY", "legalName": "string", "knownAsName": "string", "address": { "addressType": "ADDR", "department": "string", "streetName": "string", "buildingNumber": "string", "buildingName": "string", "floor": "string", "postBox": "string", "postCode": "string", "townName": "string", "townLocationName": "string", "districtName": "string", "countrySubDivision": "string", "country": "string", "addressLine": [] }, "contactDetails": { "phoneNumber": "string", "mobileNumber": "string", "emailAddress": "user@example.com" }, "countryOfResidence": "string", "identification": { "schema": "string", "identifiers": [] } }

InstitutionIdentificationWithSchemaAndDomain

schemastring
Discriminator
legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

addressobject(PostalAddress)
contactDetailsobject(ContactDetails)
countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

{ "schema": "PARTY", "legalName": "string", "knownAsName": "string", "address": { "addressType": "ADDR", "department": "string", "streetName": "string", "buildingNumber": "string", "buildingName": "string", "floor": "string", "postBox": "string", "postCode": "string", "townName": "string", "townLocationName": "string", "districtName": "string", "countrySubDivision": "string", "country": "string", "addressLine": [] }, "contactDetails": { "phoneNumber": "string", "mobileNumber": "string", "emailAddress": "user@example.com" }, "countryOfResidence": "string", "identification": { "schema": "string", "identifiers": [] } }

ZaRppIdentifier

namespacestring[ 1 .. 40 ] characters

An identifier's namespace provides a context for the identifier to distinguish different identifiers which may have the same value but be intended to identify different accounts. For example, a bank may use the same MSISDN (identifier) with different namespaces to distinguish between a customer's cheque or savings accounts.

This may be used by the following schemes:

  • ZA_RPP
schemastring

Indicates the schema of the identifier, e.g. MOBILE, CUSTOM.

Discriminator
valuestring(PhoneNumber)^\+[0-9]{1,3}-[0-9()+\-]{1,30}$required
{ "namespace": "string", "schema": "MOBILE", "value": "string" }

ZaRppDeterminationRequest

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
instructingAgentobject(InstitutionIdentification)
instructedAgentobject(InstitutionIdentification)
requestorobject(ZaRppRequestor)
identifierany(ZaRppIdentifier)required
identifier.​namespacestring[ 1 .. 40 ] characters

An identifier's namespace provides a context for the identifier to distinguish different identifiers which may have the same value but be intended to identify different accounts. For example, a bank may use the same MSISDN (identifier) with different namespaces to distinguish between a customer's cheque or savings accounts.

This may be used by the following schemes:

  • ZA_RPP
identifier.​schemastring

Indicates the schema of the identifier, e.g. MOBILE, CUSTOM.

Discriminator
identifier.​valuestring(PhoneNumber)^\+[0-9]{1,3}-[0-9()+\-]{1,30}$required
uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference. This identifier remains the same for all messages related to the same transaction.

verificationIdentificationstring[ 1 .. 35 ] charactersrequired

Unique identifier for this specific verification request.

{ "schema": "ZA_RPP", "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "requestor": { "schema": "string" }, "identifier": { "namespace": "string", "schema": "string", "value": "string" }, "uetr": "string", "verificationIdentification": "string" }

IdentifierDeterminationRequest

A model containing the foundational elements shared across messages and generally expected in a message used during processing with the Electrum Regulated Payments API.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

IdentifierDeterminationReport

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
instructingAgentobject(InstitutionIdentification)
instructedAgentobject(InstitutionIdentification)
originalUetrstring(UUID)required

The universally unique identifier provided in the original request as an end-to-end reference. This identifier remains the same for all messages related to the same transaction.

originalRequestorobject(ZaRppRequestor)
reportInformationobject(ZaRppIdentificationReport)required

A report providing information from the lookup of a proxy in the context of the ZA RPP Payment Scheme.

This report returns information required to proceed with the clearing of funds through the use of the proxy (identifier) provided in the identifier determination request. Specifically, this report will provide the outcome of the lookup of said identifier, indication whether it is valid or not, as well as provide the name ("known as name") of the creditor, and the legal name of the creditor (both of these are mandatory in the ZA RPP Payment Scheme, despite not being mandatory in this API), namely:

  • accountOwner.knownAsName
  • accountOwner.legalName
reportInformation.​transactionLimitobject(Amount)
reportInformation.​accountOwnerobject(Party)

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

reportInformation.​outcomestringrequired
Enum"SUCCESSFUL""FAILED"
reportInformation.​accountInformationobject(ZaRppAccountInformation)
reportInformation.​accountAgentobject(InstitutionIdentification)
reportInformation.​reasonCodestring[ 1 .. 4 ] characters
  • AB06 : Transaction stopped due to timeout at the Instructed Agent.
  • AB07 : Agent of message is not online. Generic usage if it cannot be determined who exactly is not online.
  • AB10 : An error occured at the instructed agent
  • AC06 : Account specified is blocked, prohibiting posting of transactions against it
  • AG01 : Transaction forbidden on this type of account
  • AG03 : Transaction type not supported/authorized on this account.
  • AG10 : Agent of message is suspended from the Real Time Payment system. Generic usage if it cannot be determined who exactly is suspended.
  • AGNT : Agent in the payment workflow is incorrect
  • AM02 : Specific transaction/message amount is greater than allowed maximum (e.g. payee proxy participant service limit exceeded
  • CH21 : Mandatory element is missing .
  • DT02 : Invalid creation date and time in Group Header (eg, historic date) .
  • DU03 : Transaction is not unique.
  • DUPL : Request is a duplicate of another request
  • FF02 : Syntax error reason is provided as narrative information in the additional reason information.
  • FF08 : End to End Id missing or invalid .
  • NAUT : Permission to be processed is not granted
  • NOOR : Original SCT never received
  • PD01 : Domain not found or invalid
  • PD02 : Suspended Domain provided is suspended pending investigation
  • BE23 : Phone number or email address, or any other proxy, used as the account proxy is unknown or invalid.
  • PX03 : Proxy not found in central repository
  • PX04 : Format of proxy invalid
  • RC05 : BIC identifier is invalid or missing.
  • RC08 : ClearingSystemMemberidentifier is invalid or missing. Generic usage if cannot specify between debit or credit account .
  • RR10 : Character set supplied not valid for the country and payment type.
  • RR12 : Invalid or missing identification required within a particular country or payment type.
  • RF01 : Transaction reference is not unique within the message.
  • AC16 : Account in Sequestration
  • AC17 : Account in Liquidation
  • AC04 : Account Closed
  • AC01 : Format of the account number specified is not correct
  • MD07 : Account Holder Deceased
  • NOCM : Customer account is not compliant with regulatory requirements, for example FICA (in South Africa) or any other regulatory requirements which render an account inactive for certain processing.
  • BE01 : Identification of end customer is not consistent with associated account number. (formerly CreditorConsistency).
originalVerificationIdentificationstring[ 1 .. 35 ] charactersrequired

The request.verificationIdentification as provided in the original request.

instructionForCreatorAgentArray of objects(Instruction)>= 0 items

Further information related to the proxy resolution response, provided by the Operator, and intended for the creator agent.

{ "schema": "ZA_RPP", "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "originalUetr": "string", "originalRequestor": { "schema": "string" }, "reportInformation": { "transactionLimit": {}, "accountOwner": {}, "outcome": "SUCCESSFUL", "accountInformation": {}, "accountAgent": {}, "reasonCode": "stri" }, "originalVerificationIdentification": "string", "instructionForCreatorAgent": [ {} ] }

ZaRppAccountInformation

traditionalIdentifierobject(BankingIdentifier)required
traditionalIdentifier.​schemastringrequired

Indicates the account identifier is an IBAN, always IBAN

Discriminator
traditionalIdentifier.​valuestring(IBAN)[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}required

An identifier used internationally by financial institutions to uniquely identify the account of a customer at a financial institution, as described in the latest edition of the international standard ISO 13616: 2007

traditionalAccountTypeobject(AccountType)
proxyobject(NonBankingIdentifier)
creationDatestring(date-time)required

The date when the account referenced by this proxy identifier was created.

{ "traditionalIdentifier": { "schema": "string", "value": "string" }, "traditionalAccountType": { "schema": "string", "value": "CACC" }, "proxy": { "namespace": "string", "schema": "string" }, "creationDate": "2019-08-24T14:15:22Z" }

ZaRppIdentificationReport

A report providing information from the lookup of a proxy in the context of the ZA RPP Payment Scheme.

This report returns information required to proceed with the clearing of funds through the use of the proxy (identifier) provided in the identifier determination request. Specifically, this report will provide the outcome of the lookup of said identifier, indication whether it is valid or not, as well as provide the name ("known as name") of the creditor, and the legal name of the creditor (both of these are mandatory in the ZA RPP Payment Scheme, despite not being mandatory in this API), namely:

  • accountOwner.knownAsName
  • accountOwner.legalName
transactionLimitobject(Amount)
accountOwnerobject(Party)

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

outcomestringrequired
Enum"SUCCESSFUL""FAILED"
accountInformationobject(ZaRppAccountInformation)
accountAgentobject(InstitutionIdentification)
reasonCodestring[ 1 .. 4 ] characters
  • AB06 : Transaction stopped due to timeout at the Instructed Agent.
  • AB07 : Agent of message is not online. Generic usage if it cannot be determined who exactly is not online.
  • AB10 : An error occured at the instructed agent
  • AC06 : Account specified is blocked, prohibiting posting of transactions against it
  • AG01 : Transaction forbidden on this type of account
  • AG03 : Transaction type not supported/authorized on this account.
  • AG10 : Agent of message is suspended from the Real Time Payment system. Generic usage if it cannot be determined who exactly is suspended.
  • AGNT : Agent in the payment workflow is incorrect
  • AM02 : Specific transaction/message amount is greater than allowed maximum (e.g. payee proxy participant service limit exceeded
  • CH21 : Mandatory element is missing .
  • DT02 : Invalid creation date and time in Group Header (eg, historic date) .
  • DU03 : Transaction is not unique.
  • DUPL : Request is a duplicate of another request
  • FF02 : Syntax error reason is provided as narrative information in the additional reason information.
  • FF08 : End to End Id missing or invalid .
  • NAUT : Permission to be processed is not granted
  • NOOR : Original SCT never received
  • PD01 : Domain not found or invalid
  • PD02 : Suspended Domain provided is suspended pending investigation
  • BE23 : Phone number or email address, or any other proxy, used as the account proxy is unknown or invalid.
  • PX03 : Proxy not found in central repository
  • PX04 : Format of proxy invalid
  • RC05 : BIC identifier is invalid or missing.
  • RC08 : ClearingSystemMemberidentifier is invalid or missing. Generic usage if cannot specify between debit or credit account .
  • RR10 : Character set supplied not valid for the country and payment type.
  • RR12 : Invalid or missing identification required within a particular country or payment type.
  • RF01 : Transaction reference is not unique within the message.
  • AC16 : Account in Sequestration
  • AC17 : Account in Liquidation
  • AC04 : Account Closed
  • AC01 : Format of the account number specified is not correct
  • MD07 : Account Holder Deceased
  • NOCM : Customer account is not compliant with regulatory requirements, for example FICA (in South Africa) or any other regulatory requirements which render an account inactive for certain processing.
  • BE01 : Identification of end customer is not consistent with associated account number. (formerly CreditorConsistency).
{ "transactionLimit": { "value": 0.1, "currency": "string" }, "accountOwner": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "outcome": "SUCCESSFUL", "accountInformation": { "traditionalIdentifier": {}, "traditionalAccountType": {}, "proxy": {}, "creationDate": "2019-08-24T14:15:22Z" }, "accountAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "reasonCode": "stri" }

ZaRppIdentifierDeterminationReport

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
instructingAgentobject(InstitutionIdentification)
instructedAgentobject(InstitutionIdentification)
originalUetrstring(UUID)required

The universally unique identifier provided in the original request as an end-to-end reference. This identifier remains the same for all messages related to the same transaction.

originalRequestorobject(ZaRppRequestor)
reportInformationobject(ZaRppIdentificationReport)required

A report providing information from the lookup of a proxy in the context of the ZA RPP Payment Scheme.

This report returns information required to proceed with the clearing of funds through the use of the proxy (identifier) provided in the identifier determination request. Specifically, this report will provide the outcome of the lookup of said identifier, indication whether it is valid or not, as well as provide the name ("known as name") of the creditor, and the legal name of the creditor (both of these are mandatory in the ZA RPP Payment Scheme, despite not being mandatory in this API), namely:

  • accountOwner.knownAsName
  • accountOwner.legalName
reportInformation.​transactionLimitobject(Amount)
reportInformation.​accountOwnerobject(Party)

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

reportInformation.​outcomestringrequired
Enum"SUCCESSFUL""FAILED"
reportInformation.​accountInformationobject(ZaRppAccountInformation)
reportInformation.​accountAgentobject(InstitutionIdentification)
reportInformation.​reasonCodestring[ 1 .. 4 ] characters
  • AB06 : Transaction stopped due to timeout at the Instructed Agent.
  • AB07 : Agent of message is not online. Generic usage if it cannot be determined who exactly is not online.
  • AB10 : An error occured at the instructed agent
  • AC06 : Account specified is blocked, prohibiting posting of transactions against it
  • AG01 : Transaction forbidden on this type of account
  • AG03 : Transaction type not supported/authorized on this account.
  • AG10 : Agent of message is suspended from the Real Time Payment system. Generic usage if it cannot be determined who exactly is suspended.
  • AGNT : Agent in the payment workflow is incorrect
  • AM02 : Specific transaction/message amount is greater than allowed maximum (e.g. payee proxy participant service limit exceeded
  • CH21 : Mandatory element is missing .
  • DT02 : Invalid creation date and time in Group Header (eg, historic date) .
  • DU03 : Transaction is not unique.
  • DUPL : Request is a duplicate of another request
  • FF02 : Syntax error reason is provided as narrative information in the additional reason information.
  • FF08 : End to End Id missing or invalid .
  • NAUT : Permission to be processed is not granted
  • NOOR : Original SCT never received
  • PD01 : Domain not found or invalid
  • PD02 : Suspended Domain provided is suspended pending investigation
  • BE23 : Phone number or email address, or any other proxy, used as the account proxy is unknown or invalid.
  • PX03 : Proxy not found in central repository
  • PX04 : Format of proxy invalid
  • RC05 : BIC identifier is invalid or missing.
  • RC08 : ClearingSystemMemberidentifier is invalid or missing. Generic usage if cannot specify between debit or credit account .
  • RR10 : Character set supplied not valid for the country and payment type.
  • RR12 : Invalid or missing identification required within a particular country or payment type.
  • RF01 : Transaction reference is not unique within the message.
  • AC16 : Account in Sequestration
  • AC17 : Account in Liquidation
  • AC04 : Account Closed
  • AC01 : Format of the account number specified is not correct
  • MD07 : Account Holder Deceased
  • NOCM : Customer account is not compliant with regulatory requirements, for example FICA (in South Africa) or any other regulatory requirements which render an account inactive for certain processing.
  • BE01 : Identification of end customer is not consistent with associated account number. (formerly CreditorConsistency).
originalVerificationIdentificationstring[ 1 .. 35 ] charactersrequired

The request.verificationIdentification as provided in the original request.

instructionForCreatorAgentArray of objects(Instruction)>= 0 items

Further information related to the proxy resolution response, provided by the Operator, and intended for the creator agent.

{ "schema": "ZA_RPP", "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "originalUetr": "string", "originalRequestor": { "schema": "string" }, "reportInformation": { "transactionLimit": {}, "accountOwner": {}, "outcome": "SUCCESSFUL", "accountInformation": {}, "accountAgent": {}, "reasonCode": "stri" }, "originalVerificationIdentification": "string", "instructionForCreatorAgent": [ {} ] }

IdentifierDeterminationResponse

An extension of BaseMessage which includes additional information pertinent to an asynchronous response message. In particular, original message identifiers.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

CurrencyCode

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

string(CurrencyCode)^[A-Z]{3}$

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

"string"

AccountStatusCode

A set of codes that describe the status of an account

string(AccountStatusCode)

A set of codes that describe the status of an account

Enum"ENABLED""DISABLED""DELETED"
"ENABLED"

Restriction

restrictionTypestringrequired

A value that represents the type of this restriction. Used for processing purposes.

Enum"NO_CREDITS""NO_DEBITS"
validFromstring(date-time)required

The moment in time from which (i.e. at this point and after) the restriction is applicable.

validUntilstring(date-time)

The moment in time from which (i.e. after this point) the restriction is no longer applicable.

{ "restrictionType": "NO_CREDITS", "validFrom": "2019-08-24T14:15:22Z", "validUntil": "2019-08-24T14:15:22Z" }

Account

An account within the Electrum Account mirror. Note that the primaryIdentification is permanent and immutable.

typeobject(AccountType)
accountNamestring<= 40 characters
currencystring(CurrencyCode)^[A-Z]{3}$

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

openingDatestring(date-time)

Date and time at which the account was established.

statusstring(AccountStatusCode)

A set of codes that describe the status of an account

Enum"ENABLED""DISABLED""DELETED"
restrictionsArray of objects(Restriction)
additionalIdentificationsArray of objects(AccountIdentification)
primaryIdentificationobject(AccountIdentification)required

Holds details pertaining to an identifier of an account or store of value.

primaryIdentification.​identifierobject(AccountIdentifier)required
primaryIdentification.​identifier.​schemastringrequired

Indicates the account identifier is an IBAN, always IBAN

Discriminator
primaryIdentification.​identifier.​valuestring(IBAN)[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}required

An identifier used internationally by financial institutions to uniquely identify the account of a customer at a financial institution, as described in the latest edition of the international standard ISO 13616: 2007

primaryIdentification.​accountKnownAsstring<= 40 characters

A name or label of the account.

primaryIdentification.​registeredSchemesArray of strings(PaymentSchemeName)

The list of schemes with which the identifier is registered.

Items Enum"ZA_RTC""ZA_RPP""ZA_EFT"
{ "type": { "schema": "string", "value": "CACC" }, "accountName": "string", "currency": "string", "openingDate": "2019-08-24T14:15:22Z", "status": "ENABLED", "restrictions": [ {} ], "additionalIdentifications": [ {} ], "primaryIdentification": { "identifier": {}, "accountKnownAs": "string", "registeredSchemes": [] } }

AccountOwner

Contains information detailing the owner of an account, which can be either a person or organisation.

schemastringrequired

Defines the type of owner.

Enum"ORGANISATION""INDIVIDUAL"
Discriminator
recordIdentifierstring[ 1 .. 50 ] charactersrequired

A unique identifier used to identify this Account Owner record. This is distinct from the identification of the Account Owner, which may or may not be unique within this system, but which is typically used for identification outside of the system, such as passport numbers or national identification numbers. This identifier is used exclusively to identify the owner within this system.

nameobject(OrganisationName)

Name of the organisation.

identifiersArray of objects(OrganisationIdentifier)
addressobject(PostalAddress)
contactDetailsobject(ContactDetails)
countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

{ "schema": "ORGANISATION", "recordIdentifier": "string", "name": { "tradingAs": "string", "legalEntityName": "string" }, "identifiers": [ {} ], "address": { "addressType": "ADDR", "department": "string", "streetName": "string", "buildingNumber": "string", "buildingName": "string", "floor": "string", "postBox": "string", "postCode": "string", "townName": "string", "townLocationName": "string", "districtName": "string", "countrySubDivision": "string", "country": "string", "addressLine": [] }, "contactDetails": { "phoneNumber": "string", "mobileNumber": "string", "emailAddress": "user@example.com" }, "countryOfResidence": "string" }

OrganisationName

Name of the organisation.

tradingAsstring[ 1 .. 140 ] characters

Name of the organisation.

legalEntityNamestring[ 1 .. 140 ] characters

The legal name of the organisation.

{ "tradingAs": "string", "legalEntityName": "string" }

OrganisationAccountOwner

Contains information detailing the owner of an account, which can be either a person or organisation.

schemastringrequired

Defines the type of owner.

Enum"ORGANISATION""INDIVIDUAL"
Discriminator
recordIdentifierstring[ 1 .. 50 ] charactersrequired

A unique identifier used to identify this Account Owner record. This is distinct from the identification of the Account Owner, which may or may not be unique within this system, but which is typically used for identification outside of the system, such as passport numbers or national identification numbers. This identifier is used exclusively to identify the owner within this system.

nameobject(OrganisationName)

Name of the organisation.

identifiersArray of objects(OrganisationIdentifier)
addressobject(PostalAddress)
contactDetailsobject(ContactDetails)
countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

{ "schema": "ORGANISATION", "recordIdentifier": "string", "name": { "tradingAs": "string", "legalEntityName": "string" }, "identifiers": [ {} ], "address": { "addressType": "ADDR", "department": "string", "streetName": "string", "buildingNumber": "string", "buildingName": "string", "floor": "string", "postBox": "string", "postCode": "string", "townName": "string", "townLocationName": "string", "districtName": "string", "countrySubDivision": "string", "country": "string", "addressLine": [] }, "contactDetails": { "phoneNumber": "string", "mobileNumber": "string", "emailAddress": "user@example.com" }, "countryOfResidence": "string" }

PersonName

Name of the person.

titlestring<= 70 characters

Title of the person.

initialsstring<= 70 characters

Initials of the person.

firstNamestring<= 70 characters

Given name of the person.

lastNamestring<= 70 characters

Family name of the person.

additionalNamesstring<= 140 characters

Additional names of the person.

knownAsstring<= 70 charactersrequired

A name that the person is known by.

{ "title": "string", "initials": "string", "firstName": "string", "lastName": "string", "additionalNames": "string", "knownAs": "string" }

PersonAccountOwner

Contains information detailing the owner of an account, which can be either a person or organisation.

schemastringrequired

Defines the type of owner.

Enum"ORGANISATION""INDIVIDUAL"
Discriminator
recordIdentifierstring[ 1 .. 50 ] charactersrequired

A unique identifier used to identify this Account Owner record. This is distinct from the identification of the Account Owner, which may or may not be unique within this system, but which is typically used for identification outside of the system, such as passport numbers or national identification numbers. This identifier is used exclusively to identify the owner within this system.

nameobject(OrganisationName)

Name of the organisation.

identifiersArray of objects(OrganisationIdentifier)
addressobject(PostalAddress)
contactDetailsobject(ContactDetails)
countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

{ "schema": "ORGANISATION", "recordIdentifier": "string", "name": { "tradingAs": "string", "legalEntityName": "string" }, "identifiers": [ {} ], "address": { "addressType": "ADDR", "department": "string", "streetName": "string", "buildingNumber": "string", "buildingName": "string", "floor": "string", "postBox": "string", "postCode": "string", "townName": "string", "townLocationName": "string", "districtName": "string", "countrySubDivision": "string", "country": "string", "addressLine": [] }, "contactDetails": { "phoneNumber": "string", "mobileNumber": "string", "emailAddress": "user@example.com" }, "countryOfResidence": "string" }

AccountUpdateRequest

A model containing the foundational elements shared across messages and generally expected in a message used during processing with the Electrum Regulated Payments API.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

AccountAdditionalIdUpdateRequest

A model containing the foundational elements shared across messages and generally expected in a message used during processing with the Electrum Regulated Payments API.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

ZaEftDirectDebitPaymentScheme

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
schemeDataobject(ZaEftSchemeData)required
schemeData.​userReferencestring<= 30 charactersrequired

An explanation of an EFT transaction, which will be printed on the debtor's statement for direct debits or the creditor's statement for credit transfers. Note that when populating a value for a direct debit, the first 10 characters must contain the Banks user code as configured at Bankserv. If configured, Electrum will populate this value automatically, in which case at most 20 characters should be used as a reference to avoid truncation.

schemeData.​shortenedDebtorAccountNumberstring(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

schemeData.​shortenedCreditorAccountNumberstring(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

{ "schema": "ZA_RTC", "schemeData": { "userReference": "string", "shortenedDebtorAccountNumber": "stringstrin", "shortenedCreditorAccountNumber": "stringstrin" } }

DirectDebitPaymentScheme

Designates which scheme a direct debit is associated with and describes scheme-specific information for the direct debit.

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
schemeDataobject(ZaEftSchemeData)required
schemeData.​userReferencestring<= 30 charactersrequired

An explanation of an EFT transaction, which will be printed on the debtor's statement for direct debits or the creditor's statement for credit transfers. Note that when populating a value for a direct debit, the first 10 characters must contain the Banks user code as configured at Bankserv. If configured, Electrum will populate this value automatically, in which case at most 20 characters should be used as a reference to avoid truncation.

schemeData.​shortenedDebtorAccountNumberstring(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

schemeData.​shortenedCreditorAccountNumberstring(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

{ "schema": "ZA_EFT", "schemeData": { "userReference": "string", "shortenedDebtorAccountNumber": "stringstrin", "shortenedCreditorAccountNumber": "stringstrin" } }

SequenceTypeCode

Identifies the direct debit sequence:

  • FRST : First collection of a series of direct debit instructions.
  • RCUR : Direct debit instruction where the debtor's authorisation is used for regular direct debit transactions initiated by the creditor.
  • FNAL : Final collection of a series of direct debit instructions.
  • OOFF : Direct debit instruction where the debtor's authorisation is used to initiate one single direct debit transaction.
  • RPRE : Collection used to represent previously reversed or returned direct debit transactions.
string(SequenceTypeCode)

Identifies the direct debit sequence:

  • FRST : First collection of a series of direct debit instructions.
  • RCUR : Direct debit instruction where the debtor's authorisation is used for regular direct debit transactions initiated by the creditor.
  • FNAL : Final collection of a series of direct debit instructions.
  • OOFF : Direct debit instruction where the debtor's authorisation is used to initiate one single direct debit transaction.
  • RPRE : Collection used to represent previously reversed or returned direct debit transactions.
Enum"FRST""RCUR""FNAL""OOFF""RPRE"
"FRST"

MonthlyFrequency

Base model for payment transaction frequencies expressed in terms of days of the month. Not expected to be used directly; see MonthlyFrequency, QuarterlyFrequency, BiannualFrequency and YearlyFrequency.

schemastringrequired
Enum"MonthlyFrequency""QuarterlyFrequency""BiannualFrequency""YearlyFrequency"
Discriminator
dayOfMonthinteger[ 1 .. 31 ]required

Specifies the day of the month on which the payment transaction is to be processed. NOTE: A value of 31 will be interpreted as the last day of the month.

{ "schema": "MonthlyFrequency", "dayOfMonth": 1 }

DayOfMonthBasedFrequency

Base model for payment transaction frequencies expressed in terms of days of the month. Not expected to be used directly; see MonthlyFrequency, QuarterlyFrequency, BiannualFrequency and YearlyFrequency.

schemastringrequired
Enum"MonthlyFrequency""QuarterlyFrequency""BiannualFrequency""YearlyFrequency"
Discriminator
dayOfMonthinteger[ 1 .. 31 ]required

Specifies the day of the month on which the payment transaction is to be processed. NOTE: A value of 31 will be interpreted as the last day of the month.

{ "schema": "MonthlyFrequency", "dayOfMonth": 1 }

QuarterlyFrequency

Base model for payment transaction frequencies expressed in terms of days of the month. Not expected to be used directly; see MonthlyFrequency, QuarterlyFrequency, BiannualFrequency and YearlyFrequency.

schemastringrequired
Enum"MonthlyFrequency""QuarterlyFrequency""BiannualFrequency""YearlyFrequency"
Discriminator
dayOfMonthinteger[ 1 .. 31 ]required

Specifies the day of the month on which the payment transaction is to be processed. NOTE: A value of 31 will be interpreted as the last day of the month.

{ "schema": "MonthlyFrequency", "dayOfMonth": 1 }

BiannualFrequency

Base model for payment transaction frequencies expressed in terms of days of the month. Not expected to be used directly; see MonthlyFrequency, QuarterlyFrequency, BiannualFrequency and YearlyFrequency.

schemastringrequired
Enum"MonthlyFrequency""QuarterlyFrequency""BiannualFrequency""YearlyFrequency"
Discriminator
dayOfMonthinteger[ 1 .. 31 ]required

Specifies the day of the month on which the payment transaction is to be processed. NOTE: A value of 31 will be interpreted as the last day of the month.

{ "schema": "MonthlyFrequency", "dayOfMonth": 1 }

YearlyFrequency

Base model for payment transaction frequencies expressed in terms of days of the month. Not expected to be used directly; see MonthlyFrequency, QuarterlyFrequency, BiannualFrequency and YearlyFrequency.

schemastringrequired
Enum"MonthlyFrequency""QuarterlyFrequency""BiannualFrequency""YearlyFrequency"
Discriminator
dayOfMonthinteger[ 1 .. 31 ]required

Specifies the day of the month on which the payment transaction is to be processed. NOTE: A value of 31 will be interpreted as the last day of the month.

{ "schema": "MonthlyFrequency", "dayOfMonth": 1 }

MonthlyRuleFrequency

Specifies the frequency of a monthly payment transaction by a special rule, e.g. "the last monday of the month".

schemastringrequired
Value"MonthlyRuleFrequency"
rulestringrequired

Specifies the day of the month on which the payment transaction is to be processed.

  • LAST_MONDAY: Last Monday of the month.
  • LAST_TUESDAY: Last Tuesday of the month.
  • LAST_WEDNESDAY: Last Wednesday of the month.
  • LAST_THURSDAY: Last Thursday of the month.
  • LAST_FRIDAY: Last Friday of the month.
  • LAST_SATURDAY: Last Saturday of the month.
  • FIRST_MONDAY: First Monday of the month.
  • FIRST_TUESDAY: First Tuesday of the month.
  • FIRST_WEDNESDAY: First Wednesday of the month.
  • FIRST_THURSDAY: First Thursday of the month.
  • FIRST_FRIDAY: First Friday of the month.
  • FIRST_SATURDAY: First Saturday of the month.
  • SECOND_LAST_DAY: Second last day of the month.
  • LAST_DAY: Last day of the month.
Enum"LAST_MONDAY""LAST_TUESDAY""LAST_WEDNESDAY""LAST_THURSDAY""LAST_FRIDAY""LAST_SATURDAY""FIRST_MONDAY""FIRST_TUESDAY""FIRST_WEDNESDAY""FIRST_THURSDAY"
{ "schema": "MonthlyRuleFrequency", "rule": "LAST_MONDAY" }

DayOfWeek

Specifies a day of the week.

string(DayOfWeek)

Specifies a day of the week.

Enum"MONDAY""TUESDAY""WEDNESDAY""THURSDAY""FRIDAY""SATURDAY""SUNDAY"
"MONDAY"

WeeklyFrequency

Specifies the frequency of a weekly payment transaction.

schemastringrequired
Value"WeeklyFrequency"
dayOfWeekstring(DayOfWeek)required

Specifies a day of the week.

Enum"MONDAY""TUESDAY""WEDNESDAY""THURSDAY""FRIDAY""SATURDAY""SUNDAY"
{ "schema": "WeeklyFrequency", "dayOfWeek": "MONDAY" }

FortnightlyFrequency

Specifies the frequency of a fortnightly payment transaction.

schemastringrequired
Value"FortnightlyFrequency"
weekstringrequired

Identifies the week of the fortnight on which the payment transaction is to be processed.

  • FIRST_WEEK: First week of the fortnight.
  • SECOND_WEEK: Second week of the fortnight.
Enum"FIRST_WEEK""SECOND_WEEK"
dayOfWeekstring(DayOfWeek)required

Specifies a day of the week.

Enum"MONDAY""TUESDAY""WEDNESDAY""THURSDAY""FRIDAY""SATURDAY""SUNDAY"
{ "schema": "FortnightlyFrequency", "week": "FIRST_WEEK", "dayOfWeek": "MONDAY" }

Frequency

Specifies the frequency of the payment transaction.

schemastringrequired
Enum"MonthlyFrequency""QuarterlyFrequency""BiannualFrequency""YearlyFrequency"
Discriminator
dayOfMonthinteger[ 1 .. 31 ]required

Specifies the day of the month on which the payment transaction is to be processed. NOTE: A value of 31 will be interpreted as the last day of the month.

{ "schema": "MonthlyFrequency", "dayOfMonth": 1 }

MandateSetupReasonCode

Reason for the direct debit mandate to allow the user to distinguish between different mandates for the same creditor.

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

valuestring[ 1 .. 4 ] charactersrequired
{ "schema": "string", "value": "stri" }

MandateSetupReason

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
valuestring[ 1 .. 4 ] charactersrequired
{ "schema": "CODE", "value": "stri" }

MandateInformation

Provides details of the direct debit mandate signed between the creditor and the debtor.

NOTE: This model is a work in progress and may change. In particular, it lacks properties relating to mandate amendments which we may need in the future. Note also that this model is not relevant to the ZA_EFT scheme, and therefore Electrum will not do any special processing for these fields for EFT (e.g. Electrum cannot honour tracking days for EFT payments).

mandateIdentificationstring<= 35 characters

Unique identification, as assigned by the creditor, to unambiguously identify the mandate.

dateOfSignaturestring(date)

Date on which the direct debit mandate has been signed by the debtor.

electronicSignaturestring<= 1025 characters

A digital signature provided by the debtor.

firstCollectionDatestring(date)

Date of the first collection of a direct debit as per the mandate.

finalCollectionDatestring(date)

Date of the final collection of a direct debit as per the mandate.

frequencyobject(Frequency)

Specifies the frequency of the payment transaction.

reasonobject(MandateSetupReason)
trackingDaysinteger[ 1 .. 99 ]

Specifies the number of days the direct debit instruction must be tracked.

{ "mandateIdentification": "string", "dateOfSignature": "2019-08-24", "electronicSignature": "string", "firstCollectionDate": "2019-08-24", "finalCollectionDate": "2019-08-24", "frequency": { "schema": "MonthlyFrequency", "dayOfMonth": 1 }, "reason": { "schema": "string", "value": "stri" }, "trackingDays": 1 }

DirectDebit

A model containing the necessary information to request a direct debit from a debtor account for a creditor.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

MessageIdentifiers

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

{ "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }

ZaEftPaymentReturnPaymentSchemeData

shortenedDebtorAccountNumberstring(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

shortenedCreditorAccountNumberstring(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

returnTypestringrequired

Identifies the type of EFT payment return.

  • UNPAID: Occurs when a payment cannot be completed successfully by the homing bank such as due to insufficient funds or account closure. Note that it is impossible for Electrum to reject unpaids received from industry, so a negative payment return response from the partner will always result in a reconciliation exception for inbound unpaids.
  • DISPUTE: Occurs when there is a disagreement between the creditor and debtor regarding a payment and, after investigation with the assistance of their respective banks, the creditor's bank (in the case of a credit) or the debtor's bank (in the case of a debit) decides that the payment should be returned. As for unpaids, it is impossible for Electrum to reject disputes received from industry, so a negative payment return response results in a reconciliation exception for inbound disputes.
  • SYSTEM_ERROR_CORRECTION_REQUEST: Only expected for inbound use and represents the case where a bank from industry has experienced a technical issue that resulted in payments to or from the partner bank being reflected incorrectly (e.g. credits or debits were duplicated) and the industry bank is requesting that the partner bank attempt to correct the error. This case is notably different from unpaids and disputes in that (1) the system error correction request is expected to be best effort and may be rejected by the partner bank if the request cannot be honoured (e.g. due to insufficient funds) and (2) the bank from industry may retry system error correction requests for the same transaction on different days if an earlier request was rejected.
  • HOME_BACK: Occurs when a payment cannot be completed successfully at the operator such as a lack of information required to route to the correct homing bank. Note that it is impossible for Electrum to reject homebacks received from industry, so a negative payment return response from the partner will always result in a reconciliation exception for inbound homebacks.
Enum"UNPAID""DISPUTE""SYSTEM_ERROR_CORRECTION_REQUEST""HOME_BACK"
{ "shortenedDebtorAccountNumber": "stringstrin", "shortenedCreditorAccountNumber": "stringstrin", "returnType": "UNPAID" }

ZaEftPaymentReturnPaymentScheme

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
schemeDataobject(ZaEftPaymentReturnPaymentSchemeData)required
schemeData.​shortenedDebtorAccountNumberstring(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

schemeData.​shortenedCreditorAccountNumberstring(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

schemeData.​returnTypestringrequired

Identifies the type of EFT payment return.

  • UNPAID: Occurs when a payment cannot be completed successfully by the homing bank such as due to insufficient funds or account closure. Note that it is impossible for Electrum to reject unpaids received from industry, so a negative payment return response from the partner will always result in a reconciliation exception for inbound unpaids.
  • DISPUTE: Occurs when there is a disagreement between the creditor and debtor regarding a payment and, after investigation with the assistance of their respective banks, the creditor's bank (in the case of a credit) or the debtor's bank (in the case of a debit) decides that the payment should be returned. As for unpaids, it is impossible for Electrum to reject disputes received from industry, so a negative payment return response results in a reconciliation exception for inbound disputes.
  • SYSTEM_ERROR_CORRECTION_REQUEST: Only expected for inbound use and represents the case where a bank from industry has experienced a technical issue that resulted in payments to or from the partner bank being reflected incorrectly (e.g. credits or debits were duplicated) and the industry bank is requesting that the partner bank attempt to correct the error. This case is notably different from unpaids and disputes in that (1) the system error correction request is expected to be best effort and may be rejected by the partner bank if the request cannot be honoured (e.g. due to insufficient funds) and (2) the bank from industry may retry system error correction requests for the same transaction on different days if an earlier request was rejected.
  • HOME_BACK: Occurs when a payment cannot be completed successfully at the operator such as a lack of information required to route to the correct homing bank. Note that it is impossible for Electrum to reject homebacks received from industry, so a negative payment return response from the partner will always result in a reconciliation exception for inbound homebacks.
Enum"UNPAID""DISPUTE""SYSTEM_ERROR_CORRECTION_REQUEST""HOME_BACK"
{ "schema": "ZA_RTC", "schemeData": { "shortenedDebtorAccountNumber": "stringstrin", "shortenedCreditorAccountNumber": "stringstrin", "returnType": "UNPAID" } }

PaymentReturnPaymentScheme

Designates which scheme a payment return is associated with and describes scheme-specific information for the return.

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
schemeDataobject(ZaEftPaymentReturnPaymentSchemeData)required
schemeData.​shortenedDebtorAccountNumberstring(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

schemeData.​shortenedCreditorAccountNumberstring(ShortenedAccountNumber)= 11 characters

An account number, shortened to 11 characters according to the account number reduction rules in the EFT technical standards. This field is intended for internal use by Electrum and generally should not be populated by partner implementations.

schemeData.​returnTypestringrequired

Identifies the type of EFT payment return.

  • UNPAID: Occurs when a payment cannot be completed successfully by the homing bank such as due to insufficient funds or account closure. Note that it is impossible for Electrum to reject unpaids received from industry, so a negative payment return response from the partner will always result in a reconciliation exception for inbound unpaids.
  • DISPUTE: Occurs when there is a disagreement between the creditor and debtor regarding a payment and, after investigation with the assistance of their respective banks, the creditor's bank (in the case of a credit) or the debtor's bank (in the case of a debit) decides that the payment should be returned. As for unpaids, it is impossible for Electrum to reject disputes received from industry, so a negative payment return response results in a reconciliation exception for inbound disputes.
  • SYSTEM_ERROR_CORRECTION_REQUEST: Only expected for inbound use and represents the case where a bank from industry has experienced a technical issue that resulted in payments to or from the partner bank being reflected incorrectly (e.g. credits or debits were duplicated) and the industry bank is requesting that the partner bank attempt to correct the error. This case is notably different from unpaids and disputes in that (1) the system error correction request is expected to be best effort and may be rejected by the partner bank if the request cannot be honoured (e.g. due to insufficient funds) and (2) the bank from industry may retry system error correction requests for the same transaction on different days if an earlier request was rejected.
  • HOME_BACK: Occurs when a payment cannot be completed successfully at the operator such as a lack of information required to route to the correct homing bank. Note that it is impossible for Electrum to reject homebacks received from industry, so a negative payment return response from the partner will always result in a reconciliation exception for inbound homebacks.
Enum"UNPAID""DISPUTE""SYSTEM_ERROR_CORRECTION_REQUEST""HOME_BACK"
{ "schema": "ZA_EFT", "schemeData": { "shortenedDebtorAccountNumber": "stringstrin", "shortenedCreditorAccountNumber": "stringstrin", "returnType": "UNPAID" } }

ReturnReasonTypeCode

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

valuestringrequired
  • ACC: SuccessfulVerboseCdvOutcome
  • AC01: IncorrectAccountNumber
  • AC03: InvalidCreditorAccountNumber
  • AC04: ClosedAccountNumber
  • AC06: BlockedAccount
  • AC13: InvalidDebtorAccountType
  • AC14: InvalidAgent
  • AC15: AccountDetailsChanged
  • AC16: AccountInSequestration
  • AC17: AccountInLiquidation
  • AG01: TransactionForbidden
  • AG02: InvalidBankOperationCode
  • AM01: ZeroAmount
  • AM02: NotAllowedAmount
  • AM03: NotAllowedCurrency
  • AM04: InsufficientFunds
  • AM05: Duplication
  • AM06: TooLowAmount
  • AM07: BlockedAmount
  • AM09: WrongAmount
  • AM10: InvalidControlSum
  • ARDT: AlreadyReturnedTransaction
  • BE01: InconsistenWithEndCustomer
  • BE04: MissingCreditorAddress
  • BE05: UnrecognisedInitiatingParty
  • BE06: UnknownEndCustomer
  • BE07: MissingDebtorAddress
  • BE08: BankError
  • CN01: AuthorisationCancelled
  • CNOR: CreditorBankIsNotRegistered
  • CNPC: CashNotPickedUp
  • CURR: IncorrectCurrency
  • CUST: RequestedByCustomer
  • DNOR: DebtorBankIsNotRegistered
  • DS28: ReturnForTechnicalReason
  • DT01: InvalidDate
  • DT02: ChequeExpired
  • ED01: CorrespondentBankNotPossible
  • ED03: BalanceInfoRequest
  • ED05: SettlementFailed
  • EMVL: EMVLiabilityShift
  • ERIN: ERIOptionNotSupported
  • FF05: InvalidLocalInstrumentCode
  • FOCR: FollowingCancellationRequest
  • FR01: Fraud
  • FRTR: FinalResponseMandateCancelled
  • MD01: NoMandate
  • MD02: MissingMandatoryInformationInMandate
  • MD06: RefundRequestByEndCustomer
  • MD07: EndCustomerDeceased
  • MS02: NotSpecifiedReasonCustomerGenerated
  • MS03: NotSpecifiedReasonAgentGenerated
  • NARR: Narrative
  • NOAS: NoAnswerFromCustomer
  • NOCM: NotCompliant
  • NOOR: NoOriginalTransactionReceived
  • PINL: PINLiabilityShift
  • RC01: BankIdentifierIncorrect
  • RC07: InvalidCreditorBICIdentifier
  • RF01: NotUniqueTransactionReference
  • RR01: MissingDebtorAccountOrIdentification
  • RR02: MissingDebtorNameOrAddress
  • RR03: MissingCreditorNameOrAddress
  • RR04: RegulatoryReason
  • RUTA: ReturnUponUnableToApply
  • SL01: SpecificServiceOfferedByDebtorAgent
  • SL02: SpecificServiceOfferedByCreditorAgent
  • SL11: CreditorNotOnWhitelistOfDebtor
  • SL12: CreditorOnBlacklistOfDebtor
  • SL13: MaximumNumberOfDirectDebitTransactionsExceeded
  • SL14: MaximumDirectDebitTransactionAmountExceeded
  • SP01: PaymentStopped
  • SP02: PreviouslyStopped
  • SVNR: ServiceNotRendered
  • TM01: CutOffTime
  • TRAC: RemovedFromTracking
  • UPAY: UnduePayment
  • AGNT: IncorrectAgent
  • FF06: InvalidCategoryPurposeCode
  • RC08: InvalidClearingSystemMemberIdentifier
  • BE11: InvalidCreditorCountry
  • BE17: InvalidCreditorIdentificationCode
  • AC02: InvalidDebtorAccountNumber
  • RR11: InvalidDebtorAgentServiceIdentification
  • BE10: InvalidDebtorCountry
  • BE16: InvalidDebtorIdentificationCode
  • RC11: InvalidIntermediaryAgent
  • RR12: InvalidPartyIdentification
  • FF03: InvalidPaymentTypeInformation
  • FF07: InvalidPurpose
  • FF04: InvalidServiceLevelCode
  • RR09: InvalidStructuredCreditorReference
  • RR05: RegulatoryInformationInvalid
  • RR07: RemittanceInformationInvalid
  • RR08: RemittanceInformationTruncated
  • RR06: TaxInformationInvalid
  • AG07: UnsuccesfulDirectDebit
  • G004: CreditPendingFunds
  • MD05: CollectionNotDue
  • AC07: ClosedCreditorAccountNumber
Enum"ACC""AC01""AC03""AC04""AC06""AC13""AC14""AC15""AC16""AC17"
{ "schema": "string", "value": "ACC" }

ReturnReasonType

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
valuestringrequired
  • ACC: SuccessfulVerboseCdvOutcome
  • AC01: IncorrectAccountNumber
  • AC03: InvalidCreditorAccountNumber
  • AC04: ClosedAccountNumber
  • AC06: BlockedAccount
  • AC13: InvalidDebtorAccountType
  • AC14: InvalidAgent
  • AC15: AccountDetailsChanged
  • AC16: AccountInSequestration
  • AC17: AccountInLiquidation
  • AG01: TransactionForbidden
  • AG02: InvalidBankOperationCode
  • AM01: ZeroAmount
  • AM02: NotAllowedAmount
  • AM03: NotAllowedCurrency
  • AM04: InsufficientFunds
  • AM05: Duplication
  • AM06: TooLowAmount
  • AM07: BlockedAmount
  • AM09: WrongAmount
  • AM10: InvalidControlSum
  • ARDT: AlreadyReturnedTransaction
  • BE01: InconsistenWithEndCustomer
  • BE04: MissingCreditorAddress
  • BE05: UnrecognisedInitiatingParty
  • BE06: UnknownEndCustomer
  • BE07: MissingDebtorAddress
  • BE08: BankError
  • CN01: AuthorisationCancelled
  • CNOR: CreditorBankIsNotRegistered
  • CNPC: CashNotPickedUp
  • CURR: IncorrectCurrency
  • CUST: RequestedByCustomer
  • DNOR: DebtorBankIsNotRegistered
  • DS28: ReturnForTechnicalReason
  • DT01: InvalidDate
  • DT02: ChequeExpired
  • ED01: CorrespondentBankNotPossible
  • ED03: BalanceInfoRequest
  • ED05: SettlementFailed
  • EMVL: EMVLiabilityShift
  • ERIN: ERIOptionNotSupported
  • FF05: InvalidLocalInstrumentCode
  • FOCR: FollowingCancellationRequest
  • FR01: Fraud
  • FRTR: FinalResponseMandateCancelled
  • MD01: NoMandate
  • MD02: MissingMandatoryInformationInMandate
  • MD06: RefundRequestByEndCustomer
  • MD07: EndCustomerDeceased
  • MS02: NotSpecifiedReasonCustomerGenerated
  • MS03: NotSpecifiedReasonAgentGenerated
  • NARR: Narrative
  • NOAS: NoAnswerFromCustomer
  • NOCM: NotCompliant
  • NOOR: NoOriginalTransactionReceived
  • PINL: PINLiabilityShift
  • RC01: BankIdentifierIncorrect
  • RC07: InvalidCreditorBICIdentifier
  • RF01: NotUniqueTransactionReference
  • RR01: MissingDebtorAccountOrIdentification
  • RR02: MissingDebtorNameOrAddress
  • RR03: MissingCreditorNameOrAddress
  • RR04: RegulatoryReason
  • RUTA: ReturnUponUnableToApply
  • SL01: SpecificServiceOfferedByDebtorAgent
  • SL02: SpecificServiceOfferedByCreditorAgent
  • SL11: CreditorNotOnWhitelistOfDebtor
  • SL12: CreditorOnBlacklistOfDebtor
  • SL13: MaximumNumberOfDirectDebitTransactionsExceeded
  • SL14: MaximumDirectDebitTransactionAmountExceeded
  • SP01: PaymentStopped
  • SP02: PreviouslyStopped
  • SVNR: ServiceNotRendered
  • TM01: CutOffTime
  • TRAC: RemovedFromTracking
  • UPAY: UnduePayment
  • AGNT: IncorrectAgent
  • FF06: InvalidCategoryPurposeCode
  • RC08: InvalidClearingSystemMemberIdentifier
  • BE11: InvalidCreditorCountry
  • BE17: InvalidCreditorIdentificationCode
  • AC02: InvalidDebtorAccountNumber
  • RR11: InvalidDebtorAgentServiceIdentification
  • BE10: InvalidDebtorCountry
  • BE16: InvalidDebtorIdentificationCode
  • RC11: InvalidIntermediaryAgent
  • RR12: InvalidPartyIdentification
  • FF03: InvalidPaymentTypeInformation
  • FF07: InvalidPurpose
  • FF04: InvalidServiceLevelCode
  • RR09: InvalidStructuredCreditorReference
  • RR05: RegulatoryInformationInvalid
  • RR07: RemittanceInformationInvalid
  • RR08: RemittanceInformationTruncated
  • RR06: TaxInformationInvalid
  • AG07: UnsuccesfulDirectDebit
  • G004: CreditPendingFunds
  • MD05: CollectionNotDue
  • AC07: ClosedCreditorAccountNumber
Enum"ACC""AC01""AC03""AC04""AC06""AC13""AC14""AC15""AC16""AC17"
{ "schema": "CODE", "value": "ACC" }

ReturnReasonInfo

Provides detailed information on the return reason.

reasonobject(ReturnReasonType)required
reason.​schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
reason.​valuestringrequired
  • ACC: SuccessfulVerboseCdvOutcome
  • AC01: IncorrectAccountNumber
  • AC03: InvalidCreditorAccountNumber
  • AC04: ClosedAccountNumber
  • AC06: BlockedAccount
  • AC13: InvalidDebtorAccountType
  • AC14: InvalidAgent
  • AC15: AccountDetailsChanged
  • AC16: AccountInSequestration
  • AC17: AccountInLiquidation
  • AG01: TransactionForbidden
  • AG02: InvalidBankOperationCode
  • AM01: ZeroAmount
  • AM02: NotAllowedAmount
  • AM03: NotAllowedCurrency
  • AM04: InsufficientFunds
  • AM05: Duplication
  • AM06: TooLowAmount
  • AM07: BlockedAmount
  • AM09: WrongAmount
  • AM10: InvalidControlSum
  • ARDT: AlreadyReturnedTransaction
  • BE01: InconsistenWithEndCustomer
  • BE04: MissingCreditorAddress
  • BE05: UnrecognisedInitiatingParty
  • BE06: UnknownEndCustomer
  • BE07: MissingDebtorAddress
  • BE08: BankError
  • CN01: AuthorisationCancelled
  • CNOR: CreditorBankIsNotRegistered
  • CNPC: CashNotPickedUp
  • CURR: IncorrectCurrency
  • CUST: RequestedByCustomer
  • DNOR: DebtorBankIsNotRegistered
  • DS28: ReturnForTechnicalReason
  • DT01: InvalidDate
  • DT02: ChequeExpired
  • ED01: CorrespondentBankNotPossible
  • ED03: BalanceInfoRequest
  • ED05: SettlementFailed
  • EMVL: EMVLiabilityShift
  • ERIN: ERIOptionNotSupported
  • FF05: InvalidLocalInstrumentCode
  • FOCR: FollowingCancellationRequest
  • FR01: Fraud
  • FRTR: FinalResponseMandateCancelled
  • MD01: NoMandate
  • MD02: MissingMandatoryInformationInMandate
  • MD06: RefundRequestByEndCustomer
  • MD07: EndCustomerDeceased
  • MS02: NotSpecifiedReasonCustomerGenerated
  • MS03: NotSpecifiedReasonAgentGenerated
  • NARR: Narrative
  • NOAS: NoAnswerFromCustomer
  • NOCM: NotCompliant
  • NOOR: NoOriginalTransactionReceived
  • PINL: PINLiabilityShift
  • RC01: BankIdentifierIncorrect
  • RC07: InvalidCreditorBICIdentifier
  • RF01: NotUniqueTransactionReference
  • RR01: MissingDebtorAccountOrIdentification
  • RR02: MissingDebtorNameOrAddress
  • RR03: MissingCreditorNameOrAddress
  • RR04: RegulatoryReason
  • RUTA: ReturnUponUnableToApply
  • SL01: SpecificServiceOfferedByDebtorAgent
  • SL02: SpecificServiceOfferedByCreditorAgent
  • SL11: CreditorNotOnWhitelistOfDebtor
  • SL12: CreditorOnBlacklistOfDebtor
  • SL13: MaximumNumberOfDirectDebitTransactionsExceeded
  • SL14: MaximumDirectDebitTransactionAmountExceeded
  • SP01: PaymentStopped
  • SP02: PreviouslyStopped
  • SVNR: ServiceNotRendered
  • TM01: CutOffTime
  • TRAC: RemovedFromTracking
  • UPAY: UnduePayment
  • AGNT: IncorrectAgent
  • FF06: InvalidCategoryPurposeCode
  • RC08: InvalidClearingSystemMemberIdentifier
  • BE11: InvalidCreditorCountry
  • BE17: InvalidCreditorIdentificationCode
  • AC02: InvalidDebtorAccountNumber
  • RR11: InvalidDebtorAgentServiceIdentification
  • BE10: InvalidDebtorCountry
  • BE16: InvalidDebtorIdentificationCode
  • RC11: InvalidIntermediaryAgent
  • RR12: InvalidPartyIdentification
  • FF03: InvalidPaymentTypeInformation
  • FF07: InvalidPurpose
  • FF04: InvalidServiceLevelCode
  • RR09: InvalidStructuredCreditorReference
  • RR05: RegulatoryInformationInvalid
  • RR07: RemittanceInformationInvalid
  • RR08: RemittanceInformationTruncated
  • RR06: TaxInformationInvalid
  • AG07: UnsuccesfulDirectDebit
  • G004: CreditPendingFunds
  • MD05: CollectionNotDue
  • AC07: ClosedCreditorAccountNumber
Enum"ACC""AC01""AC03""AC04""AC06""AC13""AC14""AC15""AC16""AC17"
additionalInformationstring

A human friendly description of the return reason including any further details if applicable.

{ "reason": { "schema": "string", "value": "ACC" }, "additionalInformation": "string" }

SupplementaryData

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

property name*stringadditional property
{ "property1": "string", "property2": "string" }

OriginalTransactionData

Contains key elements related to the original transaction that is being referred to.

creditorobject(Party)

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAgentobject(InstitutionIdentification)
amountsobject(TransactionAmounts)
remittanceInformationobject(RemittanceInformation)
debtorobject(Party)

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)
supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

paymentMethodstring

Specifies the means of payment for the original transaction.

Enum"CreditTransfer""DirectDebit"
paymentTypeInformationobject(PaymentTypeInformation)
{ "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "remittanceInformation": { "unstructured": [], "structured": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "supplementaryData": { "property1": "string", "property2": "string" }, "settlementDate": "2019-08-24", "paymentMethod": "CreditTransfer", "paymentTypeInformation": { "localInstrument": {} } }

PaymentReturn

A model containing the necessary information to request a return of funds after settlement of credit transfer instructions or direct debit instructions.

NOTE: Neither creditorAccount nor debtorAccount are required fields, but creditorAccount is expected to be present for returns of direct debits, and similarly debtorAccount is expected to be present for returns of credit transfers.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

RequestToPayConditions

Describes the various aspects of a request to pay which must be accepted or to what extent they may be altered.

minAmountobject(Amount)required
minAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
minAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

maxAmountobject(Amount)required
maxAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
maxAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

{ "minAmount": { "value": 0.1, "currency": "string" }, "maxAmount": { "value": 0.1, "currency": "string" } }

RequestToPay

A model containing the necessary information to request a payer to initiate a transfer of funds to a payee

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

BaseTransactionResponseMessage

An extension of BaseTransactionMessage which includes additional information pertinent to an asynchronous response message. In particular, original message identifiers.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

RequestToPayStatusReasonTypeCode

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

valuestringrequired
  • AB01: AbortedClearingTimeout - Clearing process aborted due to timeout.
  • AB02: AbortedClearingFatalError - Clearing process aborted due to a fatal error.
  • AB05: TimeoutCreditorAgent - Transaction stopped due to timeout at the Creditor Agent.
  • AB06: TimeoutInstructedAgent - Transaction stopped due to timeout at the Instructed Agent.
  • AB07: OfflineAgent - Agent of message is not online. Generic usage if it cannot be determined who exactly is not online.
  • AB08: OfflineCreditorAgent - Creditor Agent is not online.
  • AB09: ErrorCreditorAgent - Transaction stopped due to error at the Creditor Agent.
  • AB10: ErrorInstructedAgent - Transaction stopped due to error at the Instructed Agent.
  • AB11: TimeoutDebtorAgent - Transaction stopped due to timeout at the Debtor Agent.
  • AC04: ClosedAccountNumber - Account number specified has been closed on the bank of account's books.
  • AC05: ClosedDebtorAccountNumber - Debtor account number closed
  • AC06: BlockedAccount - Account specified is blocked, prohibiting posting of transactions against it.
  • AC07: ClosedCreditorAccountNumber - Creditor account number closed
  • AC08: InvalidBranchCode - Branch code is invalid or missing
  • AG10: AgentSuspended - Agent of message is suspended from the Real Time Payment system. Generic usage if it cannot be determined who exactly is suspended.
  • AG11: CreditorAgentSuspended - Creditor Agent of message is suspended from the Real Time Payment system.
  • AGNT: IncorrectAgent - Agent in the payment workflow is incorrect
  • AM01: ZeroAmount - Specified message amount is equal to zero
  • AM02: NotAllowedAmount - Specific transaction/message amount is greater than allowed maximum
  • AM03: NotAllowedCurrency - Specified message amount is an non processable currency outside of existing agreement
  • AM05: Duplication - Duplication
  • AM06: TooLowAmount - Specified transaction amount is less than agreed minimum.
  • AM11: InvalidTransactionCurrency - Transaction currency is invalid or missing
  • AM12: InvalidAmount - Amount is invalid or missing
  • AM13: AmountExceedsClearingSystemLimit - Transaction amount exceeds limits set by clearing system
  • AM15: AmountBelowClearingSystemMinimum - Transaction amount below minimum set by clearing system
  • AM18: InvalidNumberOfTransactions - Number of transactions is invalid or missing. Generic usage if cannot specify between group and payment information levels.
  • BE01: InconsistenWithEndCustomer - Identification of end customer is not consistent with associated account number. (formerly CreditorConsistency).
  • BE05: UnrecognisedInitiatingParty - Party who initiated the message is not recognised by the end customer
  • BE06: UnknownEndCustomer - End customer specified is not known at associated Sort/National Bank Code or does no longer exist in the books
  • BE07: MissingDebtorAddress - Specification of debtor's address, which is required for payment, is missing/not correct.
  • BE08: MissingDebtorName - Debtor name is missing
  • BE10: InvalidDebtorCountry - Debtor country code is missing or invalid
  • BE11: InvalidCreditorCountry - Creditor country code is missing or invalid
  • BE12: InvalidCountryOfResidence - Country code of residence is missing or Invalid. Generic usage if cannot specifically identify debtor or creditor
  • BE13: InvalidDebtorCountryOfResidence - Country code of debtor's residence is missing or Invalid
  • BE14: InvalidCreditorCountryOfResidence - Country code of creditor's residence is missing or Invalid
  • BE16: InvalidDebtorIdentificationCode - Debtor or Ultimate Debtor identification code missing or invalid
  • BE17: InvalidCreditorIdentificationCode - Creditor or Ultimate Creditor identification code missing or invalid
  • BE18: InvalidContactDetails - Contact details missing or invalid
  • BE19: InvalidChargeBearerCode - Charge bearer code for transaction type is invalid
  • BE20: InvalidNameLength - Name length exceeds local rules for payment type.
  • BE22: MissingCreditorName - Creditor name is missing
  • BE23: AccountProxyInvalid - Phone number or email address, or any other proxy, used as the account proxy is unknown or invalid.
  • CH03: RequestedExecutionDateOrRequestedCollectionDateTooFarInFuture - Value in Requested Execution Date or Requested Collection Date is too far in the future
  • CH04: RequestedExecutionDateOrRequestedCollectionDateTooFarInPast - Value in Requested Execution Date or Requested Collection Date is too far in the past
  • CH21: RequiredCompulsoryElementMissing - Mandatory element is missing
  • CNOR: CreditorBankIsNotRegistered - Creditor bank is not registered under this BIC in the CSM
  • CURR: IncorrectCurrency - Currency of the payment is incorrect
  • CUST: RequestedByCustomer - Cancellation requested by the Creditor
  • DS01: ElectronicSignaturesCorrect - The electronic signature(s) is/are correct
  • DS02: OrderCancelled - An authorized user has cancelled the order
  • DS04: OrderRejected - The order was rejected by the bank side (for reasons concerning content)
  • DS0G: NotAllowedPayment - Signer is not allowed to sign this operation type.
  • DS0H: NotAllowedAccount - Signer is not allowed to sign for this account.
  • DS24: WaitingTimeExpired - Waiting time expired due to incomplete order
  • DS27: UserNotYetActivated - The user is not yet activated (technically)
  • DT01: InvalidDate - Invalid date (eg, wrong or missing settlement date)
  • DT02: InvalidCreationDate - Invalid creation date and time in Group Header (eg, historic date)
  • DT03: InvalidNonProcessingDate - Invalid non bank processing date (eg, weekend or local public holiday)
  • DU01: DuplicateMessageID - Message Identification is not unique.
  • DU02: DuplicatePaymentInformationID - Payment Information Block is not unique.
  • DU03: DuplicateTransaction - Transaction is not unique.
  • DU04: DuplicateEndToEndID - End To End ID is not unique.
  • DU05: DuplicateInstructionID - Instruction ID is not unique.
  • DUPL: DuplicatePayment - Payment is a duplicate of another payment
  • FF02: SyntaxError - Syntax error reason is provided as narrative information in the additional reason information.
  • FF03: InvalidPaymentTypeInformation - Payment Type Information is missing or invalid. Generic usage if cannot specify Service Level or Local Instrument code
  • FF05: InvalidLocalInstrumentCode - Local Instrument code is missing or invalid
  • FF08: InvalidEndToEndId - End to End Id missing or invalid
  • FF10: BankSystemProcessingError - File or transaction cannot be processed due to technical issues at the bank side
  • FF11: ClearingRequestAborted - Clearing request rejected due it being subject to an abort operation.
  • MD07: EndCustomerDeceased - End customer is deceased.
  • MS02: NotSpecifiedReasonCustomerGenerated - Reason has not been specified by end customer
  • MS03: NotSpecifiedReasonAgentGenerated - Reason has not been specified by agent.
  • NARR: Narrative - Reason is provided as narrative information in the additional reason information.
  • NERI: NoERI - Credit transfer is tagged as an Extended Remittance Information (ERI) transaction but does not contain ERI.
  • RC03: InvalidDebtorBankIdentifier - Debtor bank identifier is invalid or missing
  • RC04: InvalidCreditorBankIdentifier - Creditor bank identifier is invalid or missing
  • RC06: InvalidDebtorBICIdentifier - Debtor BIC identifier is invalid or missing
  • RC07: InvalidCreditorBICIdentifier - Creditor BIC identifier is invalid or missing
  • RC09: InvalidDebtorClearingSystemMemberIdentifier - Debtor ClearingSystemMember identifier is invalid or missing
  • RC10: InvalidCreditorClearingSystemMemberIdentifier - Creditor ClearingSystemMember identifier is invalid or missing
  • RC11: InvalidIntermediaryAgent - Intermediary Agent is invalid or missing
  • RR09: InvalidStructuredCreditorReference - Structured creditor reference invalid or missing.
  • RR10: InvalidCharacterSet - Character set supplied not valid for the country and payment type.
  • S001: UETRFlaggedForCancellation - Unique End-to-end Transaction Reference (UETR) relating to a payment has been identified as being associated with a Request for Cancellation.
  • TA01: TransmissonAborted - The transmission of the file was not successful – it had to be aborted (for technical reasons)
  • NOAR: NonAgreedRTP - No existing agreement for receiving request-to-pay messages.
  • NOCM: NotCompliantGeneric - Customer account is not compliant with regulatory requirements, for example FICA (in South Africa) or any other regulatory requirements which render an account inactive for certain processing.
  • ALAC: AlreadyAcceptedRTP - Request-to-pay has already been accepted by the Debtor.
  • AEXR: AlreadyExpiredRTP - Request-to-pay Expiry Date and Time has already passed.
  • ARFR: AlreadyRefusedRTP - Request-to-pay has already been refused by the Debtor.
  • ARJR: AlreadyRejectedRTP - Request-to-pay has already been rejected.
  • EDTR: ExpiryDateTimeReached - Expiry date time of the request-to-pay is already reached.
  • EDTL: ExpiryDateTooLong - Expiry date time of the request-to-pay is too far in the future.
  • IEDT: IncorrectExpiryDateTime - Expiry date time of the request-to-pay is incorrect.
  • IRNR: InitialRTPNeverReceived - No initial request-to-pay has been received.
  • NRCH: PayerOrPayerRTPSPNotReachable - Recipient side of the request-to-pay (payer or its request-to-pay service provider) is not reachable.
  • RTNS: RTPNotSupportedForDebtor - Debtor does not support request-to-pay transactions.
  • PINS: TypeOfPaymentInstrumentNotSupported - Type of payment requested in the request-to-pay is not supported by the payer.
  • SVNR: ServiceNotRendered - The payment is cancelled since a cash amount rendered was not correct or goods or a service was not rendered to the customer, e.g. in an e-commerce situation.
  • UCRD: UnknownCreditor - Unknown Creditor.
Enum"AB01""AB02""AB05""AB06""AB07""AB08""AB09""AB10""AB11""AC04"
{ "schema": "string", "value": "AB01" }

RequestToPayStatusReasonType

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
valuestringrequired
  • AB01: AbortedClearingTimeout - Clearing process aborted due to timeout.
  • AB02: AbortedClearingFatalError - Clearing process aborted due to a fatal error.
  • AB05: TimeoutCreditorAgent - Transaction stopped due to timeout at the Creditor Agent.
  • AB06: TimeoutInstructedAgent - Transaction stopped due to timeout at the Instructed Agent.
  • AB07: OfflineAgent - Agent of message is not online. Generic usage if it cannot be determined who exactly is not online.
  • AB08: OfflineCreditorAgent - Creditor Agent is not online.
  • AB09: ErrorCreditorAgent - Transaction stopped due to error at the Creditor Agent.
  • AB10: ErrorInstructedAgent - Transaction stopped due to error at the Instructed Agent.
  • AB11: TimeoutDebtorAgent - Transaction stopped due to timeout at the Debtor Agent.
  • AC04: ClosedAccountNumber - Account number specified has been closed on the bank of account's books.
  • AC05: ClosedDebtorAccountNumber - Debtor account number closed
  • AC06: BlockedAccount - Account specified is blocked, prohibiting posting of transactions against it.
  • AC07: ClosedCreditorAccountNumber - Creditor account number closed
  • AC08: InvalidBranchCode - Branch code is invalid or missing
  • AG10: AgentSuspended - Agent of message is suspended from the Real Time Payment system. Generic usage if it cannot be determined who exactly is suspended.
  • AG11: CreditorAgentSuspended - Creditor Agent of message is suspended from the Real Time Payment system.
  • AGNT: IncorrectAgent - Agent in the payment workflow is incorrect
  • AM01: ZeroAmount - Specified message amount is equal to zero
  • AM02: NotAllowedAmount - Specific transaction/message amount is greater than allowed maximum
  • AM03: NotAllowedCurrency - Specified message amount is an non processable currency outside of existing agreement
  • AM05: Duplication - Duplication
  • AM06: TooLowAmount - Specified transaction amount is less than agreed minimum.
  • AM11: InvalidTransactionCurrency - Transaction currency is invalid or missing
  • AM12: InvalidAmount - Amount is invalid or missing
  • AM13: AmountExceedsClearingSystemLimit - Transaction amount exceeds limits set by clearing system
  • AM15: AmountBelowClearingSystemMinimum - Transaction amount below minimum set by clearing system
  • AM18: InvalidNumberOfTransactions - Number of transactions is invalid or missing. Generic usage if cannot specify between group and payment information levels.
  • BE01: InconsistenWithEndCustomer - Identification of end customer is not consistent with associated account number. (formerly CreditorConsistency).
  • BE05: UnrecognisedInitiatingParty - Party who initiated the message is not recognised by the end customer
  • BE06: UnknownEndCustomer - End customer specified is not known at associated Sort/National Bank Code or does no longer exist in the books
  • BE07: MissingDebtorAddress - Specification of debtor's address, which is required for payment, is missing/not correct.
  • BE08: MissingDebtorName - Debtor name is missing
  • BE10: InvalidDebtorCountry - Debtor country code is missing or invalid
  • BE11: InvalidCreditorCountry - Creditor country code is missing or invalid
  • BE12: InvalidCountryOfResidence - Country code of residence is missing or Invalid. Generic usage if cannot specifically identify debtor or creditor
  • BE13: InvalidDebtorCountryOfResidence - Country code of debtor's residence is missing or Invalid
  • BE14: InvalidCreditorCountryOfResidence - Country code of creditor's residence is missing or Invalid
  • BE16: InvalidDebtorIdentificationCode - Debtor or Ultimate Debtor identification code missing or invalid
  • BE17: InvalidCreditorIdentificationCode - Creditor or Ultimate Creditor identification code missing or invalid
  • BE18: InvalidContactDetails - Contact details missing or invalid
  • BE19: InvalidChargeBearerCode - Charge bearer code for transaction type is invalid
  • BE20: InvalidNameLength - Name length exceeds local rules for payment type.
  • BE22: MissingCreditorName - Creditor name is missing
  • BE23: AccountProxyInvalid - Phone number or email address, or any other proxy, used as the account proxy is unknown or invalid.
  • CH03: RequestedExecutionDateOrRequestedCollectionDateTooFarInFuture - Value in Requested Execution Date or Requested Collection Date is too far in the future
  • CH04: RequestedExecutionDateOrRequestedCollectionDateTooFarInPast - Value in Requested Execution Date or Requested Collection Date is too far in the past
  • CH21: RequiredCompulsoryElementMissing - Mandatory element is missing
  • CNOR: CreditorBankIsNotRegistered - Creditor bank is not registered under this BIC in the CSM
  • CURR: IncorrectCurrency - Currency of the payment is incorrect
  • CUST: RequestedByCustomer - Cancellation requested by the Creditor
  • DS01: ElectronicSignaturesCorrect - The electronic signature(s) is/are correct
  • DS02: OrderCancelled - An authorized user has cancelled the order
  • DS04: OrderRejected - The order was rejected by the bank side (for reasons concerning content)
  • DS0G: NotAllowedPayment - Signer is not allowed to sign this operation type.
  • DS0H: NotAllowedAccount - Signer is not allowed to sign for this account.
  • DS24: WaitingTimeExpired - Waiting time expired due to incomplete order
  • DS27: UserNotYetActivated - The user is not yet activated (technically)
  • DT01: InvalidDate - Invalid date (eg, wrong or missing settlement date)
  • DT02: InvalidCreationDate - Invalid creation date and time in Group Header (eg, historic date)
  • DT03: InvalidNonProcessingDate - Invalid non bank processing date (eg, weekend or local public holiday)
  • DU01: DuplicateMessageID - Message Identification is not unique.
  • DU02: DuplicatePaymentInformationID - Payment Information Block is not unique.
  • DU03: DuplicateTransaction - Transaction is not unique.
  • DU04: DuplicateEndToEndID - End To End ID is not unique.
  • DU05: DuplicateInstructionID - Instruction ID is not unique.
  • DUPL: DuplicatePayment - Payment is a duplicate of another payment
  • FF02: SyntaxError - Syntax error reason is provided as narrative information in the additional reason information.
  • FF03: InvalidPaymentTypeInformation - Payment Type Information is missing or invalid. Generic usage if cannot specify Service Level or Local Instrument code
  • FF05: InvalidLocalInstrumentCode - Local Instrument code is missing or invalid
  • FF08: InvalidEndToEndId - End to End Id missing or invalid
  • FF10: BankSystemProcessingError - File or transaction cannot be processed due to technical issues at the bank side
  • FF11: ClearingRequestAborted - Clearing request rejected due it being subject to an abort operation.
  • MD07: EndCustomerDeceased - End customer is deceased.
  • MS02: NotSpecifiedReasonCustomerGenerated - Reason has not been specified by end customer
  • MS03: NotSpecifiedReasonAgentGenerated - Reason has not been specified by agent.
  • NARR: Narrative - Reason is provided as narrative information in the additional reason information.
  • NERI: NoERI - Credit transfer is tagged as an Extended Remittance Information (ERI) transaction but does not contain ERI.
  • RC03: InvalidDebtorBankIdentifier - Debtor bank identifier is invalid or missing
  • RC04: InvalidCreditorBankIdentifier - Creditor bank identifier is invalid or missing
  • RC06: InvalidDebtorBICIdentifier - Debtor BIC identifier is invalid or missing
  • RC07: InvalidCreditorBICIdentifier - Creditor BIC identifier is invalid or missing
  • RC09: InvalidDebtorClearingSystemMemberIdentifier - Debtor ClearingSystemMember identifier is invalid or missing
  • RC10: InvalidCreditorClearingSystemMemberIdentifier - Creditor ClearingSystemMember identifier is invalid or missing
  • RC11: InvalidIntermediaryAgent - Intermediary Agent is invalid or missing
  • RR09: InvalidStructuredCreditorReference - Structured creditor reference invalid or missing.
  • RR10: InvalidCharacterSet - Character set supplied not valid for the country and payment type.
  • S001: UETRFlaggedForCancellation - Unique End-to-end Transaction Reference (UETR) relating to a payment has been identified as being associated with a Request for Cancellation.
  • TA01: TransmissonAborted - The transmission of the file was not successful – it had to be aborted (for technical reasons)
  • NOAR: NonAgreedRTP - No existing agreement for receiving request-to-pay messages.
  • NOCM: NotCompliantGeneric - Customer account is not compliant with regulatory requirements, for example FICA (in South Africa) or any other regulatory requirements which render an account inactive for certain processing.
  • ALAC: AlreadyAcceptedRTP - Request-to-pay has already been accepted by the Debtor.
  • AEXR: AlreadyExpiredRTP - Request-to-pay Expiry Date and Time has already passed.
  • ARFR: AlreadyRefusedRTP - Request-to-pay has already been refused by the Debtor.
  • ARJR: AlreadyRejectedRTP - Request-to-pay has already been rejected.
  • EDTR: ExpiryDateTimeReached - Expiry date time of the request-to-pay is already reached.
  • EDTL: ExpiryDateTooLong - Expiry date time of the request-to-pay is too far in the future.
  • IEDT: IncorrectExpiryDateTime - Expiry date time of the request-to-pay is incorrect.
  • IRNR: InitialRTPNeverReceived - No initial request-to-pay has been received.
  • NRCH: PayerOrPayerRTPSPNotReachable - Recipient side of the request-to-pay (payer or its request-to-pay service provider) is not reachable.
  • RTNS: RTPNotSupportedForDebtor - Debtor does not support request-to-pay transactions.
  • PINS: TypeOfPaymentInstrumentNotSupported - Type of payment requested in the request-to-pay is not supported by the payer.
  • SVNR: ServiceNotRendered - The payment is cancelled since a cash amount rendered was not correct or goods or a service was not rendered to the customer, e.g. in an e-commerce situation.
  • UCRD: UnknownCreditor - Unknown Creditor.
Enum"AB01""AB02""AB05""AB06""AB07""AB08""AB09""AB10""AB11""AC04"
{ "schema": "CODE", "value": "AB01" }

RequestToPayStatusReasonInfo

Provides detailed information on a status reason.

reasonobject(RequestToPayStatusReasonType)required
reason.​schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
reason.​valuestringrequired
  • AB01: AbortedClearingTimeout - Clearing process aborted due to timeout.
  • AB02: AbortedClearingFatalError - Clearing process aborted due to a fatal error.
  • AB05: TimeoutCreditorAgent - Transaction stopped due to timeout at the Creditor Agent.
  • AB06: TimeoutInstructedAgent - Transaction stopped due to timeout at the Instructed Agent.
  • AB07: OfflineAgent - Agent of message is not online. Generic usage if it cannot be determined who exactly is not online.
  • AB08: OfflineCreditorAgent - Creditor Agent is not online.
  • AB09: ErrorCreditorAgent - Transaction stopped due to error at the Creditor Agent.
  • AB10: ErrorInstructedAgent - Transaction stopped due to error at the Instructed Agent.
  • AB11: TimeoutDebtorAgent - Transaction stopped due to timeout at the Debtor Agent.
  • AC04: ClosedAccountNumber - Account number specified has been closed on the bank of account's books.
  • AC05: ClosedDebtorAccountNumber - Debtor account number closed
  • AC06: BlockedAccount - Account specified is blocked, prohibiting posting of transactions against it.
  • AC07: ClosedCreditorAccountNumber - Creditor account number closed
  • AC08: InvalidBranchCode - Branch code is invalid or missing
  • AG10: AgentSuspended - Agent of message is suspended from the Real Time Payment system. Generic usage if it cannot be determined who exactly is suspended.
  • AG11: CreditorAgentSuspended - Creditor Agent of message is suspended from the Real Time Payment system.
  • AGNT: IncorrectAgent - Agent in the payment workflow is incorrect
  • AM01: ZeroAmount - Specified message amount is equal to zero
  • AM02: NotAllowedAmount - Specific transaction/message amount is greater than allowed maximum
  • AM03: NotAllowedCurrency - Specified message amount is an non processable currency outside of existing agreement
  • AM05: Duplication - Duplication
  • AM06: TooLowAmount - Specified transaction amount is less than agreed minimum.
  • AM11: InvalidTransactionCurrency - Transaction currency is invalid or missing
  • AM12: InvalidAmount - Amount is invalid or missing
  • AM13: AmountExceedsClearingSystemLimit - Transaction amount exceeds limits set by clearing system
  • AM15: AmountBelowClearingSystemMinimum - Transaction amount below minimum set by clearing system
  • AM18: InvalidNumberOfTransactions - Number of transactions is invalid or missing. Generic usage if cannot specify between group and payment information levels.
  • BE01: InconsistenWithEndCustomer - Identification of end customer is not consistent with associated account number. (formerly CreditorConsistency).
  • BE05: UnrecognisedInitiatingParty - Party who initiated the message is not recognised by the end customer
  • BE06: UnknownEndCustomer - End customer specified is not known at associated Sort/National Bank Code or does no longer exist in the books
  • BE07: MissingDebtorAddress - Specification of debtor's address, which is required for payment, is missing/not correct.
  • BE08: MissingDebtorName - Debtor name is missing
  • BE10: InvalidDebtorCountry - Debtor country code is missing or invalid
  • BE11: InvalidCreditorCountry - Creditor country code is missing or invalid
  • BE12: InvalidCountryOfResidence - Country code of residence is missing or Invalid. Generic usage if cannot specifically identify debtor or creditor
  • BE13: InvalidDebtorCountryOfResidence - Country code of debtor's residence is missing or Invalid
  • BE14: InvalidCreditorCountryOfResidence - Country code of creditor's residence is missing or Invalid
  • BE16: InvalidDebtorIdentificationCode - Debtor or Ultimate Debtor identification code missing or invalid
  • BE17: InvalidCreditorIdentificationCode - Creditor or Ultimate Creditor identification code missing or invalid
  • BE18: InvalidContactDetails - Contact details missing or invalid
  • BE19: InvalidChargeBearerCode - Charge bearer code for transaction type is invalid
  • BE20: InvalidNameLength - Name length exceeds local rules for payment type.
  • BE22: MissingCreditorName - Creditor name is missing
  • BE23: AccountProxyInvalid - Phone number or email address, or any other proxy, used as the account proxy is unknown or invalid.
  • CH03: RequestedExecutionDateOrRequestedCollectionDateTooFarInFuture - Value in Requested Execution Date or Requested Collection Date is too far in the future
  • CH04: RequestedExecutionDateOrRequestedCollectionDateTooFarInPast - Value in Requested Execution Date or Requested Collection Date is too far in the past
  • CH21: RequiredCompulsoryElementMissing - Mandatory element is missing
  • CNOR: CreditorBankIsNotRegistered - Creditor bank is not registered under this BIC in the CSM
  • CURR: IncorrectCurrency - Currency of the payment is incorrect
  • CUST: RequestedByCustomer - Cancellation requested by the Creditor
  • DS01: ElectronicSignaturesCorrect - The electronic signature(s) is/are correct
  • DS02: OrderCancelled - An authorized user has cancelled the order
  • DS04: OrderRejected - The order was rejected by the bank side (for reasons concerning content)
  • DS0G: NotAllowedPayment - Signer is not allowed to sign this operation type.
  • DS0H: NotAllowedAccount - Signer is not allowed to sign for this account.
  • DS24: WaitingTimeExpired - Waiting time expired due to incomplete order
  • DS27: UserNotYetActivated - The user is not yet activated (technically)
  • DT01: InvalidDate - Invalid date (eg, wrong or missing settlement date)
  • DT02: InvalidCreationDate - Invalid creation date and time in Group Header (eg, historic date)
  • DT03: InvalidNonProcessingDate - Invalid non bank processing date (eg, weekend or local public holiday)
  • DU01: DuplicateMessageID - Message Identification is not unique.
  • DU02: DuplicatePaymentInformationID - Payment Information Block is not unique.
  • DU03: DuplicateTransaction - Transaction is not unique.
  • DU04: DuplicateEndToEndID - End To End ID is not unique.
  • DU05: DuplicateInstructionID - Instruction ID is not unique.
  • DUPL: DuplicatePayment - Payment is a duplicate of another payment
  • FF02: SyntaxError - Syntax error reason is provided as narrative information in the additional reason information.
  • FF03: InvalidPaymentTypeInformation - Payment Type Information is missing or invalid. Generic usage if cannot specify Service Level or Local Instrument code
  • FF05: InvalidLocalInstrumentCode - Local Instrument code is missing or invalid
  • FF08: InvalidEndToEndId - End to End Id missing or invalid
  • FF10: BankSystemProcessingError - File or transaction cannot be processed due to technical issues at the bank side
  • FF11: ClearingRequestAborted - Clearing request rejected due it being subject to an abort operation.
  • MD07: EndCustomerDeceased - End customer is deceased.
  • MS02: NotSpecifiedReasonCustomerGenerated - Reason has not been specified by end customer
  • MS03: NotSpecifiedReasonAgentGenerated - Reason has not been specified by agent.
  • NARR: Narrative - Reason is provided as narrative information in the additional reason information.
  • NERI: NoERI - Credit transfer is tagged as an Extended Remittance Information (ERI) transaction but does not contain ERI.
  • RC03: InvalidDebtorBankIdentifier - Debtor bank identifier is invalid or missing
  • RC04: InvalidCreditorBankIdentifier - Creditor bank identifier is invalid or missing
  • RC06: InvalidDebtorBICIdentifier - Debtor BIC identifier is invalid or missing
  • RC07: InvalidCreditorBICIdentifier - Creditor BIC identifier is invalid or missing
  • RC09: InvalidDebtorClearingSystemMemberIdentifier - Debtor ClearingSystemMember identifier is invalid or missing
  • RC10: InvalidCreditorClearingSystemMemberIdentifier - Creditor ClearingSystemMember identifier is invalid or missing
  • RC11: InvalidIntermediaryAgent - Intermediary Agent is invalid or missing
  • RR09: InvalidStructuredCreditorReference - Structured creditor reference invalid or missing.
  • RR10: InvalidCharacterSet - Character set supplied not valid for the country and payment type.
  • S001: UETRFlaggedForCancellation - Unique End-to-end Transaction Reference (UETR) relating to a payment has been identified as being associated with a Request for Cancellation.
  • TA01: TransmissonAborted - The transmission of the file was not successful – it had to be aborted (for technical reasons)
  • NOAR: NonAgreedRTP - No existing agreement for receiving request-to-pay messages.
  • NOCM: NotCompliantGeneric - Customer account is not compliant with regulatory requirements, for example FICA (in South Africa) or any other regulatory requirements which render an account inactive for certain processing.
  • ALAC: AlreadyAcceptedRTP - Request-to-pay has already been accepted by the Debtor.
  • AEXR: AlreadyExpiredRTP - Request-to-pay Expiry Date and Time has already passed.
  • ARFR: AlreadyRefusedRTP - Request-to-pay has already been refused by the Debtor.
  • ARJR: AlreadyRejectedRTP - Request-to-pay has already been rejected.
  • EDTR: ExpiryDateTimeReached - Expiry date time of the request-to-pay is already reached.
  • EDTL: ExpiryDateTooLong - Expiry date time of the request-to-pay is too far in the future.
  • IEDT: IncorrectExpiryDateTime - Expiry date time of the request-to-pay is incorrect.
  • IRNR: InitialRTPNeverReceived - No initial request-to-pay has been received.
  • NRCH: PayerOrPayerRTPSPNotReachable - Recipient side of the request-to-pay (payer or its request-to-pay service provider) is not reachable.
  • RTNS: RTPNotSupportedForDebtor - Debtor does not support request-to-pay transactions.
  • PINS: TypeOfPaymentInstrumentNotSupported - Type of payment requested in the request-to-pay is not supported by the payer.
  • SVNR: ServiceNotRendered - The payment is cancelled since a cash amount rendered was not correct or goods or a service was not rendered to the customer, e.g. in an e-commerce situation.
  • UCRD: UnknownCreditor - Unknown Creditor.
Enum"AB01""AB02""AB05""AB06""AB07""AB08""AB09""AB10""AB11""AC04"
additionalInformationstring

A human friendly description of the status reason including any further details if applicable.

{ "reason": { "schema": "string", "value": "AB01" }, "additionalInformation": "string" }

RequestToPayStatus

statusstringrequired
  • PAID: Paid - The request to pay was approved by the debtor and the payment has been processed. Note that the outcome of the payment itself is not communicated.
  • ACCEPTED: Accepted - The request to pay was approved by the debtor but the payment has not yet been processed.
  • CANCELLED: Cancelled - Request to pay has been successfully cancelled after having received a request for cancellation.
  • EXPIRED: Expired - The request to pay has expired.
  • PENDING: Pending - The request to pay has been forwarded and an intial status report is still expected.
  • PRESENTED: Presented - The request to pay has been accepted by the payer participant and will be presented to the debtor.
  • REJECTED: Rejected - The request to pay has been rejected.
  • REFUND_IN_PROGRESS: Refund in progress - The refund of the original request to pay is currently in progress and does not yet have an outcome
  • REFUNDED: Refunded - The refund of the original request to pay has been completed successfully
Enum"PAID""ACCEPTED""CANCELLED""EXPIRED""PENDING""PRESENTED""REJECTED""REFUND_IN_PROGRESS""REFUNDED"
reasonInfoArray of objects(RequestToPayStatusReasonInfo)non-empty

A list of RequestToPayStatusReasonInfo values providing detailed reason information for the status.

{ "status": "PAID", "reasonInfo": [ {} ] }

OriginalRequestToPayData

Contains key elements related to the original request to pay that is being referred to.

creditorobject(Party)

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAgentobject(InstitutionIdentification)
amountsobject(TransactionAmounts)
remittanceInformationobject(RemittanceInformation)
debtorobject(Party)

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)
expiryDateTimestring(date-time)

Date and time at which the request to pay expires. Some schemes may still permit a payment after the request to pay expires. Upon expiry, the following schemes will reject an associated payment: ZA_RPP. The date must be formatted as defined by date-time in RFC3339

paymentTypeInformationobject(PaymentTypeInformation)
requestToPayConditionsobject(RequestToPayConditions)

Describes the various aspects of a request to pay which must be accepted or to what extent they may be altered.

{ "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "remittanceInformation": { "unstructured": [], "structured": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "expiryDateTime": "2019-08-24T14:15:22Z", "paymentTypeInformation": { "localInstrument": {} }, "requestToPayConditions": { "minAmount": {}, "maxAmount": {} } }

RequestToPayResponse

An extension of BaseTransactionMessage which includes additional information pertinent to an asynchronous response message. In particular, original message identifiers.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

SchemeVerificationData

This object contains fields specific to the scheme being interacted with and determined by the chosen schema. Typically these are fields that are not standard within ISO20022 ACMT.023

schemastringrequired
Discriminator
checkDebitsAllowedboolean

Sets whether or not the response should indicate if debits are allowed on the account.

checkCreditsAllowedboolean

Sets whether or not the response should indicate if credits are allowed on the account.

checkOlderThanThreeMonthsboolean

Sets whether or not the response should indicate whether the account is older than 3 months.

initialsstring<= 70 characters

Initials of the individual account owner that is to be verified.

lastNamestring<= 70 characters

Family name of the individual account owner that is to be verified.

{ "schema": "ZA_AVS", "checkDebitsAllowed": true, "checkCreditsAllowed": true, "checkOlderThanThreeMonths": true, "initials": "string", "lastName": "string" }

ZaAccountVerificationData

Fields specific to account verification services in South Africa. The fields checksDebitsAllowed, checksCreditsAllowed and checksOlderThanThreeMonths indicate to the receiving FI whether or not to return the associated information (i.e. true or false in respect to those items)

schemastringrequired
Discriminator
checkDebitsAllowedboolean

Sets whether or not the response should indicate if debits are allowed on the account.

checkCreditsAllowedboolean

Sets whether or not the response should indicate if credits are allowed on the account.

checkOlderThanThreeMonthsboolean

Sets whether or not the response should indicate whether the account is older than 3 months.

initialsstring<= 70 characters

Initials of the individual account owner that is to be verified.

lastNamestring<= 70 characters

Family name of the individual account owner that is to be verified.

{ "schema": "ZA_AVS", "checkDebitsAllowed": true, "checkCreditsAllowed": true, "checkOlderThanThreeMonths": true, "initials": "string", "lastName": "string" }

Verification

identificationstring[ 1 .. 35 ] characters

Uniquely identifies this verification. Used in cases where a list of verifications are necessary, in such cases a verification may need to be uniquely identified independently from other verifications.

partyobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

party.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

party.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

party.​addressobject(PostalAddress)
party.​contactDetailsobject(ContactDetails)
party.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

party.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

accountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

account.​identificationobject(BankingIdentifier)
account.​proxyobject(NonBankingIdentifier)
account.​typeobject(AccountType)
account.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

account.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

agentobject(InstitutionIdentification)
schemeVerificationDataobject(SchemeVerificationData)

This object contains fields specific to the scheme being interacted with and determined by the chosen schema. Typically these are fields that are not standard within ISO20022 ACMT.023

{ "identification": "string", "party": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "account": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "agent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "schemeVerificationData": { "schema": "string" } }

AccountVerificationRequest

A model containing the foundational elements shared across messages relating to transactions.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

Assignment

creatorobject(Party)

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

firstAgentobject(InstitutionIdentification)
assignerobject(Party)

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

assigneeobject(Party)

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

{ "creator": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "firstAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "assigner": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "assignee": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} } }

StatusReasonTypeCode

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

valuestringrequired
  • ACCP: AcceptedCustomerProfile
  • ACCC: AcceptedSettlementCompletedCreditorAccount
  • ACSC: AcceptedSettlementCompletedDebtorAccount
  • ACSP: AcceptedSettlementInProcess
  • ACTC: AcceptedTechnicalValidation
  • ACWC: AcceptedWithChange
  • ACWP: AcceptedWithoutPosting
  • AB01 : AbortedClearingTimeout
  • AB02 : AbortedClearingFatalError
  • AB03 : AbortedSettlementTimeout
  • AB04 : AbortedSettlementFatalError
  • AB05 : TimeoutCreditorAgent
  • AB06 : TimeoutInstructedAgent
  • AB07 : OfflineAgent
  • AB08 : OfflineCreditorAgent
  • AB09 : ErrorCreditorAgent
  • AB10 : ErrorInstructedAgent
  • AB11 : TimeoutDebtorAgent
  • ACC : SuccessfulVerboseCdvOutcome
  • AC01 : IncorrectAccountNumber
  • AC02 : InvalidDebtorAccountNumber
  • AC03 : InvalidCreditorAccountNumber
  • AC04 : ClosedAccountNumber
  • AC05 : ClosedDebtorAccountNumber
  • AC06 : BlockedAccount
  • AC07 : ClosedCreditorAccountNumber
  • AC08 : InvalidBranchCode
  • AC09 : InvalidAccountCurrency
  • AC10 : InvalidDebtorAccountCurrency
  • AC11 : InvalidCreditorAccountCurrency
  • AC12 : InvalidAccountType
  • AC13 : InvalidDebtorAccountType
  • AC14 : InvalidCreditorAccountType
  • AC15 : AccountDetailsChanged
  • AC16 : CardNumberInvalid
  • AC17 : AccountInLiquidation
  • AEXR : AlreadyExpiredRTP
  • AG01 : TransactionForbidden
  • AG02 : InvalidBankOperationCode
  • AG03 : TransactionNotSupported
  • AG04 : InvalidAgentCountry
  • AG05 : InvalidDebtorAgentCountry
  • AG06 : InvalidCreditorAgentCountry
  • AG07 : UnsuccessfulDirectDebit
  • AG08 : InvalidAccessRights
  • AG09 : PaymentNotReceived
  • AG10 : AgentSuspended
  • AG11 : CreditorAgentSuspended
  • AG12 : NotAllowedBookTransfer
  • AG13 : ForbiddenReturnPayment
  • AGNT : IncorrectAgent
  • ALAC : AlreadyAcceptedRTP
  • AM01 : ZeroAmount
  • AM02 : NotAllowedAmount
  • AM03 : NotAllowedCurrency
  • AM04 : InsufficientFunds
  • AM05 : Duplication
  • AM06 : TooLowAmount
  • AM07 : BlockedAmount
  • AM09 : WrongAmount
  • AM10 : InvalidControlSum
  • AM11 : InvalidTransactionCurrency
  • AM12 : InvalidAmount
  • AM13 : AmountExceedsClearingSystemLimit
  • AM14 : AmountExceedsAgreedLimit
  • AM15 : AmountBelowClearingSystemMinimum
  • AM16 : InvalidGroupControlSum
  • AM17 : InvalidPaymentInfoControlSum
  • AM18 : InvalidNumberOfTransactions
  • AM19 : InvalidGroupNumberOfTransactions
  • AM20 : InvalidPaymentInfoNumberOfTransactions
  • AM21 : LimitExceeded
  • AM22 : ZeroAmountNotApplied
  • AM23 : AmountExceedsSettlementLimit
  • APAR : AlreadyPaidRTP
  • ARDT : AlreadyReturnedTransaction
  • ARFR : AlreadyRefusedRTP
  • ARJR : AlreadyRejectedRTP
  • ATNS : AttachmentsNotSupported
  • BE01 : InconsistentWithEndCustomer
  • BE04 : MissingCreditorAddress
  • BE05 : UnrecognisedInitiatingParty
  • BE06 : UnknownEndCustomer
  • BE07 : MissingDebtorAddress
  • BE08 : MissingDebtorName
  • BE09 : InvalidCountry
  • BE10 : InvalidDebtorCountry
  • BE11 : InvalidCreditorCountry
  • BE12 : InvalidCountryOfResidence
  • BE13 : InvalidDebtorCountryOfResidence
  • BE14 : InvalidCreditorCountryOfResidence
  • BE15 : InvalidIdentificationCode
  • BE16 : InvalidDebtorIdentificationCode
  • BE17 : InvalidCreditorIdentificationCode
  • BE18 : InvalidContactDetails
  • BE19 : InvalidChargeBearerCode
  • BE20 : InvalidNameLength
  • BE21 : MissingName
  • BE22 : MissingCreditorName
  • BE23 : AccountProxyInvalid
  • CERI : CheckERI
  • CH03 : RequestedExecutionDateOrRequestedCollectionDateTooFarInFuture
  • CH04 : RequestedExecutionDateOrRequestedCollectionDateTooFarInPast
  • CH07 : ElementIsNotToBeUsedAtB-andC-Level
  • CH09 : MandateChangesNotAllowed
  • CH10 : InformationOnMandateChangesMissing
  • CH11 : CreditorIdentifierIncorrect
  • CH12 : CreditorIdentifierNotUnambiguouslyAtTransaction-Level
  • CH13 : OriginalDebtorAccountIsNotToBeUsed
  • CH14 : OriginalDebtorAgentIsNotToBeUsed
  • CH15 : ElementContentIncludesMoreThan140Characters
  • CH16 : ElementContentFormallyIncorrect
  • CH17 : ElementNotAdmitted
  • CH19 : ValuesWillBeSetToNextTARGETday
  • CH20 : DecimalPointsNotCompatibleWithCurrency
  • CH21 : RequiredCompulsoryElementMissing
  • CH22 : COREandB2BwithinOnemessage
  • CHQC : ChequeSettledOnCreditorAccount
  • CN01 : AuthorisationCancelled
  • CNOR : CreditorBankIsNotRegistered
  • CURR : IncorrectCurrency
  • CUST : RequestedByCustomer
  • DNOR : DebtorBankIsNotRegistered
  • DS01 : ElectronicSignaturesCorrect
  • DS02 : OrderCancelled
  • DS03 : OrderNotCancelled
  • DS04 : OrderRejected
  • DS05 : OrderForwardedForPostprocessing
  • DS06 : TransferOrder
  • DS07 : ProcessingOK
  • DS08 : DecompressionError
  • DS09 : DecryptionError
  • DS0A : DataSignRequested
  • DS0B : UnknownDataSignFormat
  • DS0C : SignerCertificateRevoked
  • DS0D : SignerCertificateNotValid
  • DS0E : IncorrectSignerCertificate
  • DS0F : SignerCertificationAuthoritySignerNotValid
  • DS0G : NotAllowedPayment
  • DS0H : NotAllowedAccount
  • DS0K : NotAllowedNumberOfTransaction
  • DS10 : Signer1CertificateRevoked
  • DS11 : Signer1CertificateNotValid
  • DS12 : IncorrectSigner1Certificate
  • DS13 : SignerCertificationAuthoritySigner1NotValid
  • DS14 : UserDoesNotExist
  • DS15 : IdenticalSignatureFound
  • DS16 : PublicKeyVersionIncorrect
  • DS17 : DifferentOrderDataInSignatures
  • DS18 : RepeatOrder
  • DS19 : ElectronicSignatureRightsInsufficient
  • DS20 : Signer2CertificateRevoked
  • DS21 : Signer2CertificateNotValid
  • DS22 : IncorrectSigner2Certificate
  • DS23 : SignerCertificationAuthoritySigner2NotValid
  • DS24 : WaitingTimeExpired
  • DS25 : OrderFileDeleted
  • DS26 : UserSignedMultipleTimes
  • DS27 : UserNotYetActivated
  • DT01 : InvalidDate
  • DT02 : InvalidCreationDate
  • DT03 : InvalidNonProcessingDate
  • DT04 : FutureDateNotSupported
  • DT05 : InvalidCutOffDate
  • DT06 : ExecutionDateChanged
  • DU01 : DuplicateMessageID
  • DU02 : DuplicatePaymentInformationID
  • DU03 : DuplicateTransaction
  • DU04 : DuplicateEndToEndID
  • DU05 : DuplicateInstructionID
  • DUPL : DuplicatePayment
  • ED01 : CorrespondentBankNotPossible
  • ED03 : BalanceInfoRequest
  • ED05 : SettlementFailed
  • ED06 : SettlementSystemNotAvailable
  • EDTL : ExpiryDateTooLong
  • EDTR : ExpiryDateTimeReached
  • ERIN : ERIOptionNotSupported
  • FF01 : InvalidFileFormat
  • FF02 : SyntaxError
  • FF03 : InvalidPaymentTypeInformation
  • FF04 : InvalidServiceLevelCode
  • FF05 : InvalidLocalInstrumentCode
  • FF06 : InvalidCategoryPurposeCode
  • FF07 : InvalidPurpose
  • FF08 : InvalidEndToEndId
  • FF09 : InvalidChequeNumber
  • FF10 : BankSystemProcessingError
  • FF11 : ClearingRequestAborted
  • FF12 : OriginalTransactionNotEligibleForRequestedReturn
  • FF13 : RequestForCancellationNotFound
  • FOCR : FollowingCancellationRequest
  • FR01 : Fraud
  • FRAD : FraudulentOrigin
  • G000 : PaymentTransferredAndTracked
  • G001 : PaymentTransferredAndNotTracked
  • G002 : CreditDebitNotConfirmed
  • G003 : CreditPendingDocuments
  • G004 : CreditPendingFunds
  • G005 : DeliveredWithServiceLevel
  • G006 : DeliveredWithoutServiceLevel
  • ID01 : CorrespondingOriginalFileStillNotSent
  • IEDT : IncorrectExpiryDateTime
  • IRNR : InitialRTPNeverReceived
  • MD01 : NoMandate
  • MD02 : MissingMandatoryInformationInMandate
  • MD05 : CollectionNotDue
  • MD06 : RefundRequestByEndCustomer
  • MD07 : EndCustomerDeceased
  • MS02 : NotSpecifiedReasonCustomerGenerated
  • MS03 : NotSpecifiedReasonAgentGenerated
  • NARR : Narrative
  • NERI : NoERI
  • NOAR : NonAgreedRTP
  • NOAS : NoAnswerFromCustomer
  • NOCM : NotCompliantGeneric
  • NOOR : NoOriginalTransactionReceived
  • NOPG : NoPaymentGuarantee
  • NRCH : PayerOrPayerRTPSPNotReachable
  • PART : PartiallyAccepted
  • PINS : TypeOfPaymentInstrumentNotSupported
  • RC01 : BankIdentifierIncorrect
  • RC02 : InvalidBankIdentifier
  • RC03 : InvalidDebtorBankIdentifier
  • RC04 : InvalidCreditorBankIdentifier
  • RC05 : InvalidBICIdentifier
  • RC06 : InvalidDebtorBICIdentifier
  • RC07 : InvalidCreditorBICIdentifier
  • RC08 : InvalidClearingSystemMemberIdentifier
  • RC09 : InvalidDebtorClearingSystemMemberIdentifier
  • RC10 : InvalidCreditorClearingSystemMemberIdentifier
  • RC11 : InvalidIntermediaryAgent
  • RC12 : MissingCreditorSchemeId
  • RCON : RMessageConflict
  • RECI : ReceiverCustomerInformation
  • REPR : RTPReceivedCanBeProcessed
  • RF01 : NotUniqueTransactionReference
  • RR01 : MissingDebtorAccountOrIdentification
  • RR02 : MissingDebtorNameOrAddress
  • RR03 : MissingCreditorNameOrAddress
  • RR04 : RegulatoryReason
  • RR05 : RegulatoryInformationInvalid
  • RR06 : TaxInformationInvalid
  • RR07 : RemittanceInformationInvalid
  • RR08 : RemittanceInformationTruncated
  • RR09 : InvalidStructuredCreditorReference
  • RR10 : InvalidCharacterSet
  • RR11 : InvalidDebtorAgentServiceID
  • RR12 : InvalidPartyID
  • RTNS : RTPNotSupportedForDebtor
  • RUTA : ReturnUponUnableToApply
  • S000 : ValidRequestForCancellationAcknowledged
  • S001 : UETRFlaggedForCancellation
  • S002 : NetworkStopOfUETR
  • S003 : RequestForCancellationForwarded
  • S004 : RequestForCancellationDeliveryAcknowledgement
  • SL01 : SpecificServiceOfferedByDebtorAgent
  • SL02 : SpecificServiceOfferedByCreditorAgent
  • SL03 : ServiceofClearingSystem
  • SL11 : CreditorNotOnWhitelistOfDebtor
  • SL12 : CreditorOnBlacklistOfDebtor
  • SL13 : MaximumNumberOfDirectDebitTransactionsExceeded
  • SL14 : MaximumDirectDebitTransactionAmountExceeded
  • SP01 : PaymentStopped
  • SP02 : PreviouslyStopped
  • SPII : RTPServiceProviderIdentifierIncorrect
  • TA01 : TransmissionAborted
  • TD01 : NoDataAvailable
  • TD02 : FileNonReadable
  • TD03 : IncorrectFileStructure
  • TK01 : TokenInvalid
  • TK02 : SenderTokenNotFound
  • TK03 : ReceiverTokenNotFound
  • TK09 : TokenMissing
  • TKCM : TokenCounterpartyMismatch
  • TKSG : TokenSingleUse
  • TKSP : TokenSuspended
  • TKVE : TokenValueLimitExceeded
  • TKXP : TokenExpired
  • TM01 : InvalidCutOffTime
  • TS01 : TransmissionSuccessful
  • TS04 : TransferToSignByHand
  • UCRD : UnknownCreditor
  • UPAY : UnduePayment
Enum"ACCC""ACCP""ACSC""ACTC""ACWP""AB01""AB02""AB03""AB04""AB05"
{ "schema": "string", "value": "ACCC" }

StatusReasonType

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
valuestringrequired
  • ACCP: AcceptedCustomerProfile
  • ACCC: AcceptedSettlementCompletedCreditorAccount
  • ACSC: AcceptedSettlementCompletedDebtorAccount
  • ACSP: AcceptedSettlementInProcess
  • ACTC: AcceptedTechnicalValidation
  • ACWC: AcceptedWithChange
  • ACWP: AcceptedWithoutPosting
  • AB01 : AbortedClearingTimeout
  • AB02 : AbortedClearingFatalError
  • AB03 : AbortedSettlementTimeout
  • AB04 : AbortedSettlementFatalError
  • AB05 : TimeoutCreditorAgent
  • AB06 : TimeoutInstructedAgent
  • AB07 : OfflineAgent
  • AB08 : OfflineCreditorAgent
  • AB09 : ErrorCreditorAgent
  • AB10 : ErrorInstructedAgent
  • AB11 : TimeoutDebtorAgent
  • ACC : SuccessfulVerboseCdvOutcome
  • AC01 : IncorrectAccountNumber
  • AC02 : InvalidDebtorAccountNumber
  • AC03 : InvalidCreditorAccountNumber
  • AC04 : ClosedAccountNumber
  • AC05 : ClosedDebtorAccountNumber
  • AC06 : BlockedAccount
  • AC07 : ClosedCreditorAccountNumber
  • AC08 : InvalidBranchCode
  • AC09 : InvalidAccountCurrency
  • AC10 : InvalidDebtorAccountCurrency
  • AC11 : InvalidCreditorAccountCurrency
  • AC12 : InvalidAccountType
  • AC13 : InvalidDebtorAccountType
  • AC14 : InvalidCreditorAccountType
  • AC15 : AccountDetailsChanged
  • AC16 : CardNumberInvalid
  • AC17 : AccountInLiquidation
  • AEXR : AlreadyExpiredRTP
  • AG01 : TransactionForbidden
  • AG02 : InvalidBankOperationCode
  • AG03 : TransactionNotSupported
  • AG04 : InvalidAgentCountry
  • AG05 : InvalidDebtorAgentCountry
  • AG06 : InvalidCreditorAgentCountry
  • AG07 : UnsuccessfulDirectDebit
  • AG08 : InvalidAccessRights
  • AG09 : PaymentNotReceived
  • AG10 : AgentSuspended
  • AG11 : CreditorAgentSuspended
  • AG12 : NotAllowedBookTransfer
  • AG13 : ForbiddenReturnPayment
  • AGNT : IncorrectAgent
  • ALAC : AlreadyAcceptedRTP
  • AM01 : ZeroAmount
  • AM02 : NotAllowedAmount
  • AM03 : NotAllowedCurrency
  • AM04 : InsufficientFunds
  • AM05 : Duplication
  • AM06 : TooLowAmount
  • AM07 : BlockedAmount
  • AM09 : WrongAmount
  • AM10 : InvalidControlSum
  • AM11 : InvalidTransactionCurrency
  • AM12 : InvalidAmount
  • AM13 : AmountExceedsClearingSystemLimit
  • AM14 : AmountExceedsAgreedLimit
  • AM15 : AmountBelowClearingSystemMinimum
  • AM16 : InvalidGroupControlSum
  • AM17 : InvalidPaymentInfoControlSum
  • AM18 : InvalidNumberOfTransactions
  • AM19 : InvalidGroupNumberOfTransactions
  • AM20 : InvalidPaymentInfoNumberOfTransactions
  • AM21 : LimitExceeded
  • AM22 : ZeroAmountNotApplied
  • AM23 : AmountExceedsSettlementLimit
  • APAR : AlreadyPaidRTP
  • ARDT : AlreadyReturnedTransaction
  • ARFR : AlreadyRefusedRTP
  • ARJR : AlreadyRejectedRTP
  • ATNS : AttachmentsNotSupported
  • BE01 : InconsistentWithEndCustomer
  • BE04 : MissingCreditorAddress
  • BE05 : UnrecognisedInitiatingParty
  • BE06 : UnknownEndCustomer
  • BE07 : MissingDebtorAddress
  • BE08 : MissingDebtorName
  • BE09 : InvalidCountry
  • BE10 : InvalidDebtorCountry
  • BE11 : InvalidCreditorCountry
  • BE12 : InvalidCountryOfResidence
  • BE13 : InvalidDebtorCountryOfResidence
  • BE14 : InvalidCreditorCountryOfResidence
  • BE15 : InvalidIdentificationCode
  • BE16 : InvalidDebtorIdentificationCode
  • BE17 : InvalidCreditorIdentificationCode
  • BE18 : InvalidContactDetails
  • BE19 : InvalidChargeBearerCode
  • BE20 : InvalidNameLength
  • BE21 : MissingName
  • BE22 : MissingCreditorName
  • BE23 : AccountProxyInvalid
  • CERI : CheckERI
  • CH03 : RequestedExecutionDateOrRequestedCollectionDateTooFarInFuture
  • CH04 : RequestedExecutionDateOrRequestedCollectionDateTooFarInPast
  • CH07 : ElementIsNotToBeUsedAtB-andC-Level
  • CH09 : MandateChangesNotAllowed
  • CH10 : InformationOnMandateChangesMissing
  • CH11 : CreditorIdentifierIncorrect
  • CH12 : CreditorIdentifierNotUnambiguouslyAtTransaction-Level
  • CH13 : OriginalDebtorAccountIsNotToBeUsed
  • CH14 : OriginalDebtorAgentIsNotToBeUsed
  • CH15 : ElementContentIncludesMoreThan140Characters
  • CH16 : ElementContentFormallyIncorrect
  • CH17 : ElementNotAdmitted
  • CH19 : ValuesWillBeSetToNextTARGETday
  • CH20 : DecimalPointsNotCompatibleWithCurrency
  • CH21 : RequiredCompulsoryElementMissing
  • CH22 : COREandB2BwithinOnemessage
  • CHQC : ChequeSettledOnCreditorAccount
  • CN01 : AuthorisationCancelled
  • CNOR : CreditorBankIsNotRegistered
  • CURR : IncorrectCurrency
  • CUST : RequestedByCustomer
  • DNOR : DebtorBankIsNotRegistered
  • DS01 : ElectronicSignaturesCorrect
  • DS02 : OrderCancelled
  • DS03 : OrderNotCancelled
  • DS04 : OrderRejected
  • DS05 : OrderForwardedForPostprocessing
  • DS06 : TransferOrder
  • DS07 : ProcessingOK
  • DS08 : DecompressionError
  • DS09 : DecryptionError
  • DS0A : DataSignRequested
  • DS0B : UnknownDataSignFormat
  • DS0C : SignerCertificateRevoked
  • DS0D : SignerCertificateNotValid
  • DS0E : IncorrectSignerCertificate
  • DS0F : SignerCertificationAuthoritySignerNotValid
  • DS0G : NotAllowedPayment
  • DS0H : NotAllowedAccount
  • DS0K : NotAllowedNumberOfTransaction
  • DS10 : Signer1CertificateRevoked
  • DS11 : Signer1CertificateNotValid
  • DS12 : IncorrectSigner1Certificate
  • DS13 : SignerCertificationAuthoritySigner1NotValid
  • DS14 : UserDoesNotExist
  • DS15 : IdenticalSignatureFound
  • DS16 : PublicKeyVersionIncorrect
  • DS17 : DifferentOrderDataInSignatures
  • DS18 : RepeatOrder
  • DS19 : ElectronicSignatureRightsInsufficient
  • DS20 : Signer2CertificateRevoked
  • DS21 : Signer2CertificateNotValid
  • DS22 : IncorrectSigner2Certificate
  • DS23 : SignerCertificationAuthoritySigner2NotValid
  • DS24 : WaitingTimeExpired
  • DS25 : OrderFileDeleted
  • DS26 : UserSignedMultipleTimes
  • DS27 : UserNotYetActivated
  • DT01 : InvalidDate
  • DT02 : InvalidCreationDate
  • DT03 : InvalidNonProcessingDate
  • DT04 : FutureDateNotSupported
  • DT05 : InvalidCutOffDate
  • DT06 : ExecutionDateChanged
  • DU01 : DuplicateMessageID
  • DU02 : DuplicatePaymentInformationID
  • DU03 : DuplicateTransaction
  • DU04 : DuplicateEndToEndID
  • DU05 : DuplicateInstructionID
  • DUPL : DuplicatePayment
  • ED01 : CorrespondentBankNotPossible
  • ED03 : BalanceInfoRequest
  • ED05 : SettlementFailed
  • ED06 : SettlementSystemNotAvailable
  • EDTL : ExpiryDateTooLong
  • EDTR : ExpiryDateTimeReached
  • ERIN : ERIOptionNotSupported
  • FF01 : InvalidFileFormat
  • FF02 : SyntaxError
  • FF03 : InvalidPaymentTypeInformation
  • FF04 : InvalidServiceLevelCode
  • FF05 : InvalidLocalInstrumentCode
  • FF06 : InvalidCategoryPurposeCode
  • FF07 : InvalidPurpose
  • FF08 : InvalidEndToEndId
  • FF09 : InvalidChequeNumber
  • FF10 : BankSystemProcessingError
  • FF11 : ClearingRequestAborted
  • FF12 : OriginalTransactionNotEligibleForRequestedReturn
  • FF13 : RequestForCancellationNotFound
  • FOCR : FollowingCancellationRequest
  • FR01 : Fraud
  • FRAD : FraudulentOrigin
  • G000 : PaymentTransferredAndTracked
  • G001 : PaymentTransferredAndNotTracked
  • G002 : CreditDebitNotConfirmed
  • G003 : CreditPendingDocuments
  • G004 : CreditPendingFunds
  • G005 : DeliveredWithServiceLevel
  • G006 : DeliveredWithoutServiceLevel
  • ID01 : CorrespondingOriginalFileStillNotSent
  • IEDT : IncorrectExpiryDateTime
  • IRNR : InitialRTPNeverReceived
  • MD01 : NoMandate
  • MD02 : MissingMandatoryInformationInMandate
  • MD05 : CollectionNotDue
  • MD06 : RefundRequestByEndCustomer
  • MD07 : EndCustomerDeceased
  • MS02 : NotSpecifiedReasonCustomerGenerated
  • MS03 : NotSpecifiedReasonAgentGenerated
  • NARR : Narrative
  • NERI : NoERI
  • NOAR : NonAgreedRTP
  • NOAS : NoAnswerFromCustomer
  • NOCM : NotCompliantGeneric
  • NOOR : NoOriginalTransactionReceived
  • NOPG : NoPaymentGuarantee
  • NRCH : PayerOrPayerRTPSPNotReachable
  • PART : PartiallyAccepted
  • PINS : TypeOfPaymentInstrumentNotSupported
  • RC01 : BankIdentifierIncorrect
  • RC02 : InvalidBankIdentifier
  • RC03 : InvalidDebtorBankIdentifier
  • RC04 : InvalidCreditorBankIdentifier
  • RC05 : InvalidBICIdentifier
  • RC06 : InvalidDebtorBICIdentifier
  • RC07 : InvalidCreditorBICIdentifier
  • RC08 : InvalidClearingSystemMemberIdentifier
  • RC09 : InvalidDebtorClearingSystemMemberIdentifier
  • RC10 : InvalidCreditorClearingSystemMemberIdentifier
  • RC11 : InvalidIntermediaryAgent
  • RC12 : MissingCreditorSchemeId
  • RCON : RMessageConflict
  • RECI : ReceiverCustomerInformation
  • REPR : RTPReceivedCanBeProcessed
  • RF01 : NotUniqueTransactionReference
  • RR01 : MissingDebtorAccountOrIdentification
  • RR02 : MissingDebtorNameOrAddress
  • RR03 : MissingCreditorNameOrAddress
  • RR04 : RegulatoryReason
  • RR05 : RegulatoryInformationInvalid
  • RR06 : TaxInformationInvalid
  • RR07 : RemittanceInformationInvalid
  • RR08 : RemittanceInformationTruncated
  • RR09 : InvalidStructuredCreditorReference
  • RR10 : InvalidCharacterSet
  • RR11 : InvalidDebtorAgentServiceID
  • RR12 : InvalidPartyID
  • RTNS : RTPNotSupportedForDebtor
  • RUTA : ReturnUponUnableToApply
  • S000 : ValidRequestForCancellationAcknowledged
  • S001 : UETRFlaggedForCancellation
  • S002 : NetworkStopOfUETR
  • S003 : RequestForCancellationForwarded
  • S004 : RequestForCancellationDeliveryAcknowledgement
  • SL01 : SpecificServiceOfferedByDebtorAgent
  • SL02 : SpecificServiceOfferedByCreditorAgent
  • SL03 : ServiceofClearingSystem
  • SL11 : CreditorNotOnWhitelistOfDebtor
  • SL12 : CreditorOnBlacklistOfDebtor
  • SL13 : MaximumNumberOfDirectDebitTransactionsExceeded
  • SL14 : MaximumDirectDebitTransactionAmountExceeded
  • SP01 : PaymentStopped
  • SP02 : PreviouslyStopped
  • SPII : RTPServiceProviderIdentifierIncorrect
  • TA01 : TransmissionAborted
  • TD01 : NoDataAvailable
  • TD02 : FileNonReadable
  • TD03 : IncorrectFileStructure
  • TK01 : TokenInvalid
  • TK02 : SenderTokenNotFound
  • TK03 : ReceiverTokenNotFound
  • TK09 : TokenMissing
  • TKCM : TokenCounterpartyMismatch
  • TKSG : TokenSingleUse
  • TKSP : TokenSuspended
  • TKVE : TokenValueLimitExceeded
  • TKXP : TokenExpired
  • TM01 : InvalidCutOffTime
  • TS01 : TransmissionSuccessful
  • TS04 : TransferToSignByHand
  • UCRD : UnknownCreditor
  • UPAY : UnduePayment
Enum"ACCC""ACCP""ACSC""ACTC""ACWP""AB01""AB02""AB03""AB04""AB05"
{ "schema": "CODE", "value": "ACCC" }

StatusReasonInfo

Provides detailed information on a status reason.

reasonobject(StatusReasonType)required
reason.​schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
reason.​valuestringrequired
  • ACCP: AcceptedCustomerProfile
  • ACCC: AcceptedSettlementCompletedCreditorAccount
  • ACSC: AcceptedSettlementCompletedDebtorAccount
  • ACSP: AcceptedSettlementInProcess
  • ACTC: AcceptedTechnicalValidation
  • ACWC: AcceptedWithChange
  • ACWP: AcceptedWithoutPosting
  • AB01 : AbortedClearingTimeout
  • AB02 : AbortedClearingFatalError
  • AB03 : AbortedSettlementTimeout
  • AB04 : AbortedSettlementFatalError
  • AB05 : TimeoutCreditorAgent
  • AB06 : TimeoutInstructedAgent
  • AB07 : OfflineAgent
  • AB08 : OfflineCreditorAgent
  • AB09 : ErrorCreditorAgent
  • AB10 : ErrorInstructedAgent
  • AB11 : TimeoutDebtorAgent
  • ACC : SuccessfulVerboseCdvOutcome
  • AC01 : IncorrectAccountNumber
  • AC02 : InvalidDebtorAccountNumber
  • AC03 : InvalidCreditorAccountNumber
  • AC04 : ClosedAccountNumber
  • AC05 : ClosedDebtorAccountNumber
  • AC06 : BlockedAccount
  • AC07 : ClosedCreditorAccountNumber
  • AC08 : InvalidBranchCode
  • AC09 : InvalidAccountCurrency
  • AC10 : InvalidDebtorAccountCurrency
  • AC11 : InvalidCreditorAccountCurrency
  • AC12 : InvalidAccountType
  • AC13 : InvalidDebtorAccountType
  • AC14 : InvalidCreditorAccountType
  • AC15 : AccountDetailsChanged
  • AC16 : CardNumberInvalid
  • AC17 : AccountInLiquidation
  • AEXR : AlreadyExpiredRTP
  • AG01 : TransactionForbidden
  • AG02 : InvalidBankOperationCode
  • AG03 : TransactionNotSupported
  • AG04 : InvalidAgentCountry
  • AG05 : InvalidDebtorAgentCountry
  • AG06 : InvalidCreditorAgentCountry
  • AG07 : UnsuccessfulDirectDebit
  • AG08 : InvalidAccessRights
  • AG09 : PaymentNotReceived
  • AG10 : AgentSuspended
  • AG11 : CreditorAgentSuspended
  • AG12 : NotAllowedBookTransfer
  • AG13 : ForbiddenReturnPayment
  • AGNT : IncorrectAgent
  • ALAC : AlreadyAcceptedRTP
  • AM01 : ZeroAmount
  • AM02 : NotAllowedAmount
  • AM03 : NotAllowedCurrency
  • AM04 : InsufficientFunds
  • AM05 : Duplication
  • AM06 : TooLowAmount
  • AM07 : BlockedAmount
  • AM09 : WrongAmount
  • AM10 : InvalidControlSum
  • AM11 : InvalidTransactionCurrency
  • AM12 : InvalidAmount
  • AM13 : AmountExceedsClearingSystemLimit
  • AM14 : AmountExceedsAgreedLimit
  • AM15 : AmountBelowClearingSystemMinimum
  • AM16 : InvalidGroupControlSum
  • AM17 : InvalidPaymentInfoControlSum
  • AM18 : InvalidNumberOfTransactions
  • AM19 : InvalidGroupNumberOfTransactions
  • AM20 : InvalidPaymentInfoNumberOfTransactions
  • AM21 : LimitExceeded
  • AM22 : ZeroAmountNotApplied
  • AM23 : AmountExceedsSettlementLimit
  • APAR : AlreadyPaidRTP
  • ARDT : AlreadyReturnedTransaction
  • ARFR : AlreadyRefusedRTP
  • ARJR : AlreadyRejectedRTP
  • ATNS : AttachmentsNotSupported
  • BE01 : InconsistentWithEndCustomer
  • BE04 : MissingCreditorAddress
  • BE05 : UnrecognisedInitiatingParty
  • BE06 : UnknownEndCustomer
  • BE07 : MissingDebtorAddress
  • BE08 : MissingDebtorName
  • BE09 : InvalidCountry
  • BE10 : InvalidDebtorCountry
  • BE11 : InvalidCreditorCountry
  • BE12 : InvalidCountryOfResidence
  • BE13 : InvalidDebtorCountryOfResidence
  • BE14 : InvalidCreditorCountryOfResidence
  • BE15 : InvalidIdentificationCode
  • BE16 : InvalidDebtorIdentificationCode
  • BE17 : InvalidCreditorIdentificationCode
  • BE18 : InvalidContactDetails
  • BE19 : InvalidChargeBearerCode
  • BE20 : InvalidNameLength
  • BE21 : MissingName
  • BE22 : MissingCreditorName
  • BE23 : AccountProxyInvalid
  • CERI : CheckERI
  • CH03 : RequestedExecutionDateOrRequestedCollectionDateTooFarInFuture
  • CH04 : RequestedExecutionDateOrRequestedCollectionDateTooFarInPast
  • CH07 : ElementIsNotToBeUsedAtB-andC-Level
  • CH09 : MandateChangesNotAllowed
  • CH10 : InformationOnMandateChangesMissing
  • CH11 : CreditorIdentifierIncorrect
  • CH12 : CreditorIdentifierNotUnambiguouslyAtTransaction-Level
  • CH13 : OriginalDebtorAccountIsNotToBeUsed
  • CH14 : OriginalDebtorAgentIsNotToBeUsed
  • CH15 : ElementContentIncludesMoreThan140Characters
  • CH16 : ElementContentFormallyIncorrect
  • CH17 : ElementNotAdmitted
  • CH19 : ValuesWillBeSetToNextTARGETday
  • CH20 : DecimalPointsNotCompatibleWithCurrency
  • CH21 : RequiredCompulsoryElementMissing
  • CH22 : COREandB2BwithinOnemessage
  • CHQC : ChequeSettledOnCreditorAccount
  • CN01 : AuthorisationCancelled
  • CNOR : CreditorBankIsNotRegistered
  • CURR : IncorrectCurrency
  • CUST : RequestedByCustomer
  • DNOR : DebtorBankIsNotRegistered
  • DS01 : ElectronicSignaturesCorrect
  • DS02 : OrderCancelled
  • DS03 : OrderNotCancelled
  • DS04 : OrderRejected
  • DS05 : OrderForwardedForPostprocessing
  • DS06 : TransferOrder
  • DS07 : ProcessingOK
  • DS08 : DecompressionError
  • DS09 : DecryptionError
  • DS0A : DataSignRequested
  • DS0B : UnknownDataSignFormat
  • DS0C : SignerCertificateRevoked
  • DS0D : SignerCertificateNotValid
  • DS0E : IncorrectSignerCertificate
  • DS0F : SignerCertificationAuthoritySignerNotValid
  • DS0G : NotAllowedPayment
  • DS0H : NotAllowedAccount
  • DS0K : NotAllowedNumberOfTransaction
  • DS10 : Signer1CertificateRevoked
  • DS11 : Signer1CertificateNotValid
  • DS12 : IncorrectSigner1Certificate
  • DS13 : SignerCertificationAuthoritySigner1NotValid
  • DS14 : UserDoesNotExist
  • DS15 : IdenticalSignatureFound
  • DS16 : PublicKeyVersionIncorrect
  • DS17 : DifferentOrderDataInSignatures
  • DS18 : RepeatOrder
  • DS19 : ElectronicSignatureRightsInsufficient
  • DS20 : Signer2CertificateRevoked
  • DS21 : Signer2CertificateNotValid
  • DS22 : IncorrectSigner2Certificate
  • DS23 : SignerCertificationAuthoritySigner2NotValid
  • DS24 : WaitingTimeExpired
  • DS25 : OrderFileDeleted
  • DS26 : UserSignedMultipleTimes
  • DS27 : UserNotYetActivated
  • DT01 : InvalidDate
  • DT02 : InvalidCreationDate
  • DT03 : InvalidNonProcessingDate
  • DT04 : FutureDateNotSupported
  • DT05 : InvalidCutOffDate
  • DT06 : ExecutionDateChanged
  • DU01 : DuplicateMessageID
  • DU02 : DuplicatePaymentInformationID
  • DU03 : DuplicateTransaction
  • DU04 : DuplicateEndToEndID
  • DU05 : DuplicateInstructionID
  • DUPL : DuplicatePayment
  • ED01 : CorrespondentBankNotPossible
  • ED03 : BalanceInfoRequest
  • ED05 : SettlementFailed
  • ED06 : SettlementSystemNotAvailable
  • EDTL : ExpiryDateTooLong
  • EDTR : ExpiryDateTimeReached
  • ERIN : ERIOptionNotSupported
  • FF01 : InvalidFileFormat
  • FF02 : SyntaxError
  • FF03 : InvalidPaymentTypeInformation
  • FF04 : InvalidServiceLevelCode
  • FF05 : InvalidLocalInstrumentCode
  • FF06 : InvalidCategoryPurposeCode
  • FF07 : InvalidPurpose
  • FF08 : InvalidEndToEndId
  • FF09 : InvalidChequeNumber
  • FF10 : BankSystemProcessingError
  • FF11 : ClearingRequestAborted
  • FF12 : OriginalTransactionNotEligibleForRequestedReturn
  • FF13 : RequestForCancellationNotFound
  • FOCR : FollowingCancellationRequest
  • FR01 : Fraud
  • FRAD : FraudulentOrigin
  • G000 : PaymentTransferredAndTracked
  • G001 : PaymentTransferredAndNotTracked
  • G002 : CreditDebitNotConfirmed
  • G003 : CreditPendingDocuments
  • G004 : CreditPendingFunds
  • G005 : DeliveredWithServiceLevel
  • G006 : DeliveredWithoutServiceLevel
  • ID01 : CorrespondingOriginalFileStillNotSent
  • IEDT : IncorrectExpiryDateTime
  • IRNR : InitialRTPNeverReceived
  • MD01 : NoMandate
  • MD02 : MissingMandatoryInformationInMandate
  • MD05 : CollectionNotDue
  • MD06 : RefundRequestByEndCustomer
  • MD07 : EndCustomerDeceased
  • MS02 : NotSpecifiedReasonCustomerGenerated
  • MS03 : NotSpecifiedReasonAgentGenerated
  • NARR : Narrative
  • NERI : NoERI
  • NOAR : NonAgreedRTP
  • NOAS : NoAnswerFromCustomer
  • NOCM : NotCompliantGeneric
  • NOOR : NoOriginalTransactionReceived
  • NOPG : NoPaymentGuarantee
  • NRCH : PayerOrPayerRTPSPNotReachable
  • PART : PartiallyAccepted
  • PINS : TypeOfPaymentInstrumentNotSupported
  • RC01 : BankIdentifierIncorrect
  • RC02 : InvalidBankIdentifier
  • RC03 : InvalidDebtorBankIdentifier
  • RC04 : InvalidCreditorBankIdentifier
  • RC05 : InvalidBICIdentifier
  • RC06 : InvalidDebtorBICIdentifier
  • RC07 : InvalidCreditorBICIdentifier
  • RC08 : InvalidClearingSystemMemberIdentifier
  • RC09 : InvalidDebtorClearingSystemMemberIdentifier
  • RC10 : InvalidCreditorClearingSystemMemberIdentifier
  • RC11 : InvalidIntermediaryAgent
  • RC12 : MissingCreditorSchemeId
  • RCON : RMessageConflict
  • RECI : ReceiverCustomerInformation
  • REPR : RTPReceivedCanBeProcessed
  • RF01 : NotUniqueTransactionReference
  • RR01 : MissingDebtorAccountOrIdentification
  • RR02 : MissingDebtorNameOrAddress
  • RR03 : MissingCreditorNameOrAddress
  • RR04 : RegulatoryReason
  • RR05 : RegulatoryInformationInvalid
  • RR06 : TaxInformationInvalid
  • RR07 : RemittanceInformationInvalid
  • RR08 : RemittanceInformationTruncated
  • RR09 : InvalidStructuredCreditorReference
  • RR10 : InvalidCharacterSet
  • RR11 : InvalidDebtorAgentServiceID
  • RR12 : InvalidPartyID
  • RTNS : RTPNotSupportedForDebtor
  • RUTA : ReturnUponUnableToApply
  • S000 : ValidRequestForCancellationAcknowledged
  • S001 : UETRFlaggedForCancellation
  • S002 : NetworkStopOfUETR
  • S003 : RequestForCancellationForwarded
  • S004 : RequestForCancellationDeliveryAcknowledgement
  • SL01 : SpecificServiceOfferedByDebtorAgent
  • SL02 : SpecificServiceOfferedByCreditorAgent
  • SL03 : ServiceofClearingSystem
  • SL11 : CreditorNotOnWhitelistOfDebtor
  • SL12 : CreditorOnBlacklistOfDebtor
  • SL13 : MaximumNumberOfDirectDebitTransactionsExceeded
  • SL14 : MaximumDirectDebitTransactionAmountExceeded
  • SP01 : PaymentStopped
  • SP02 : PreviouslyStopped
  • SPII : RTPServiceProviderIdentifierIncorrect
  • TA01 : TransmissionAborted
  • TD01 : NoDataAvailable
  • TD02 : FileNonReadable
  • TD03 : IncorrectFileStructure
  • TK01 : TokenInvalid
  • TK02 : SenderTokenNotFound
  • TK03 : ReceiverTokenNotFound
  • TK09 : TokenMissing
  • TKCM : TokenCounterpartyMismatch
  • TKSG : TokenSingleUse
  • TKSP : TokenSuspended
  • TKVE : TokenValueLimitExceeded
  • TKXP : TokenExpired
  • TM01 : InvalidCutOffTime
  • TS01 : TransmissionSuccessful
  • TS04 : TransferToSignByHand
  • UCRD : UnknownCreditor
  • UPAY : UnduePayment
Enum"ACCC""ACCP""ACSC""ACTC""ACWP""AB01""AB02""AB03""AB04""AB05"
additionalInformationstring

A human friendly description of the status reason including any further details if applicable.

{ "reason": { "schema": "string", "value": "ACCC" }, "additionalInformation": "string" }

Status

outcomestringrequired
  • APPROVED: The instruction has been approved.
  • CANCELLED: The instruction has been cancelled.
  • PENDING: The instruction is pending.
  • REJECTED: The instruction has been rejected.
Enum"APPROVED""CANCELLED""PENDING""REJECTED"
reasonInfoArray of objects(StatusReasonInfo)non-empty

A list of StatusReasonInfo values providing detailed reason information for the outcome.

{ "outcome": "APPROVED", "reasonInfo": [ {} ] }

VerificationOutcome

Indicates whether the information provided in the verification request was correct (PASSED) or was incorrect (FAILED). If it was incorrect, a reason is provided.

schemastring
Discriminator
{ "schema": "PASSED" }

VerificationPassedOutcome

Indicates whether the information provided in the verification request was correct (PASSED) or was incorrect (FAILED). If it was incorrect, a reason is provided.

schemastring
Discriminator
{ "schema": "PASSED" }

ExternalVerificationReason1Code

  • ACC : Successful verbose Cdv Outcome.
  • AC01 : Account number provided in the request is invalid or missing.
  • AGNT : Agent identification provided in the request is incorrect.
  • DUPL : Request is a duplicate of another request.
  • AG01 : Transaction forbidden on this type of account (Payment cannot be made to this account for example not open for deposits, blocked, closed).
  • BNOR : PSP is not registered under this Scheme.
  • DS28 : Return following technical problems resulting in erroneous transaction.
  • FF01 : File format incomplete or invalid.
  • MS03 : Reason has not been specified by agent.
  • NORR : No response on request within timeframe.
  • NR01 : PSP not able to confirm details and no reason is stated.
  • RC03 : Debtor bank identifier is invalid or missing.
  • RC04 : Creditor bank identifier is invalid or missing.
  • TM01 : Associated message was received after agreed processing cut-off time.
  • PN01 : Account Owner name and Payment Account number do not match.
  • PN02 : Account Owner name and Payment Account number is a close match.
  • PI01 : Account Owner Identification and Payment Account number do not match.
string(ExternalVerificationReason1Code)[ 1 .. 4 ] characters
  • ACC : Successful verbose Cdv Outcome.
  • AC01 : Account number provided in the request is invalid or missing.
  • AGNT : Agent identification provided in the request is incorrect.
  • DUPL : Request is a duplicate of another request.
  • AG01 : Transaction forbidden on this type of account (Payment cannot be made to this account for example not open for deposits, blocked, closed).
  • BNOR : PSP is not registered under this Scheme.
  • DS28 : Return following technical problems resulting in erroneous transaction.
  • FF01 : File format incomplete or invalid.
  • MS03 : Reason has not been specified by agent.
  • NORR : No response on request within timeframe.
  • NR01 : PSP not able to confirm details and no reason is stated.
  • RC03 : Debtor bank identifier is invalid or missing.
  • RC04 : Creditor bank identifier is invalid or missing.
  • TM01 : Associated message was received after agreed processing cut-off time.
  • PN01 : Account Owner name and Payment Account number do not match.
  • PN02 : Account Owner name and Payment Account number is a close match.
  • PI01 : Account Owner Identification and Payment Account number do not match.
Enum"ACC""AC01""AGNT""DUPL""AG01""BNOR""DS28""FF01""MS03""NORR"
"ACC"

VerificationReasonCode

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

valuestring(ExternalVerificationReason1Code)[ 1 .. 4 ] charactersrequired
  • ACC : Successful verbose Cdv Outcome.
  • AC01 : Account number provided in the request is invalid or missing.
  • AGNT : Agent identification provided in the request is incorrect.
  • DUPL : Request is a duplicate of another request.
  • AG01 : Transaction forbidden on this type of account (Payment cannot be made to this account for example not open for deposits, blocked, closed).
  • BNOR : PSP is not registered under this Scheme.
  • DS28 : Return following technical problems resulting in erroneous transaction.
  • FF01 : File format incomplete or invalid.
  • MS03 : Reason has not been specified by agent.
  • NORR : No response on request within timeframe.
  • NR01 : PSP not able to confirm details and no reason is stated.
  • RC03 : Debtor bank identifier is invalid or missing.
  • RC04 : Creditor bank identifier is invalid or missing.
  • TM01 : Associated message was received after agreed processing cut-off time.
  • PN01 : Account Owner name and Payment Account number do not match.
  • PN02 : Account Owner name and Payment Account number is a close match.
  • PI01 : Account Owner Identification and Payment Account number do not match.
Enum"ACC""AC01""AGNT""DUPL""AG01""BNOR""DS28""FF01""MS03""NORR"
{ "schema": "string", "value": "ACC" }

VerificationReasonType

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
valuestring(ExternalVerificationReason1Code)[ 1 .. 4 ] charactersrequired
  • ACC : Successful verbose Cdv Outcome.
  • AC01 : Account number provided in the request is invalid or missing.
  • AGNT : Agent identification provided in the request is incorrect.
  • DUPL : Request is a duplicate of another request.
  • AG01 : Transaction forbidden on this type of account (Payment cannot be made to this account for example not open for deposits, blocked, closed).
  • BNOR : PSP is not registered under this Scheme.
  • DS28 : Return following technical problems resulting in erroneous transaction.
  • FF01 : File format incomplete or invalid.
  • MS03 : Reason has not been specified by agent.
  • NORR : No response on request within timeframe.
  • NR01 : PSP not able to confirm details and no reason is stated.
  • RC03 : Debtor bank identifier is invalid or missing.
  • RC04 : Creditor bank identifier is invalid or missing.
  • TM01 : Associated message was received after agreed processing cut-off time.
  • PN01 : Account Owner name and Payment Account number do not match.
  • PN02 : Account Owner name and Payment Account number is a close match.
  • PI01 : Account Owner Identification and Payment Account number do not match.
Enum"ACC""AC01""AGNT""DUPL""AG01""BNOR""DS28""FF01""MS03""NORR"
{ "schema": "CODE", "value": "ACC" }

VerificationReasonInfo

Provides detailed information on a verification reason.

reasonobject(VerificationReasonType)required
reason.​schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
reason.​valuestring(ExternalVerificationReason1Code)[ 1 .. 4 ] charactersrequired
  • ACC : Successful verbose Cdv Outcome.
  • AC01 : Account number provided in the request is invalid or missing.
  • AGNT : Agent identification provided in the request is incorrect.
  • DUPL : Request is a duplicate of another request.
  • AG01 : Transaction forbidden on this type of account (Payment cannot be made to this account for example not open for deposits, blocked, closed).
  • BNOR : PSP is not registered under this Scheme.
  • DS28 : Return following technical problems resulting in erroneous transaction.
  • FF01 : File format incomplete or invalid.
  • MS03 : Reason has not been specified by agent.
  • NORR : No response on request within timeframe.
  • NR01 : PSP not able to confirm details and no reason is stated.
  • RC03 : Debtor bank identifier is invalid or missing.
  • RC04 : Creditor bank identifier is invalid or missing.
  • TM01 : Associated message was received after agreed processing cut-off time.
  • PN01 : Account Owner name and Payment Account number do not match.
  • PN02 : Account Owner name and Payment Account number is a close match.
  • PI01 : Account Owner Identification and Payment Account number do not match.
Enum"ACC""AC01""AGNT""DUPL""AG01""BNOR""DS28""FF01""MS03""NORR"
additionalInformationstring

A human friendly description of the verification reason including any further details if applicable.

{ "reason": { "schema": "string", "value": "ACC" }, "additionalInformation": "string" }

VerificationFailedOutcome

Indicates whether the information provided in the verification request was correct (PASSED) or was incorrect (FAILED). If it was incorrect, a reason is provided.

schemastring
Discriminator
{ "schema": "PASSED" }

SchemeVerificationReportData

schemastringrequired
Discriminator
accountFoundstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
accountOpenstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
accountTypeMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
privateIdentificationMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
organisationIdentificationMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
trustIdentificationMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
initialsMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
nameMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
debitsAllowedstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
creditsAllowedstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
olderThanThreeMonthsstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
emailMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
mobileMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
{ "schema": "ZA_AVS", "accountFound": "TRUE", "accountOpen": "TRUE", "accountTypeMatch": "TRUE", "privateIdentificationMatch": "TRUE", "organisationIdentificationMatch": "TRUE", "trustIdentificationMatch": "TRUE", "initialsMatch": "TRUE", "nameMatch": "TRUE", "debitsAllowed": "TRUE", "creditsAllowed": "TRUE", "olderThanThreeMonths": "TRUE", "emailMatch": "TRUE", "mobileMatch": "TRUE" }

TernaryVerificationOutcome

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

string(TernaryVerificationOutcome)

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
"TRUE"

ZaAccountVerificationReportData

Report fields specific to account verification services in South Africa. All fields are always present, and where a verification was not requested, it will default to a value of 'NOT_CHECKED'

schemastringrequired
Discriminator
accountFoundstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
accountOpenstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
accountTypeMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
privateIdentificationMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
organisationIdentificationMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
trustIdentificationMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
initialsMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
nameMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
debitsAllowedstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
creditsAllowedstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
olderThanThreeMonthsstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
emailMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
mobileMatchstring(TernaryVerificationOutcome)required

Indicates whether or not the associated verification item was true (passed/positive), false (failed/negative) or was not checked.

Enum"TRUE""FALSE""NOT_CHECKED"
{ "schema": "ZA_AVS", "accountFound": "TRUE", "accountOpen": "TRUE", "accountTypeMatch": "TRUE", "privateIdentificationMatch": "TRUE", "organisationIdentificationMatch": "TRUE", "trustIdentificationMatch": "TRUE", "initialsMatch": "TRUE", "nameMatch": "TRUE", "debitsAllowed": "TRUE", "creditsAllowed": "TRUE", "olderThanThreeMonths": "TRUE", "emailMatch": "TRUE", "mobileMatch": "TRUE" }

VerificationReport

originalIdentificationstring[ 1 .. 35 ] characters

Matches the identification of the Verification to which this report refers

outcomeobject(VerificationOutcome)

Indicates whether the information provided in the verification request was correct (PASSED) or was incorrect (FAILED). If it was incorrect, a reason is provided.

updatedPartyAndAccountobject
schemeVerificationReportDataobject(SchemeVerificationReportData)
{ "originalIdentification": "string", "outcome": { "schema": "string" }, "updatedPartyAndAccount": { "party": {}, "account": {} }, "schemeVerificationReportData": { "schema": "string" } }

AccountVerificationResponse

A model containing the foundational elements shared across messages relating to transactions.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

CreditTransferInitiationInstruction

A model containing information required to initiate a credit disbursement

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

paymentTypeInformationobject(PaymentTypeInformation)
purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "instructionForCreditorAgent": [ {} ], "paymentTypeInformation": { "localInstrument": {} }, "purpose": { "schema": "string", "value": "BKDF" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "supplementaryData": { "property1": "string", "property2": "string" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

CreditTransferInitiation

A model containing the necessary information to request the initiation of multiple credit disbursements from a single debtor

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

InitiationStatus

outcomestringrequired
  • RECEIVED: The bulk initiation has been received.
  • PENDING: The bulk initiation is undergoing pre-checks.
  • ACCEPTED: The bulk initiation has been accepted and individual transactions are being processed.
  • COMPLETED: The bulk initiation processing is complete, with all individual payment status reports received.
  • REJECTED: The bulk initiation has been rejected.
Enum"RECEIVED""PENDING""ACCEPTED""COMPLETED""REJECTED"
reasonInfoArray of objects(StatusReasonInfo)non-empty

A list of StatusReasonInfo values providing detailed reason information for the outcome.

{ "outcome": "RECEIVED", "reasonInfo": [ {} ] }

TransactionStatistics

A detailed breakdown of the number of transactions by their status. Each property corresponds to a status outcome and contains the transaction count for that status.

numberOfApprovedTransactionsintegerrequired

Count of transactions with the APPROVED status.

numberOfPendingTransactionsintegerrequired

Count of transactions with the PENDING status.

numberOfCancelledTransactionsintegerrequired

Count of transactions with the CANCELLED status.

numberOfRejectedTransactionsintegerrequired

Count of transactions with the REJECTED status.

{ "numberOfApprovedTransactions": 0, "numberOfPendingTransactions": 0, "numberOfCancelledTransactions": 0, "numberOfRejectedTransactions": 0 }

ZaRtcPaymentStatusReportPaymentSchemeData

beneficiaryEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for beneficiary use. Must remain unaltered by the originator.

authorisationIdstring<= 6 characters^[\dA-z ]*$

A unique number assigned by the beneficiary bank to identify the transaction if it is approved. Must remain unaltered by the originator.

{ "beneficiaryEchoData": "string", "authorisationId": "string" }

ZaRtcPaymentStatusReportPaymentScheme

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
originalSchemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
originalSchemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

originalSchemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

originalSchemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

schemeDataobject(ZaRtcPaymentStatusReportPaymentSchemeData)required
schemeData.​beneficiaryEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for beneficiary use. Must remain unaltered by the originator.

schemeData.​authorisationIdstring<= 6 characters^[\dA-z ]*$

A unique number assigned by the beneficiary bank to identify the transaction if it is approved. Must remain unaltered by the originator.

{ "schema": "ZA_RTC", "originalSchemeData": { "userReference": "string", "originatorEchoData": "string", "businessReference": "string" }, "schemeData": { "beneficiaryEchoData": "string", "authorisationId": "string" } }

ZaRppPaymentStatusReportPaymentScheme

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
{ "schema": "ZA_RTC" }

ZaEftPaymentStatusReportPaymentScheme

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
{ "schema": "ZA_RTC" }

PaymentStatusReportPaymentScheme

Designates which scheme a payment status report is associated with and describes scheme-specific information for the payment status report.

schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
originalSchemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
originalSchemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

originalSchemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

originalSchemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

schemeDataobject(ZaRtcPaymentStatusReportPaymentSchemeData)required
schemeData.​beneficiaryEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for beneficiary use. Must remain unaltered by the originator.

schemeData.​authorisationIdstring<= 6 characters^[\dA-z ]*$

A unique number assigned by the beneficiary bank to identify the transaction if it is approved. Must remain unaltered by the originator.

{ "schema": "ZA_RTC", "originalSchemeData": { "userReference": "string", "originatorEchoData": "string", "businessReference": "string" }, "schemeData": { "beneficiaryEchoData": "string", "authorisationId": "string" } }

PaymentInstructionStatusReport

This message is used to report information about the positive or negative status of an individual credit transfer/direct debit instruction submitted within a bulk initiation, or to report on a pending instruction.

The field originalTransactionData is not mandatory, but will always be populated in payment status reports sent by Electrum.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(PaymentStatusReportPaymentScheme)required

Designates which scheme a payment status report is associated with and describes scheme-specific information for the payment status report.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​originalSchemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​originalSchemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​originalSchemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​originalSchemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

paymentScheme.​schemeDataobject(ZaRtcPaymentStatusReportPaymentSchemeData)required
paymentScheme.​schemeData.​beneficiaryEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for beneficiary use. Must remain unaltered by the originator.

paymentScheme.​schemeData.​authorisationIdstring<= 6 characters^[\dA-z ]*$

A unique number assigned by the beneficiary bank to identify the transaction if it is approved. Must remain unaltered by the originator.

statusobject(Status)required
status.​outcomestringrequired
  • APPROVED: The instruction has been approved.
  • CANCELLED: The instruction has been cancelled.
  • PENDING: The instruction is pending.
  • REJECTED: The instruction has been rejected.
Enum"APPROVED""CANCELLED""PENDING""REJECTED"
status.​reasonInfoArray of objects(StatusReasonInfo)non-empty

A list of StatusReasonInfo values providing detailed reason information for the outcome.

originalTransactionDataobject(OriginalTransactionData)

Contains key elements related to the original transaction that is being referred to.

{ "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "originalSchemeData": {}, "schemeData": {} }, "status": { "outcome": "APPROVED", "reasonInfo": [] }, "originalTransactionData": { "creditor": {}, "creditorAccount": {}, "creditorAgent": {}, "amounts": {}, "remittanceInformation": {}, "debtor": {}, "debtorAccount": {}, "debtorAgent": {}, "supplementaryData": {}, "settlementDate": "2019-08-24", "paymentMethod": "CreditTransfer", "paymentTypeInformation": {} } }

PaymentInitiationStatusReport

This message is used to report information about the positive or negative status of a bulk payment initiation (Multiple Credit Transfers/Direct Debits)

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

ReservationTypeCode

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

valuestringrequired
  • BLKD - Blocked - Amount blocked or frozen due to external circumstances such as a court order, death of beneficiary or account owner, or bankruptcy.
  • CARE - CashReservation - Amount set aside by a participant to reserve liquidity from its own account, exclusively or executing cash withdrawals.
  • HPAR - HighlyUrgentPaymentReservation - Amount set aside by a participant to reserve liquidity from its own account, exclusively for executing highly urgent payments.
  • NSSR - NetSSSReservation - Amount set aside by a participant to reserve liquidity from its own account, exclusively for the settlement of the multilateral cash balance stemming from the Net Security Settlement System.
  • THRE - ThresholdForInvestment - Amount above which funds will be destined for investment.
  • UPAR - UrgentPaymentReservation - Amount set aside by a participant to reserve liquidity from its own account, exclusively for executing critical payments called urgent payments.
Enum"BLKD""CARE""HPAR""NSSR""THRE""UPAR"
{ "schema": "string", "value": "BLKD" }

ReservationType

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
valuestringrequired
  • BLKD - Blocked - Amount blocked or frozen due to external circumstances such as a court order, death of beneficiary or account owner, or bankruptcy.
  • CARE - CashReservation - Amount set aside by a participant to reserve liquidity from its own account, exclusively or executing cash withdrawals.
  • HPAR - HighlyUrgentPaymentReservation - Amount set aside by a participant to reserve liquidity from its own account, exclusively for executing highly urgent payments.
  • NSSR - NetSSSReservation - Amount set aside by a participant to reserve liquidity from its own account, exclusively for the settlement of the multilateral cash balance stemming from the Net Security Settlement System.
  • THRE - ThresholdForInvestment - Amount above which funds will be destined for investment.
  • UPAR - UrgentPaymentReservation - Amount set aside by a participant to reserve liquidity from its own account, exclusively for executing critical payments called urgent payments.
Enum"BLKD""CARE""HPAR""NSSR""THRE""UPAR"
{ "schema": "CODE", "value": "BLKD" }

ReservationRequest

A model containing the necessary information to perform a reservation of funds on an account.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

VoidReservationRequest

A model containing the necessary information to void a prior reservation of funds.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

TransactionDirection

Indicates the direction of the original payment, from the perspective of Electrum and the Partner.

string(TransactionDirection)

Indicates the direction of the original payment, from the perspective of Electrum and the Partner.

Enum"INBOUND""OUTBOUND""ON_US"
"INBOUND"

PostingRequest

A model containing the necessary information to perform a posting to the banking ledger after a payment has completed successfully.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

Receipt

A model containing the outcome a request that was previously received. It conveys information about the processing of the original message.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

ErrorDetail

A model carrying information detailing the reason for an error that occurred.

messagestringrequired

A human friendly description of the error that occurred.

detailstring

An optional string containing details relevant to the error, for example an explanation of which field(s) in a message body failed validation and why.

schemastringrequired
Value"ErrorDetail"
{ "message": "string", "detail": "string", "schema": "ErrorDetail" }

RequestToPayCancellation

Requests that a prior request to pay is cancelled if possible (e.g. it's not yet been actioned, rejected or expired).

reasonCodestringrequired

The reason the request to pay is being cancelled.

  • AC03: InvalidCreditorAccountNumber - Wrong account number in Credit Transfer.
  • AGNT: IncorrectAgent- Agent in the payment workflow is incorrect.
  • AM09: WrongAmount- Amount is not the amount agreed or expected.
  • BE16: InvalidDebtorIdentificationCode- Debtor or Ultimate Debtor identification code missing or invalid.
  • COVR: CoverCancelledOrReturned- Cover payments has either been returned or cancelled.
  • CURR: IncorrectCurrency- Currency of the payment is incorrect.
  • CUST: RequestedByCustomer- Cancellation requested by the Creditor.
  • CUTA: CancelUponUnableToApply- Cancellation requested because an investigation request has been received and no remediation is possible.
  • DS24: TimeOut- Cancellation requested because the original payment order expired due to time-out.
  • DT01: InvalidDate- Invalid date (for example, wrong or missing settlement date).
  • DUPL: DuplicatePayment- Payment is a duplicate of another payment.
  • FRAD: FraudulentOrigin- Cancellation requested following a transaction that was originated fraudulently. The use of the FraudulentOrigin code should be governed by jurisdictions.
  • FRNA: ForwardToNextAgent- To complement a rejection response, suggesting the request for cancelation should be forwarded to the next agent in the payment transaction chain.
  • FRTR: FinalResponse- Direct Debit Tracking recalled as Mandate Cancelled
  • INDM: IndemnityRequired- To express the wish to establish a bilateral indemnity agreement.
  • MODT: ModifiedTransaction- The underlying transaction in relation to an RTP was modified.
  • PAID: TransactionAlreadyPaid- The underlying transaction in relation to an RTP was already paid (via other means).
  • SVNR: ServiceNotRendered- The payment is cancelled since a cash amount rendered was not correct or goods or a service was not rendered to the customer, e.g. in an e-commerce situation.
  • SYAD: RequestToSettlementSystemAdministrator- Cancellation requested by System Member to Settlement System Administrator to indicate that the cancellation request must not be forwarded further in the chain.
  • TECH: TechnicalProblem- Cancellation requested following technical problems resulting in an erroneous transaction.
  • UPAY: UnduePayment- Payment is not justified.
  • ENUE: EndUserError- Cancellation or request for return requested by the Debtor specifically due to one or more errors by debtor in the original Credit Transfer. Usage: This code can be used for any error in the original Credit Transfer made by the Debtor. Can also be used if multiple errors were made in the original Credit Transfer.
  • UAPA: UnauthorizedPayment- "The Debtor is requesting a return of the payment because the payment was not properly authorized. Usage: This code can be used in the case where a Credit Transfer was made without proper authorization from the Debtor. This could be due to compromised end user credentials."
  • NARR: Narrative- Reason is provided as narrative information in the additional reason information.
  • AC02: InvalidDebtorAccountNumber- Debtor account number invalid or missing.
  • BIAS: BatchInstructionAlreadySettled- Process a cancellation request but batch already settled.
  • INCR: InvalidCancellationRequest- Process a cancellation request with incorrect reference to original batch.
  • DRTP: DuplicationRequestToPay- Duplication of a request-to-pay message.
Enum"AC03""AGNT""AM09""BE16""COVR""CURR""CUST""CUTA""DS24""DT01"
reasonDescriptionstring

A description of the reason the request to pay is being cancelled.

instructingAgentobject(InstitutionIdentification)
instructedAgentobject(InstitutionIdentification)
originalRequestToPayDataobject(OriginalRequestToPayData)

Contains key elements related to the original request to pay that is being referred to.

schemastringrequired
Value"RequestToPayCancellation"
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

originalMessageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

originalMessageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

originalMessageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

originalTransactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

originalTransactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

originalTransactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

originalTransactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

{ "reasonCode": "AC03", "reasonDescription": "string", "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "originalRequestToPayData": { "creditor": {}, "creditorAccount": {}, "creditorAgent": {}, "amounts": {}, "remittanceInformation": {}, "debtor": {}, "debtorAccount": {}, "debtorAgent": {}, "expiryDateTime": "2019-08-24T14:15:22Z", "paymentTypeInformation": {}, "requestToPayConditions": {} }, "schema": "RequestToPayCancellation", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "originalMessageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "originalTransactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" } }

RequestToPayCancellationStatusReasonTypeCode

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

valuestringrequired
  • AC04: ClosedAccountNumber - Account number specified has been closed on the receiver’s books.
  • ADAC: AwaitingDebitAuthorityFromCustomer - Reported when the cancellation request cannot be processed because customer has not yet provided the debit authority on its account.
  • AGNT: AgentDecision - Reported when the cancellation cannot be accepted because of an agent refuses to cancel.
  • AM04: InsufficientFunds - Amount of funds available to cover specified message amount is insufficient.
  • ARDT: AlreadyReturned - Cancellation not accepted as the transaction has already been returned.
  • ARPL: AwaitinReply - Reported when the cancellation request cannot be processed because no reply has been received yet from the receiver of the request message.
  • CUST: CustomerDecision - Reported when the cancellation cannot be accepted because of a customer decision (Creditor).
  • LEGL: LegalDecision - Reported when the cancellation cannot be accepted because of regulatory rules.
  • NARR: Narrative - Reason is provided as narrative information in the additional reason information.
  • NOAS: NoAnswerFromCustomer - No response from beneficiary (to the cancellation request).
  • NOOR: NoOriginalTransactionReceived - Original transaction (subject to cancellation) never received.
  • PTNA: PassedToTheNextAgent - Reported when the cancellation request cannot be accepted because the payment instruction has been passed to the next agent.
  • RQDA: RequestingDebitAuthority - Reported when authority is required by the Creditor to return the payment.
  • WSEQ: WrongSequence - Reported when the cancellation request cannot be processed because the sequence referred to in the request is not valid.
  • IDMN: CancellationIndemnityRequired - Complementing a Pending or Reject Status. Payment cancellation request cannot be accepted until an indemnity agreement is established.
  • ACLR: AlreadyCancelledRTP - Request-to-pay has already been cancelled.
  • AEXR: AlreadyExpiredRTP - Request-to-pay Expiry Date and Time has already passed.
  • ARFR: AlreadyRefusedRTP - Request-to-pay has already been refused by the Debtor.
  • ARJR: AlreadyRejectedRTP - Request-to-pay has already been rejected.
  • PATE: PaymentAlreadyTransmittedExecution - Payment related to the request-to-pay has already been transmitted for execution.
  • RR04: RegulatoryReason - Regulatory Reason.
  • RCAR: RfCAlreadyRejected - Request for cancellation of the request-to-pay has already been rejected.
  • RCNR: RfCNeverReceived - Request for cancellation of the request-to-pay has never been received.
  • RCPR: RfCReceivedAndProcessed - Request for cancellation of the request-to-pay has already been received and processed.
  • URTP: UnknownRTP - Request-to-pay is unknown.
Enum"AC04""ADAC""AGNT""AM04""ARDT""ARPL""CUST""LEGL""NARR""NOAS"
{ "schema": "string", "value": "AC04" }

RequestToPayCancellationStatusReasonType

schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
valuestringrequired
  • AC04: ClosedAccountNumber - Account number specified has been closed on the receiver’s books.
  • ADAC: AwaitingDebitAuthorityFromCustomer - Reported when the cancellation request cannot be processed because customer has not yet provided the debit authority on its account.
  • AGNT: AgentDecision - Reported when the cancellation cannot be accepted because of an agent refuses to cancel.
  • AM04: InsufficientFunds - Amount of funds available to cover specified message amount is insufficient.
  • ARDT: AlreadyReturned - Cancellation not accepted as the transaction has already been returned.
  • ARPL: AwaitinReply - Reported when the cancellation request cannot be processed because no reply has been received yet from the receiver of the request message.
  • CUST: CustomerDecision - Reported when the cancellation cannot be accepted because of a customer decision (Creditor).
  • LEGL: LegalDecision - Reported when the cancellation cannot be accepted because of regulatory rules.
  • NARR: Narrative - Reason is provided as narrative information in the additional reason information.
  • NOAS: NoAnswerFromCustomer - No response from beneficiary (to the cancellation request).
  • NOOR: NoOriginalTransactionReceived - Original transaction (subject to cancellation) never received.
  • PTNA: PassedToTheNextAgent - Reported when the cancellation request cannot be accepted because the payment instruction has been passed to the next agent.
  • RQDA: RequestingDebitAuthority - Reported when authority is required by the Creditor to return the payment.
  • WSEQ: WrongSequence - Reported when the cancellation request cannot be processed because the sequence referred to in the request is not valid.
  • IDMN: CancellationIndemnityRequired - Complementing a Pending or Reject Status. Payment cancellation request cannot be accepted until an indemnity agreement is established.
  • ACLR: AlreadyCancelledRTP - Request-to-pay has already been cancelled.
  • AEXR: AlreadyExpiredRTP - Request-to-pay Expiry Date and Time has already passed.
  • ARFR: AlreadyRefusedRTP - Request-to-pay has already been refused by the Debtor.
  • ARJR: AlreadyRejectedRTP - Request-to-pay has already been rejected.
  • PATE: PaymentAlreadyTransmittedExecution - Payment related to the request-to-pay has already been transmitted for execution.
  • RR04: RegulatoryReason - Regulatory Reason.
  • RCAR: RfCAlreadyRejected - Request for cancellation of the request-to-pay has already been rejected.
  • RCNR: RfCNeverReceived - Request for cancellation of the request-to-pay has never been received.
  • RCPR: RfCReceivedAndProcessed - Request for cancellation of the request-to-pay has already been received and processed.
  • URTP: UnknownRTP - Request-to-pay is unknown.
Enum"AC04""ADAC""AGNT""AM04""ARDT""ARPL""CUST""LEGL""NARR""NOAS"
{ "schema": "CODE", "value": "AC04" }

RequestToPayCancellationStatusReasonInfo

Provides detailed information on a cancellation status reason.

reasonobject(RequestToPayCancellationStatusReasonType)required
reason.​schemastringrequired

Identifies the value as being a pre-defined code. Always CODE.

Discriminator
reason.​valuestringrequired
  • AC04: ClosedAccountNumber - Account number specified has been closed on the receiver’s books.
  • ADAC: AwaitingDebitAuthorityFromCustomer - Reported when the cancellation request cannot be processed because customer has not yet provided the debit authority on its account.
  • AGNT: AgentDecision - Reported when the cancellation cannot be accepted because of an agent refuses to cancel.
  • AM04: InsufficientFunds - Amount of funds available to cover specified message amount is insufficient.
  • ARDT: AlreadyReturned - Cancellation not accepted as the transaction has already been returned.
  • ARPL: AwaitinReply - Reported when the cancellation request cannot be processed because no reply has been received yet from the receiver of the request message.
  • CUST: CustomerDecision - Reported when the cancellation cannot be accepted because of a customer decision (Creditor).
  • LEGL: LegalDecision - Reported when the cancellation cannot be accepted because of regulatory rules.
  • NARR: Narrative - Reason is provided as narrative information in the additional reason information.
  • NOAS: NoAnswerFromCustomer - No response from beneficiary (to the cancellation request).
  • NOOR: NoOriginalTransactionReceived - Original transaction (subject to cancellation) never received.
  • PTNA: PassedToTheNextAgent - Reported when the cancellation request cannot be accepted because the payment instruction has been passed to the next agent.
  • RQDA: RequestingDebitAuthority - Reported when authority is required by the Creditor to return the payment.
  • WSEQ: WrongSequence - Reported when the cancellation request cannot be processed because the sequence referred to in the request is not valid.
  • IDMN: CancellationIndemnityRequired - Complementing a Pending or Reject Status. Payment cancellation request cannot be accepted until an indemnity agreement is established.
  • ACLR: AlreadyCancelledRTP - Request-to-pay has already been cancelled.
  • AEXR: AlreadyExpiredRTP - Request-to-pay Expiry Date and Time has already passed.
  • ARFR: AlreadyRefusedRTP - Request-to-pay has already been refused by the Debtor.
  • ARJR: AlreadyRejectedRTP - Request-to-pay has already been rejected.
  • PATE: PaymentAlreadyTransmittedExecution - Payment related to the request-to-pay has already been transmitted for execution.
  • RR04: RegulatoryReason - Regulatory Reason.
  • RCAR: RfCAlreadyRejected - Request for cancellation of the request-to-pay has already been rejected.
  • RCNR: RfCNeverReceived - Request for cancellation of the request-to-pay has never been received.
  • RCPR: RfCReceivedAndProcessed - Request for cancellation of the request-to-pay has already been received and processed.
  • URTP: UnknownRTP - Request-to-pay is unknown.
Enum"AC04""ADAC""AGNT""AM04""ARDT""ARPL""CUST""LEGL""NARR""NOAS"
additionalInformationstring

A human friendly description of the status reason including any further details if applicable.

{ "reason": { "schema": "string", "value": "AC04" }, "additionalInformation": "string" }

RequestToPayCancellationStatus

statusstringrequired
  • CANCELLED: Cancelled - The cancellation was successfully processed and the request for payment has been cancelled.
  • REJECTED: Rejected - The cancellation was rejected. Refer to the reasonInfo for further information.
Enum"CANCELLED""REJECTED"
reasonInfoArray of objects(RequestToPayCancellationStatusReasonInfo)non-empty

A list of RequestToPayCancellationStatusReasonInfo values providing detailed reason information for the status.

{ "status": "CANCELLED", "reasonInfo": [ {} ] }

RequestToPayCancellationResponse

Provides the outcome of a prior request to pay cancellation.

statusobject(RequestToPayCancellationStatus)required
status.​statusstringrequired
  • CANCELLED: Cancelled - The cancellation was successfully processed and the request for payment has been cancelled.
  • REJECTED: Rejected - The cancellation was rejected. Refer to the reasonInfo for further information.
Enum"CANCELLED""REJECTED"
status.​reasonInfoArray of objects(RequestToPayCancellationStatusReasonInfo)non-empty

A list of RequestToPayCancellationStatusReasonInfo values providing detailed reason information for the status.

instructingAgentobject(InstitutionIdentification)
instructedAgentobject(InstitutionIdentification)
originalRequestToPayDataobject(OriginalRequestToPayData)

Contains key elements related to the original request to pay that is being referred to.

schemastringrequired
Value"RequestToPayCancellationResponse"
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

originalMessageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

originalMessageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

originalMessageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

originalTransactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

originalTransactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

originalTransactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

originalTransactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

{ "status": { "status": "CANCELLED", "reasonInfo": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "originalRequestToPayData": { "creditor": {}, "creditorAccount": {}, "creditorAgent": {}, "amounts": {}, "remittanceInformation": {}, "debtor": {}, "debtorAccount": {}, "debtorAgent": {}, "expiryDateTime": "2019-08-24T14:15:22Z", "paymentTypeInformation": {}, "requestToPayConditions": {} }, "schema": "RequestToPayCancellationResponse", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "originalMessageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "originalTransactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" } }

RequestToPayStatusRequest

Provides details to identify a previously submitted request to pay.

instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
schemastring
Value"RequestToPayStatusRequest"
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

originalMessageIdentifiersobject(MessageIdentifiers)

Holds a point-to-point unique message identification string as well as a message's creation date time.

originalTransactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

originalTransactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

originalTransactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

originalTransactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

{ "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "schema": "RequestToPayStatusRequest", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "originalMessageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "originalTransactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" } }

RequestToPayTransactionStatistics

A detailed breakdown of the number of request to pay transactions by their status. Each property corresponds to a status outcome and contains the transaction count for that status.

numberOfPaidTransactionsintegerrequired

Count of transactions with the PAID status.

numberOfAcceptedTransactionsintegerrequired

Count of transactions with the ACCEPTED status.

numberOfCancelledTransactionsintegerrequired

Count of transactions with the CANCELLED status.

numberOfExpiredTransactionsintegerrequired

Count of transactions with the EXPIRED status.

numberOfPendingTransactionsintegerrequired

Count of transactions with the PENDING status.

numberOfPresentedTransactionsintegerrequired

Count of transactions with the PRESENT status.

numberOfRejectedTransactionsintegerrequired

Count of transactions with the REJECTED status.

numberOfUnsubmittedTransactionsintegerrequired

number of transactions not yet sent to industry, and thus do not yet have an official RTP state.

{ "numberOfPaidTransactions": 0, "numberOfAcceptedTransactions": 0, "numberOfCancelledTransactions": 0, "numberOfExpiredTransactions": 0, "numberOfPendingTransactions": 0, "numberOfPresentedTransactions": 0, "numberOfRejectedTransactions": 0, "numberOfUnsubmittedTransactions": 0 }

RequestToPayInstructionStatusReport

Reports the status of an individual request to pay transaction in a bulk message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

statusobject(RequestToPayStatus)required
status.​statusstringrequired
  • PAID: Paid - The request to pay was approved by the debtor and the payment has been processed. Note that the outcome of the payment itself is not communicated.
  • ACCEPTED: Accepted - The request to pay was approved by the debtor but the payment has not yet been processed.
  • CANCELLED: Cancelled - Request to pay has been successfully cancelled after having received a request for cancellation.
  • EXPIRED: Expired - The request to pay has expired.
  • PENDING: Pending - The request to pay has been forwarded and an intial status report is still expected.
  • PRESENTED: Presented - The request to pay has been accepted by the payer participant and will be presented to the debtor.
  • REJECTED: Rejected - The request to pay has been rejected.
  • REFUND_IN_PROGRESS: Refund in progress - The refund of the original request to pay is currently in progress and does not yet have an outcome
  • REFUNDED: Refunded - The refund of the original request to pay has been completed successfully
Enum"PAID""ACCEPTED""CANCELLED""EXPIRED""PENDING""PRESENTED""REJECTED""REFUND_IN_PROGRESS""REFUNDED"
status.​reasonInfoArray of objects(RequestToPayStatusReasonInfo)non-empty

A list of RequestToPayStatusReasonInfo values providing detailed reason information for the status.

originalRequestToPayDataobject(OriginalRequestToPayData)

Contains key elements related to the original request to pay that is being referred to.

{ "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "status": { "status": "PAID", "reasonInfo": [] }, "originalRequestToPayData": { "creditor": {}, "creditorAccount": {}, "creditorAgent": {}, "amounts": {}, "remittanceInformation": {}, "debtor": {}, "debtorAccount": {}, "debtorAgent": {}, "expiryDateTime": "2019-08-24T14:15:22Z", "paymentTypeInformation": {}, "requestToPayConditions": {} } }

RequestToPayInitiationResponse

An extension of BaseMessage which includes additional information pertinent to an asynchronous response message. In particular, original message identifiers.

schemastringrequired
Discriminator
messageIdentifiersobject(MessageIdentifiers)required

Holds a point-to-point unique message identification string as well as a message's creation date time.

messageIdentifiers.​messageIdentificationstring<= 35 charactersrequired

A reference used to unambiguously identify the message between the sending and receiving party. Take note that this uniquely identifies a single message in a potentially multi-message exchange to complete a payment.

messageIdentifiers.​creationDateTimestring(date-time)required

The date and time at which the message was created, in senders local timezone or UTC. The date must be formatted as defined by date-time in RFC3339

supplementaryDataobject(SupplementaryData)

A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.

transactionIdentifiersobject(TransactionIdentifiers)required

Holds a series of identifiers to identify the transaction or an individual message that is part of a transaction.

transactionIdentifiers.​endToEndIdentificationstring<= 35 charactersrequired

Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Note: this is distinct from the UETR.

transactionIdentifiers.​transactionIdentificationstring<= 35 characters

Unique identification, as assigned by the first instructing agent, to unambiguously identify the transaction that is passed on, unchanged, throughout the entire interbank chain. Usage: The transaction identification can be used for reconciliation, tracking or to link tasks relating to the transaction on the interbank level. Usage: The instructing agent has to make sure that the transaction identification is unique for a pre- agreed period.

transactionIdentifiers.​uetrstring(UUID)required

Universally unique identifier to provide an end-to-end reference of a payment transaction. This identifier remains the same for all messages related to the same transaction.

paymentSchemeobject(CreditTransferPaymentScheme)required

Designates which scheme a credit transfer is associated with and describes scheme-specific information for the credit transfer.

paymentScheme.​schemastring(PaymentSchemeName)required

Identifies the scheme used for the payment

  • ZA_RTC: South African Realtime Clearing scheme
  • ZA_RPP: South African Realtime Payments Platform scheme.
  • ZA_EFT: South African Electronic Funds Transfer scheme.
Enum"ZA_RTC""ZA_RPP""ZA_EFT"
Discriminator
paymentScheme.​schemeDataobject(ZaRtcCreditTransferPaymentSchemeData)required
paymentScheme.​schemeData.​userReferencestring<= 20 characters^[\dA-z ]*$

An explanation of the transaction, e.g. to be printed on the account holder's statement.

paymentScheme.​schemeData.​originatorEchoDatastring<= 20 characters^[\dA-z ]*$

Echo data reserved for originator use. Must remain unaltered by the beneficiary.

paymentScheme.​schemeData.​businessReferencestring<= 10 characters^\d{2}[\dA-z]{8}$required

Business reference number. The first two numeric digits identify the bank and the last 8 characters contain a unique alphanumeric value generated by the originating bank (unique for the transaction).

amountsobject(TransactionAmounts)required
amounts.​bankSettlementAmountobject(Amount)required
amounts.​bankSettlementAmount.​valuenumber(double)>= 0required

The payment amount in the denomination of the indicated currency, in the format '. with the number of minor units (fractional digits) compliant with the number of decimal places published in ISO 4217.

Currency CodeExampleValidNotes
USD10.0Represents 10 USD and no cents.
USD10.00
USD10.001US dollar does not support three decimal places.
JPY10.0Represents 10 Japanese Yen.
JPY10.1Japanese Yen does not support decimal places.
amounts.​bankSettlementAmount.​currencystring^[A-Z]{3}$required

A valid, active currency code as defined in ISO 4217 indicating the currency of the amount.

amounts.​instructedAmountobject(Amount)
paymentTypeInformationobject(PaymentTypeInformation)
settlementDatestring(date)

Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.

creditorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

creditor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

creditor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

creditor.​addressobject(PostalAddress)
creditor.​contactDetailsobject(ContactDetails)
creditor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

creditor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

creditorAccountobject(PaymentAccount)required

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

creditorAccount.​identificationobject(BankingIdentifier)
creditorAccount.​proxyobject(NonBankingIdentifier)
creditorAccount.​typeobject(AccountType)
creditorAccount.​namestring<= 70 characters

Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.

creditorAccount.​currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

creditorAgentobject(InstitutionIdentification)required
creditorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

creditorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

creditorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

creditorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

creditorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

creditorAgent.​branchobject(BranchIdentification)
creditorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
debtorobject(Party)required

This model is the basic representation of a Party. It is expanded on depending on whether the party is a person or an organisation.

debtor.​legalNamestring[ 1 .. 140 ] characters

The legal name by which this party is known (the "FICA" name). This is the full name of the party as found on country-issued documentation (national identity, company registration documentation etc).

debtor.​knownAsNamestring[ 1 .. 140 ] characters

The name by which this party is commonly known in day to day use. For example, a shortening of their legal name or a nickname that they commonly use. This is "non-official". However, it is acceptable for this field to be set to the same as legalName.

debtor.​addressobject(PostalAddress)
debtor.​contactDetailsobject(ContactDetails)
debtor.​countryOfResidencestring(CountryCode)[A-Z]{2,2}

A code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

debtor.​identificationobject(PartyIdentification)

The identification of a party, either a person or an organisation.

debtorAccountobject(PaymentAccount)

Representation of an account for payment purposes. Note that at least one of identification or proxy is expected to be present.

debtorAgentobject(InstitutionIdentification)required
debtorAgent.​bicfistring^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9...

A code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority as described in ISO 9362 Banking - Banking telecommunication messages - Business identifier code (BIC)

debtorAgent.​leistring[A-Z0-9]{18,18}[0-9]{2,2}

An organisation identified by a code allocated to a party as described in ISO 17442 Financial Services - Legal Entity Identifier (LEI).

debtorAgent.​companyRegistrationstring<= 35 characters

A unique identifier assigned to a company or organisation by a duly appointed authority within a country.

debtorAgent.​memberIdstring<= 35 characters

Identification of a member of a clearing system.

debtorAgent.​namestring<= 140 characters

Name by which an institution is known and which is usually used to identify that institution

debtorAgent.​branchobject(BranchIdentification)
debtorAgent.​additionalIdentificationsArray of objects(AccountIdentification)
instructedAgentobject(InstitutionIdentification)
instructingAgentobject(InstitutionIdentification)
instructionForCreditorAgentArray of objects(Instruction)>= 0 items

Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.

intermediaryAgentsArray of objects(InstitutionIdentification)<= 3 items

Agents between the debtor's agent and the creditor's agent. Usage: If more than one intermediary agent is present, then IntermediaryAgent1 identifies the agent between the DebtorAgent and the IntermediaryAgent2

previousInstructingAgentsArray of objects(InstitutionIdentification)<= 3 items

Agent(s) between the debtor's agent and the instructing agent.

purposeobject(PurposeType)

Specifies the underlying reason for the payment transaction

remittanceInformationobject(RemittanceInformation)
taxobject(TaxInformation)
{ "schema": "CreditTransfer", "messageIdentifiers": { "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z" }, "supplementaryData": { "property1": "string", "property2": "string" }, "transactionIdentifiers": { "endToEndIdentification": "string", "transactionIdentification": "string", "uetr": "string" }, "paymentScheme": { "schema": "ZA_RTC", "schemeData": {} }, "amounts": { "bankSettlementAmount": {}, "instructedAmount": {} }, "paymentTypeInformation": { "localInstrument": {} }, "settlementDate": "2019-08-24", "creditor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "creditorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "creditorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "debtor": { "legalName": "string", "knownAsName": "string", "address": {}, "contactDetails": {}, "countryOfResidence": "string", "identification": {} }, "debtorAccount": { "identification": {}, "proxy": {}, "type": {}, "name": "string", "currency": "string" }, "debtorAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructedAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructingAgent": { "bicfi": "string", "lei": "string", "companyRegistration": "string", "memberId": "string", "name": "string", "branch": {}, "additionalIdentifications": [] }, "instructionForCreditorAgent": [ {} ], "intermediaryAgents": [ {} ], "previousInstructingAgents": [ {} ], "purpose": { "schema": "string", "value": "BKDF" }, "remittanceInformation": { "unstructured": [], "structured": [] }, "tax": { "totalAmount": {} } }

bulk

Operations

request-to-pay

Operations

refund

Operations

account-verification

Operations