Electrum Regulated Payments Events API (15.2.0)

The Electrum Regulated Payments Events API is a synchronous API that describes the events emitted by the Electrum Regulated Payments platform during the course of transaction processing.

This document describes the single endpoint that you will need to implement in order to receive event notifications posted by Electrum.

As transactions are processed by Electrum, events are emitted to provide information about the status of the transactions and the operations preformed on them. These events do not affect processing, but provide information that can be used for operational support and monitoring purposes.

All events are posted to the same single URL. Event are differentiated by a unique descriptor contained in the name field of the message body. This descriptor serves to allow the receiver to determine whether the particular event is of interest.

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

state

Transactions transition through different states. As each state is entered, an event is emitted. This event provides information about the state entered by the transaction. Included in this information is the message payload of the operation that triggered the state transition in the Electrum Regulated Payments. Note: The message payload attached to an event might be an internally-triggered message and not the message sent to or received from the Electrum Regulated Payments API.

Operations

Schema

Event

apiVersionstringrequired

The version of the Electrum Regulated Payments Events API which the event format conforms to i.e. the version of this API.

classstringrequired

The class of the event.

Discriminator
identifiersobject(EventEsmIdentifiers)required

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

identifiers.​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.

identifiers.​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.

identifiers.​transactionIdentificationstring<= 35 charactersrequired

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.

identifiers.​matchingKeystring<= 64 characters

A unique identifier that is used to identify an EFT record. This field is computed using the fields in the EFT record.

creationDateTimestring(date-time)required

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

actionDatestring(date)required

The date at which the transaction should take effect. The date must be formatted as defined by date-time in RFC3339

transactionInfoobject(EventEsmTransactionInfo)required
transactionInfo.​recordTypestringrequired
Enum"PAYMENT""UNPAID_INPUT""UNPAID_OUTPUT""RECALL_OUTPUT""SEC_REQUEST""SEC_RESPONSE""SEC_UNPAID_INPUT""HOMED_BACK"
transactionInfo.​paymentTypestringrequired

Enumerates the specific transaction processing event being emitted.

Enum"CREDIT""DEBIT"
transactionInfo.​directionstringrequired

Indicates the direction of the payment, from the perspective of Electrum and the Partner.

Enum"INBOUND""OUTBOUND""ON_US"
transactionInfo.​subServicestringrequired
Enum"SAME_DAY""ONE_DAY""TWO_DAY""RECALLS""SYSTEM_ERROR_CORRECTION""SYSTEM_ERROR_CORRECTION_RESPONSE"
transactionInfo.​returnTypestring

Indicates the cause of an unpaid/payment return.

Enum"DISPUTE""UNPAID""HOME_BACK""SEC_SUCCESSFUL""RECALL_RESULT"
stateobject(EventEsmState)required
state.​transactionStatestringrequired

The state of the given transaction.

Enum"RECEIVE_PENDING""RECEIVED""RECEIVE_ERROR""CANCELLED""SEND_PENDING""SENT""SEND_ERROR""ON_HOLD"
state.​financialTransactionStatestringrequired

The state of the financial transaction for the given transaction.

Enum"IN_PROGRESS""ACTIONED""UNPAID""ERROR""UNMATCHED"
eftDataRecordobject(EventEsmPayload)
{ "apiVersion": "string", "class": "ESM_STATE", "identifiers": { "uetr": "string", "endToEndIdentification": "string", "transactionIdentification": "string", "matchingKey": "string" }, "creationDateTime": "2019-08-24T14:15:22Z", "actionDate": "2019-08-24", "transactionInfo": { "recordType": "PAYMENT", "paymentType": "CREDIT", "direction": "INBOUND", "subService": "SAME_DAY", "returnType": "DISPUTE" }, "state": { "transactionState": "RECEIVE_PENDING", "financialTransactionState": "IN_PROGRESS" }, "eftDataRecord": { "recordIdentifier": "CREDIT", "userBranch": "string", "userAccount": "string", "userCode": "string", "sequenceNumber": 0, "homingBranch": "string", "homingAccount": "string", "amount": 0, "actionDate": "2019-08-24", "userReference": "string", "homingAccountName": "string", "schema": "PaymentRecord", "accountType": "OTHER", "taxCode": "string", "filler1": "string", "filler2": "string", "nonStandardHomingAccount": "string", "filler3": "string", "homingInstitution": "string", "filler4": "string", "entryClass": "CONTRAS" } }

EventEsmIdentifiers

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

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.

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.

transactionIdentificationstring<= 35 charactersrequired

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.

matchingKeystring<= 64 characters

A unique identifier that is used to identify an EFT record. This field is computed using the fields in the EFT record.

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

EventEsmTransactionInfo

recordTypestringrequired
Enum"PAYMENT""UNPAID_INPUT""UNPAID_OUTPUT""RECALL_OUTPUT""SEC_REQUEST""SEC_RESPONSE""SEC_UNPAID_INPUT""HOMED_BACK"
paymentTypestringrequired

Enumerates the specific transaction processing event being emitted.

Enum"CREDIT""DEBIT"
directionstringrequired

Indicates the direction of the payment, from the perspective of Electrum and the Partner.

Enum"INBOUND""OUTBOUND""ON_US"
subServicestringrequired
Enum"SAME_DAY""ONE_DAY""TWO_DAY""RECALLS""SYSTEM_ERROR_CORRECTION""SYSTEM_ERROR_CORRECTION_RESPONSE"
returnTypestring

Indicates the cause of an unpaid/payment return.

Enum"DISPUTE""UNPAID""HOME_BACK""SEC_SUCCESSFUL""RECALL_RESULT"
{ "recordType": "PAYMENT", "paymentType": "CREDIT", "direction": "INBOUND", "subService": "SAME_DAY", "returnType": "DISPUTE" }

EventEsmState

transactionStatestringrequired

The state of the given transaction.

Enum"RECEIVE_PENDING""RECEIVED""RECEIVE_ERROR""CANCELLED""SEND_PENDING""SENT""SEND_ERROR""ON_HOLD"
financialTransactionStatestringrequired

The state of the financial transaction for the given transaction.

Enum"IN_PROGRESS""ACTIONED""UNPAID""ERROR""UNMATCHED"
{ "transactionState": "RECEIVE_PENDING", "financialTransactionState": "IN_PROGRESS" }

RecordIdentifier

string(RecordIdentifier)
Enum"CREDIT""STOP_ORDER_CREDIT""CONSOLIDATED_UNPAID_CREDIT""UNPAID_CREDIT""CREDIT_RECALL""CREDIT_SEC_REQUEST""CREDIT_SEC_RESPONSE""DEBIT""CONSOLIDATED_UNPAID_DEBIT""UNPAID_DEBIT"
"CREDIT"

BaseEsmRecord

recordIdentifierstring(RecordIdentifier)required
Enum"CREDIT""STOP_ORDER_CREDIT""CONSOLIDATED_UNPAID_CREDIT""UNPAID_CREDIT""CREDIT_RECALL""CREDIT_SEC_REQUEST""CREDIT_SEC_RESPONSE""DEBIT""CONSOLIDATED_UNPAID_DEBIT""UNPAID_DEBIT"
userBranchstringrequired
userAccountstringrequired
userCodestringrequired
sequenceNumberintegerrequired
homingBranchstringrequired
homingAccountstringrequired
amountinteger(int64)
actionDatestring(date)required
userReferencestringrequired
homingAccountNamestringrequired
{ "recordIdentifier": "CREDIT", "userBranch": "string", "userAccount": "string", "userCode": "string", "sequenceNumber": 0, "homingBranch": "string", "homingAccount": "string", "amount": 0, "actionDate": "2019-08-24", "userReference": "string", "homingAccountName": "string" }

BankServAccountType

string(BankServAccountType)
Enum"OTHER""CURRENT""SAVINGS""TRANSMISSION""BOND""SUBSCRIPTION_SHARE"
"OTHER"

EntryClass

string(EntryClass)
Enum"CONTRAS""DEBIT_INSURANCE_PREMIUM""DEBIT_PENSION_FUND_CONTRIBUTION""DEBIT_MEDICAL_AID_FUND_CONTRIBUTION""DEBIT_UNIT_TRUST_PURCHASE""DEBIT_CHARITABLE_OR_RELIGIOUS_CONTRIBUTIONS""DEBIT_HP_REPAYMENT""DEBIT_ACCOUNT_REPAYMENT""DEBIT_LOAN_REPAYMENT_OTHER_THAN_MORTGAGE""DEBIT_RENTAL_LEASE_OTHER_THAN_PROPERTY"
"CONTRAS"

PaymentRecord

recordIdentifierstring(RecordIdentifier)required
Enum"CREDIT""STOP_ORDER_CREDIT""CONSOLIDATED_UNPAID_CREDIT""UNPAID_CREDIT""CREDIT_RECALL""CREDIT_SEC_REQUEST""CREDIT_SEC_RESPONSE""DEBIT""CONSOLIDATED_UNPAID_DEBIT""UNPAID_DEBIT"
userBranchstringrequired
userAccountstringrequired
userCodestringrequired
sequenceNumberintegerrequired
homingBranchstringrequired
homingAccountstringrequired
amountinteger(int64)required
actionDatestring(date)required
userReferencestringrequired
homingAccountNamestringrequired
schemastringrequired
Value"PaymentRecord"
accountTypestring(BankServAccountType)required
Enum"OTHER""CURRENT""SAVINGS""TRANSMISSION""BOND""SUBSCRIPTION_SHARE"
taxCodestringrequired
filler1stringrequired
filler2stringrequired
nonStandardHomingAccountstringrequired
filler3stringrequired
homingInstitutionstringrequired
filler4stringrequired
entryClassstring(EntryClass)required
Enum"CONTRAS""DEBIT_INSURANCE_PREMIUM""DEBIT_PENSION_FUND_CONTRIBUTION""DEBIT_MEDICAL_AID_FUND_CONTRIBUTION""DEBIT_UNIT_TRUST_PURCHASE""DEBIT_CHARITABLE_OR_RELIGIOUS_CONTRIBUTIONS""DEBIT_HP_REPAYMENT""DEBIT_ACCOUNT_REPAYMENT""DEBIT_LOAN_REPAYMENT_OTHER_THAN_MORTGAGE""DEBIT_RENTAL_LEASE_OTHER_THAN_PROPERTY"
{ "recordIdentifier": "CREDIT", "userBranch": "string", "userAccount": "string", "userCode": "string", "sequenceNumber": 0, "homingBranch": "string", "homingAccount": "string", "amount": 0, "actionDate": "2019-08-24", "userReference": "string", "homingAccountName": "string", "schema": "PaymentRecord", "accountType": "OTHER", "taxCode": "string", "filler1": "string", "filler2": "string", "nonStandardHomingAccount": "string", "filler3": "string", "homingInstitution": "string", "filler4": "string", "entryClass": "CONTRAS" }

ReasonCode

string(ReasonCode)
Enum"NOT_PROVIDED_FOR""DEBITS_OR_CREDITS_NOT_ALLOWED_TO_ACCOUNT""PAYMENT_STOPPED_BY_ACCOUNT_HOLDER""ACCOUNT_FROZEN""ACCOUNT_IN_SEQUESTRATION""ACCOUNT_IN_LIQUIDATION""ACCOUNT_CLOSED""ACCOUNT_TRANSFERRED_WITHIN_BANKING_GROUP""ACCOUNT_TRANSFERRED_TO_OTHER_BANKING_GROUP""ACCOUNT_HOLDER_DECEASED"
"NOT_PROVIDED_FOR"

RecallOutputRecord

recordIdentifierstring(RecordIdentifier)required
Enum"CREDIT""STOP_ORDER_CREDIT""CONSOLIDATED_UNPAID_CREDIT""UNPAID_CREDIT""CREDIT_RECALL""CREDIT_SEC_REQUEST""CREDIT_SEC_RESPONSE""DEBIT""CONSOLIDATED_UNPAID_DEBIT""UNPAID_DEBIT"
userBranchstringrequired
userAccountstringrequired
userCodestringrequired
sequenceNumberintegerrequired
homingBranchstringrequired
homingAccountstringrequired
amountinteger(int64)
actionDatestring(date)required
userReferencestringrequired
homingAccountNamestringrequired
schemastringrequired
Value"RecallOutputRecord"
accountTypeintegerrequired
taxCodeinteger
reasonCodestring(ReasonCode)required
Enum"NOT_PROVIDED_FOR""DEBITS_OR_CREDITS_NOT_ALLOWED_TO_ACCOUNT""PAYMENT_STOPPED_BY_ACCOUNT_HOLDER""ACCOUNT_FROZEN""ACCOUNT_IN_SEQUESTRATION""ACCOUNT_IN_LIQUIDATION""ACCOUNT_CLOSED""ACCOUNT_TRANSFERRED_WITHIN_BANKING_GROUP""ACCOUNT_TRANSFERRED_TO_OTHER_BANKING_GROUP""ACCOUNT_HOLDER_DECEASED"
filler1integer
originalSubAccountHolderstring
originalSubAccountstring
homingInstitutioninteger
filler2string
entryClassintegerrequired
{ "recordIdentifier": "CREDIT", "userBranch": "string", "userAccount": "string", "userCode": "string", "sequenceNumber": 0, "homingBranch": "string", "homingAccount": "string", "amount": 0, "actionDate": "2019-08-24", "userReference": "string", "homingAccountName": "string", "schema": "RecallOutputRecord", "accountType": 0, "taxCode": 0, "reasonCode": "NOT_PROVIDED_FOR", "filler1": 0, "originalSubAccountHolder": "string", "originalSubAccount": "string", "homingInstitution": 0, "filler2": "string", "entryClass": 0 }

SecRequestRecord

recordIdentifierstring(RecordIdentifier)required
Enum"CREDIT""STOP_ORDER_CREDIT""CONSOLIDATED_UNPAID_CREDIT""UNPAID_CREDIT""CREDIT_RECALL""CREDIT_SEC_REQUEST""CREDIT_SEC_RESPONSE""DEBIT""CONSOLIDATED_UNPAID_DEBIT""UNPAID_DEBIT"
userBranchstringrequired
userAccountstringrequired
userCodestringrequired
sequenceNumberintegerrequired
homingBranchstringrequired
homingAccountstringrequired
amountinteger(int64)required
actionDatestring(date)required
userReferencestringrequired
homingAccountNamestringrequired
schemastringrequired
Value"SecRequestRecord"
accountTypeintegerrequired
taxCodeinteger
filler1integer
filler2integer
nonStandardHomingAccountstringrequired
directSubmitterCodestringrequired
filler3stringrequired
homingInstitutioninteger
filler4stringrequired
entryClassintegerrequired
{ "recordIdentifier": "CREDIT", "userBranch": "string", "userAccount": "string", "userCode": "string", "sequenceNumber": 0, "homingBranch": "string", "homingAccount": "string", "amount": 0, "actionDate": "2019-08-24", "userReference": "string", "homingAccountName": "string", "schema": "SecRequestRecord", "accountType": 0, "taxCode": 0, "filler1": 0, "filler2": 0, "nonStandardHomingAccount": "string", "directSubmitterCode": "string", "filler3": "string", "homingInstitution": 0, "filler4": "string", "entryClass": 0 }

SecResponseRecord

recordIdentifierstring(RecordIdentifier)required
Enum"CREDIT""STOP_ORDER_CREDIT""CONSOLIDATED_UNPAID_CREDIT""UNPAID_CREDIT""CREDIT_RECALL""CREDIT_SEC_REQUEST""CREDIT_SEC_RESPONSE""DEBIT""CONSOLIDATED_UNPAID_DEBIT""UNPAID_DEBIT"
userBranchstringrequired
userAccountstringrequired
userCodestringrequired
sequenceNumberintegerrequired
homingBranchstringrequired
homingAccountstringrequired
amountinteger(int64)required
actionDatestring(date)required
userReferencestringrequired
homingAccountNamestringrequired
schemastringrequired
Value"SecResponseRecord"
accountTypeintegerrequired
taxCodeinteger
accountConditionResponsestring(ReasonCode)required
Enum"NOT_PROVIDED_FOR""DEBITS_OR_CREDITS_NOT_ALLOWED_TO_ACCOUNT""PAYMENT_STOPPED_BY_ACCOUNT_HOLDER""ACCOUNT_FROZEN""ACCOUNT_IN_SEQUESTRATION""ACCOUNT_IN_LIQUIDATION""ACCOUNT_CLOSED""ACCOUNT_TRANSFERRED_WITHIN_BANKING_GROUP""ACCOUNT_TRANSFERRED_TO_OTHER_BANKING_GROUP""ACCOUNT_HOLDER_DECEASED"
filler1integer
filler2stringrequired
directSubmitterCodestringrequired
filler3stringrequired
homingInstitutioninteger
filler4stringrequired
entryClassintegerrequired
{ "recordIdentifier": "CREDIT", "userBranch": "string", "userAccount": "string", "userCode": "string", "sequenceNumber": 0, "homingBranch": "string", "homingAccount": "string", "amount": 0, "actionDate": "2019-08-24", "userReference": "string", "homingAccountName": "string", "schema": "SecResponseRecord", "accountType": 0, "taxCode": 0, "accountConditionResponse": "NOT_PROVIDED_FOR", "filler1": 0, "filler2": "string", "directSubmitterCode": "string", "filler3": "string", "homingInstitution": 0, "filler4": "string", "entryClass": 0 }

BaseEsmUnpaidRecord

recordIdentifierstring(RecordIdentifier)required
Enum"CREDIT""STOP_ORDER_CREDIT""CONSOLIDATED_UNPAID_CREDIT""UNPAID_CREDIT""CREDIT_RECALL""CREDIT_SEC_REQUEST""CREDIT_SEC_RESPONSE""DEBIT""CONSOLIDATED_UNPAID_DEBIT""UNPAID_DEBIT"
originalSequenceNumberintegerrequired
originalAccountTypeintegerrequired
originalAmountinteger
originalActionDatestring(date)required

The date at which the transaction should take effect. The date must be formatted as defined by date-time in RFC3339

originalEntryClassintegerrequired
originalTaxCodeinteger
reasonCodestring(ReasonCode)required
Enum"NOT_PROVIDED_FOR""DEBITS_OR_CREDITS_NOT_ALLOWED_TO_ACCOUNT""PAYMENT_STOPPED_BY_ACCOUNT_HOLDER""ACCOUNT_FROZEN""ACCOUNT_IN_SEQUESTRATION""ACCOUNT_IN_LIQUIDATION""ACCOUNT_CLOSED""ACCOUNT_TRANSFERRED_WITHIN_BANKING_GROUP""ACCOUNT_TRANSFERRED_TO_OTHER_BANKING_GROUP""ACCOUNT_HOLDER_DECEASED"
filler1integer
originalUserReferencestringrequired
originalHomingAccountNamestringrequired
originalHomingInstitutioninteger
effectiveActionDatestring(date)required

The date at which the transaction should take effect. The date must be formatted as defined by date-time in RFC3339

newSequenceNumberintegerrequired
{ "recordIdentifier": "CREDIT", "originalSequenceNumber": 0, "originalAccountType": 0, "originalAmount": 0, "originalActionDate": "2019-08-24", "originalEntryClass": 0, "originalTaxCode": 0, "reasonCode": "NOT_PROVIDED_FOR", "filler1": 0, "originalUserReference": "string", "originalHomingAccountName": "string", "originalHomingInstitution": 0, "effectiveActionDate": "2019-08-24", "newSequenceNumber": 0 }

BaseEsmUnpaidInputRecord

recordIdentifierstring(RecordIdentifier)required
Enum"CREDIT""STOP_ORDER_CREDIT""CONSOLIDATED_UNPAID_CREDIT""UNPAID_CREDIT""CREDIT_RECALL""CREDIT_SEC_REQUEST""CREDIT_SEC_RESPONSE""DEBIT""CONSOLIDATED_UNPAID_DEBIT""UNPAID_DEBIT"
originalSequenceNumberintegerrequired
originalAccountTypeintegerrequired
originalAmountinteger
originalActionDatestring(date)required

The date at which the transaction should take effect. The date must be formatted as defined by date-time in RFC3339

originalEntryClassintegerrequired
originalTaxCodeinteger
reasonCodestring(ReasonCode)required
Enum"NOT_PROVIDED_FOR""DEBITS_OR_CREDITS_NOT_ALLOWED_TO_ACCOUNT""PAYMENT_STOPPED_BY_ACCOUNT_HOLDER""ACCOUNT_FROZEN""ACCOUNT_IN_SEQUESTRATION""ACCOUNT_IN_LIQUIDATION""ACCOUNT_CLOSED""ACCOUNT_TRANSFERRED_WITHIN_BANKING_GROUP""ACCOUNT_TRANSFERRED_TO_OTHER_BANKING_GROUP""ACCOUNT_HOLDER_DECEASED"
filler1integer
originalUserReferencestringrequired
originalHomingAccountNamestringrequired
originalHomingInstitutioninteger
effectiveActionDatestring(date)required

The date at which the transaction should take effect. The date must be formatted as defined by date-time in RFC3339

newSequenceNumberintegerrequired
originalBranchCodestringrequired
originalUserAccountstringrequired
originalUserCodestringrequired
originalHomingBranchstringrequired
originalHomingAccountstringrequired
bankSuspenseBranchstringrequired
bankSuspenseAccountstringrequired
filler2string
{ "recordIdentifier": "CREDIT", "originalSequenceNumber": 0, "originalAccountType": 0, "originalAmount": 0, "originalActionDate": "2019-08-24", "originalEntryClass": 0, "originalTaxCode": 0, "reasonCode": "NOT_PROVIDED_FOR", "filler1": 0, "originalUserReference": "string", "originalHomingAccountName": "string", "originalHomingInstitution": 0, "effectiveActionDate": "2019-08-24", "newSequenceNumber": 0, "originalBranchCode": "string", "originalUserAccount": "string", "originalUserCode": "string", "originalHomingBranch": "string", "originalHomingAccount": "string", "bankSuspenseBranch": "string", "bankSuspenseAccount": "string", "filler2": "string" }

SecUnpaidInputRecord

recordIdentifierstring(RecordIdentifier)required
Enum"CREDIT""STOP_ORDER_CREDIT""CONSOLIDATED_UNPAID_CREDIT""UNPAID_CREDIT""CREDIT_RECALL""CREDIT_SEC_REQUEST""CREDIT_SEC_RESPONSE""DEBIT""CONSOLIDATED_UNPAID_DEBIT""UNPAID_DEBIT"
originalSequenceNumberintegerrequired
originalAccountTypeintegerrequired
originalAmountinteger
originalActionDatestring(date)required

The date at which the transaction should take effect. The date must be formatted as defined by date-time in RFC3339

originalEntryClassintegerrequired
originalTaxCodeinteger
reasonCodestring(ReasonCode)required
Enum"NOT_PROVIDED_FOR""DEBITS_OR_CREDITS_NOT_ALLOWED_TO_ACCOUNT""PAYMENT_STOPPED_BY_ACCOUNT_HOLDER""ACCOUNT_FROZEN""ACCOUNT_IN_SEQUESTRATION""ACCOUNT_IN_LIQUIDATION""ACCOUNT_CLOSED""ACCOUNT_TRANSFERRED_WITHIN_BANKING_GROUP""ACCOUNT_TRANSFERRED_TO_OTHER_BANKING_GROUP""ACCOUNT_HOLDER_DECEASED"
filler1integer
originalUserReferencestringrequired
originalHomingAccountNamestringrequired
originalHomingInstitutioninteger
effectiveActionDatestring(date)required

The date at which the transaction should take effect. The date must be formatted as defined by date-time in RFC3339

newSequenceNumberintegerrequired
originalBranchCodestringrequired
originalUserAccountstringrequired
originalUserCodestringrequired
originalHomingBranchstringrequired
originalHomingAccountstringrequired
bankSuspenseBranchstringrequired
bankSuspenseAccountstringrequired
filler2string
schemastringrequired
Value"SecUnpaidInputRecord"
nonStandardHomingAccountstring
{ "recordIdentifier": "CREDIT", "originalSequenceNumber": 0, "originalAccountType": 0, "originalAmount": 0, "originalActionDate": "2019-08-24", "originalEntryClass": 0, "originalTaxCode": 0, "reasonCode": "NOT_PROVIDED_FOR", "filler1": 0, "originalUserReference": "string", "originalHomingAccountName": "string", "originalHomingInstitution": 0, "effectiveActionDate": "2019-08-24", "newSequenceNumber": 0, "originalBranchCode": "string", "originalUserAccount": "string", "originalUserCode": "string", "originalHomingBranch": "string", "originalHomingAccount": "string", "bankSuspenseBranch": "string", "bankSuspenseAccount": "string", "filler2": "string", "schema": "SecUnpaidInputRecord", "nonStandardHomingAccount": "string" }

UnpaidInputRecord

recordIdentifierstring(RecordIdentifier)required
Enum"CREDIT""STOP_ORDER_CREDIT""CONSOLIDATED_UNPAID_CREDIT""UNPAID_CREDIT""CREDIT_RECALL""CREDIT_SEC_REQUEST""CREDIT_SEC_RESPONSE""DEBIT""CONSOLIDATED_UNPAID_DEBIT""UNPAID_DEBIT"
originalSequenceNumberintegerrequired
originalAccountTypeintegerrequired
originalAmountinteger
originalActionDatestring(date)required

The date at which the transaction should take effect. The date must be formatted as defined by date-time in RFC3339

originalEntryClassintegerrequired
originalTaxCodeinteger
reasonCodestring(ReasonCode)required
Enum"NOT_PROVIDED_FOR""DEBITS_OR_CREDITS_NOT_ALLOWED_TO_ACCOUNT""PAYMENT_STOPPED_BY_ACCOUNT_HOLDER""ACCOUNT_FROZEN""ACCOUNT_IN_SEQUESTRATION""ACCOUNT_IN_LIQUIDATION""ACCOUNT_CLOSED""ACCOUNT_TRANSFERRED_WITHIN_BANKING_GROUP""ACCOUNT_TRANSFERRED_TO_OTHER_BANKING_GROUP""ACCOUNT_HOLDER_DECEASED"
filler1integer
originalUserReferencestringrequired
originalHomingAccountNamestringrequired
originalHomingInstitutioninteger
effectiveActionDatestring(date)required

The date at which the transaction should take effect. The date must be formatted as defined by date-time in RFC3339

newSequenceNumberintegerrequired
originalBranchCodestringrequired
originalUserAccountstringrequired
originalUserCodestringrequired
originalHomingBranchstringrequired
originalHomingAccountstringrequired
bankSuspenseBranchstringrequired
bankSuspenseAccountstringrequired
filler2string
schemastringrequired
Value"UnpaidInputRecord"
newHomingAccountstring
newAccountTypeinteger
newHomingBranchstring
{ "recordIdentifier": "CREDIT", "originalSequenceNumber": 0, "originalAccountType": 0, "originalAmount": 0, "originalActionDate": "2019-08-24", "originalEntryClass": 0, "originalTaxCode": 0, "reasonCode": "NOT_PROVIDED_FOR", "filler1": 0, "originalUserReference": "string", "originalHomingAccountName": "string", "originalHomingInstitution": 0, "effectiveActionDate": "2019-08-24", "newSequenceNumber": 0, "originalBranchCode": "string", "originalUserAccount": "string", "originalUserCode": "string", "originalHomingBranch": "string", "originalHomingAccount": "string", "bankSuspenseBranch": "string", "bankSuspenseAccount": "string", "filler2": "string", "schema": "UnpaidInputRecord", "newHomingAccount": "string", "newAccountType": 0, "newHomingBranch": "string" }

UnpaidOutputRecord

recordIdentifierstring(RecordIdentifier)required
Enum"CREDIT""STOP_ORDER_CREDIT""CONSOLIDATED_UNPAID_CREDIT""UNPAID_CREDIT""CREDIT_RECALL""CREDIT_SEC_REQUEST""CREDIT_SEC_RESPONSE""DEBIT""CONSOLIDATED_UNPAID_DEBIT""UNPAID_DEBIT"
originalSequenceNumberintegerrequired
originalAccountTypeintegerrequired
originalAmountinteger
originalActionDatestring(date)required

The date at which the transaction should take effect. The date must be formatted as defined by date-time in RFC3339

originalEntryClassintegerrequired
originalTaxCodeinteger
reasonCodestring(ReasonCode)required
Enum"NOT_PROVIDED_FOR""DEBITS_OR_CREDITS_NOT_ALLOWED_TO_ACCOUNT""PAYMENT_STOPPED_BY_ACCOUNT_HOLDER""ACCOUNT_FROZEN""ACCOUNT_IN_SEQUESTRATION""ACCOUNT_IN_LIQUIDATION""ACCOUNT_CLOSED""ACCOUNT_TRANSFERRED_WITHIN_BANKING_GROUP""ACCOUNT_TRANSFERRED_TO_OTHER_BANKING_GROUP""ACCOUNT_HOLDER_DECEASED"
filler1integer
originalUserReferencestringrequired
originalHomingAccountNamestringrequired
originalHomingInstitutioninteger
effectiveActionDatestring(date)required

The date at which the transaction should take effect. The date must be formatted as defined by date-time in RFC3339

newSequenceNumberintegerrequired
schemastringrequired
Value"UnpaidOutputRecord"
originalHomingBranchstringrequired
originalHomingAccountstringrequired
userCodestringrequired
originalUserBranchstringrequired
originalUserAccountstringrequired
filler2string
newBranchstring
newAccountstring
newAccountTypestring
filler3string
filler4string
filler5string
{ "recordIdentifier": "CREDIT", "originalSequenceNumber": 0, "originalAccountType": 0, "originalAmount": 0, "originalActionDate": "2019-08-24", "originalEntryClass": 0, "originalTaxCode": 0, "reasonCode": "NOT_PROVIDED_FOR", "filler1": 0, "originalUserReference": "string", "originalHomingAccountName": "string", "originalHomingInstitution": 0, "effectiveActionDate": "2019-08-24", "newSequenceNumber": 0, "schema": "UnpaidOutputRecord", "originalHomingBranch": "string", "originalHomingAccount": "string", "userCode": "string", "originalUserBranch": "string", "originalUserAccount": "string", "filler2": "string", "newBranch": "string", "newAccount": "string", "newAccountType": "string", "filler3": "string", "filler4": "string", "filler5": "string" }

EventEsmPayload

recordIdentifierstring(RecordIdentifier)required
Enum"CREDIT""STOP_ORDER_CREDIT""CONSOLIDATED_UNPAID_CREDIT""UNPAID_CREDIT""CREDIT_RECALL""CREDIT_SEC_REQUEST""CREDIT_SEC_RESPONSE""DEBIT""CONSOLIDATED_UNPAID_DEBIT""UNPAID_DEBIT"
userBranchstringrequired
userAccountstringrequired
userCodestringrequired
sequenceNumberintegerrequired
homingBranchstringrequired
homingAccountstringrequired
amountinteger(int64)required
actionDatestring(date)required
userReferencestringrequired
homingAccountNamestringrequired
schemastringrequired
Value"PaymentRecord"
Discriminator
accountTypestring(BankServAccountType)required
Enum"OTHER""CURRENT""SAVINGS""TRANSMISSION""BOND""SUBSCRIPTION_SHARE"
taxCodestringrequired
filler1stringrequired
filler2stringrequired
nonStandardHomingAccountstringrequired
filler3stringrequired
homingInstitutionstringrequired
filler4stringrequired
entryClassstring(EntryClass)required
Enum"CONTRAS""DEBIT_INSURANCE_PREMIUM""DEBIT_PENSION_FUND_CONTRIBUTION""DEBIT_MEDICAL_AID_FUND_CONTRIBUTION""DEBIT_UNIT_TRUST_PURCHASE""DEBIT_CHARITABLE_OR_RELIGIOUS_CONTRIBUTIONS""DEBIT_HP_REPAYMENT""DEBIT_ACCOUNT_REPAYMENT""DEBIT_LOAN_REPAYMENT_OTHER_THAN_MORTGAGE""DEBIT_RENTAL_LEASE_OTHER_THAN_PROPERTY"
{ "recordIdentifier": "CREDIT", "userBranch": "string", "userAccount": "string", "userCode": "string", "sequenceNumber": 0, "homingBranch": "string", "homingAccount": "string", "amount": 0, "actionDate": "2019-08-24", "userReference": "string", "homingAccountName": "string", "schema": "PaymentRecord", "accountType": "OTHER", "taxCode": "string", "filler1": "string", "filler2": "string", "nonStandardHomingAccount": "string", "filler3": "string", "homingInstitution": "string", "filler4": "string", "entryClass": "CONTRAS" }

EsmStateEvent

An event that indicates a state change of the ESM for a given transaction. An event contains information An event that indicates a state change of the ESM for a given transaction. An event contains information regarding the ESM's view of a given transaction as the state of the transaction changes.

apiVersionstringrequired

The version of the Electrum Regulated Payments Events API which the event format conforms to i.e. the version of this API.

classstringrequired

The class of the event.

Discriminator
identifiersobject(EventEsmIdentifiers)required

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

identifiers.​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.

identifiers.​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.

identifiers.​transactionIdentificationstring<= 35 charactersrequired

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.

identifiers.​matchingKeystring<= 64 characters

A unique identifier that is used to identify an EFT record. This field is computed using the fields in the EFT record.

creationDateTimestring(date-time)required

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

actionDatestring(date)required

The date at which the transaction should take effect. The date must be formatted as defined by date-time in RFC3339

transactionInfoobject(EventEsmTransactionInfo)required
transactionInfo.​recordTypestringrequired
Enum"PAYMENT""UNPAID_INPUT""UNPAID_OUTPUT""RECALL_OUTPUT""SEC_REQUEST""SEC_RESPONSE""SEC_UNPAID_INPUT""HOMED_BACK"
transactionInfo.​paymentTypestringrequired

Enumerates the specific transaction processing event being emitted.

Enum"CREDIT""DEBIT"
transactionInfo.​directionstringrequired

Indicates the direction of the payment, from the perspective of Electrum and the Partner.

Enum"INBOUND""OUTBOUND""ON_US"
transactionInfo.​subServicestringrequired
Enum"SAME_DAY""ONE_DAY""TWO_DAY""RECALLS""SYSTEM_ERROR_CORRECTION""SYSTEM_ERROR_CORRECTION_RESPONSE"
transactionInfo.​returnTypestring

Indicates the cause of an unpaid/payment return.

Enum"DISPUTE""UNPAID""HOME_BACK""SEC_SUCCESSFUL""RECALL_RESULT"
stateobject(EventEsmState)required
state.​transactionStatestringrequired

The state of the given transaction.

Enum"RECEIVE_PENDING""RECEIVED""RECEIVE_ERROR""CANCELLED""SEND_PENDING""SENT""SEND_ERROR""ON_HOLD"
state.​financialTransactionStatestringrequired

The state of the financial transaction for the given transaction.

Enum"IN_PROGRESS""ACTIONED""UNPAID""ERROR""UNMATCHED"
eftDataRecordobject(EventEsmPayload)
{ "apiVersion": "string", "class": "ESM_STATE", "identifiers": { "uetr": "string", "endToEndIdentification": "string", "transactionIdentification": "string", "matchingKey": "string" }, "creationDateTime": "2019-08-24T14:15:22Z", "actionDate": "2019-08-24", "transactionInfo": { "recordType": "PAYMENT", "paymentType": "CREDIT", "direction": "INBOUND", "subService": "SAME_DAY", "returnType": "DISPUTE" }, "state": { "transactionState": "RECEIVE_PENDING", "financialTransactionState": "IN_PROGRESS" }, "eftDataRecord": { "recordIdentifier": "CREDIT", "userBranch": "string", "userAccount": "string", "userCode": "string", "sequenceNumber": 0, "homingBranch": "string", "homingAccount": "string", "amount": 0, "actionDate": "2019-08-24", "userReference": "string", "homingAccountName": "string", "schema": "PaymentRecord", "accountType": "OTHER", "taxCode": "string", "filler1": "string", "filler2": "string", "nonStandardHomingAccount": "string", "filler3": "string", "homingInstitution": "string", "filler4": "string", "entryClass": "CONTRAS" } }

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"

EventTranInfo

Transaction-specific properties of the event. These are populated on a best-effort basis.

tranUetrstring

The UETR of the transaction to which this event pertains.

directionstring

The direction of the payment instruction with respect to the Electrum partner. For example, INBOUND credit transfers are instructions to the partner to credit a customer's account while OUTBOUND credit transfers are instructions by the partner to credit an account at another institution.

Enum"INBOUND""OUTBOUND"
paymentSchemestring(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"
servicestring

The Electrum service which processed the transaction.

{ "tranUetr": "string", "direction": "INBOUND", "paymentScheme": "ZA_RTC", "service": "string" }

EventMessageInfo

Message-specific properties of the event. These are populated on a best-effort basis.

messageIdentificationstring<= 35 characters

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)

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

httpStatusCodeinteger

The HTTP status code associated with this message of this event.

{ "messageIdentification": "string", "creationDateTime": "2019-08-24T14:15:22Z", "httpStatusCode": 0 }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PhoneNumber

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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"

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

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

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

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

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

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

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

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

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

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

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 }

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

ValidationStep

Represents the result of checking a validation step during a validation operation. Note that the reasonInfo value will typically be set in the case that the result is FAILED, whereas it may or may not be set if the result is PASSED or NOT_RUN. It is also expected that the reason used in reasonInfo values is always of type CODE and not PROPRIETARY.

descriptionstringrequired

A short description of the scheme rule that was checked.

resultstringrequired

Enumerates the result of the validation step. PASSED: the data provided passed the validation step. FAILED: the data provided did not pass the validation step. NOT_RUN: the step was not run as the client has opted out of the specific check.

Enum"PASSED""FAILED""NOT_RUN"
reasonInfoobject(StatusReasonInfo)

Provides detailed information on a status reason.

{ "description": "string", "result": "PASSED", "reasonInfo": { "reason": {}, "additionalInformation": "string" } }

ValidationOutcome

schemastringrequired
Value"ValidationOutcome"
isSuccessfulbooleanrequired

An overall indication of whether the validation operation was successful. True if none of the validation steps failed (i.e. have result FAILED); false otherwise.

stepsArray of objects(ValidationStep)non-emptyrequired

A list of results for each validation step checked as part of the validation operation.

steps[].​descriptionstringrequired

A short description of the scheme rule that was checked.

steps[].​resultstringrequired

Enumerates the result of the validation step. PASSED: the data provided passed the validation step. FAILED: the data provided did not pass the validation step. NOT_RUN: the step was not run as the client has opted out of the specific check.

Enum"PASSED""FAILED""NOT_RUN"
steps[].​reasonInfoobject(StatusReasonInfo)

Provides detailed information on a status reason.

{ "schema": "ValidationOutcome", "isSuccessful": true, "steps": [ {} ] }

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

CreditTransferStatusRequest

Provides details to identify a previously submitted credit transfer transaction.

schemastringrequired
Value"CreditTransferStatusRequest"
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.

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

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

EventPayload

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

TransactionStateEvent

All of the data supplied as part of the state event.

The stage change that triggered the event is provided by the type field. Each event also carries a globally unique value in the inherited name field which is simply the class (which is always STATE for state-triggered events) concatenated (using an underscore) with the type.

The specific states which elicit an event are:

StateCircumstance

|CREDIT_AUTH_ACCEPTED|Deprecated; use PAYMENT_AUTH_REQUEST_ACCEPTED instead. Indicates that the prior auth request passed all technical validation and will be functionally processed. Corresponds to an HTTP 2xx back to where the auth request originated from.| |CREDIT_AUTH_DELIVERY_PENDING|Deprecated; use PAYMENT_AUTH_REQUEST_PENDING instead. Indicates that Electrum has performed functional processing of an auth request (which was previously accepted) and Electrum is forwarding it on to the partner or industry for processing, depending on whether the transaction is an inbound or outbound transaction.| |CREDIT_AUTH_DELIVERED|Deprecated; no alternative state provided. Indicates that Electrum has successfully delivered the auth request to the intended recipient.| |CREDIT_AUTH_DELIVERY_FAILURE|Deprecated; use PAYMENT_AUTH_REQUEST_DELIVERY_FAILURE instead. Indicates that Electrum encountered a technical error while delivering the auth request to the intended recipient (for example receiving HTTP 5xx responses from the partner).| |CREDIT_AUTH_RECEIVED|Deprecated; use PAYMENT_AUTH_REQUEST_RECEIVED instead. Indicates that Electrum received an auth request.| |CREDIT_AUTH_REJECTED|Deprecated; use PAYMENT_AUTH_REQUEST_REJECTED instead. The opposite of CREDIT_AUTH_REQUEST_ACCEPTED. No further processing of the credit auth is performed. Corresponds with an HTTP 4xx or 5xx back to where the auth request originated from.| |CREDIT_AUTH_RESPONSE_ACCEPTED|Deprecated; use PAYMENT_AUTH_RESPONSE_ACCEPTED instead. Indicates that the prior auth response passed all technical validation and will be functionally processed. Corresponds with an HTTP 2xx back to where the auth response originated from.| |CREDIT_AUTH_RESPONSE_RECEIVED|Deprecated; use PAYMENT_AUTH_RESPONSE_RECEIVED instead. Electrum received an auth response for a prior auth request that Electrum had forwarded.| |CREDIT_AUTH_RESPONSE_REJECTED|Deprecated; use PAYMENT_AUTH_RESPONSE_REJECTED instead. The opposite of CREDIT_AUTH_RESPONSE_ACCEPTED. No further processing of the credit auth response is performed. Corresponds to an HTTP 4xx or 5xx back to the sender of the credit auth response.| |CREDIT_AUTH_TIMEOUT|Deprecated; use PAYMENT_AUTH_TIMEOUT instead. No accepted credit auth response was received by Electrum timeously.| |CREDIT_COMPLETION_ACCEPTED|Deprecated; use PAYMENT_COMPLETION_ACCEPTED instead. Indicates that the prior credit transfer completion request passed all technical validation and will be functionally processed. Corresponds with an HTTP 2xx back to where the credit completion originated from.| |CREDIT_COMPLETION_RECEIVED|Deprecated; use PAYMENT_COMPLETION_RECEIVED instead. Indicates that Electrum received a request to complete a previously approved credit transfer authorsation.| |CREDIT_COMPLETION_DELIVERY_PENDING|Deprecated; use PAYMENT_COMPLETED instead. Indicates that Electrum has performed functional processing of a completion request (which was previously accepted) and Electrum is forwarding it on to the partner or industry for processing, depending on whether the transaction is an inbound or outbound transaction.| |CREDIT_COMPLETION_DELIVERED|Deprecated; no alternative state provided. Electrum successfully delivered the credit completion to the intended recipient.| |CREDIT_COMPLETION_DELIVERY_FAILURE|Deprecated; use PAYMENT_COMPLETION_DELIVERY_FAILURE instead. Indicates that a credit transfer completion message was not successfully delivered to the intended recipient.| |CREDIT_TRANSFER_STATUS_PENDING|Deprecated; use PAYMENT_STATUS_PENDING instead. Indicates that Electrum is awaiting the status of a credit transfer after sending a status request to industry.| |CREDIT_COMPLETION_REJECTED|Deprecated; use PAYMENT_COMPLETION_REJECTED instead. The opposite of CREDIT_COMPLETION_ACCEPTED. No further processing of the credit transfer completion request is performed. Corresponds to an HTTP 4xx or 5xx back to where the completion originated from.| |CREDIT_AUTH_RESPONSE_DELIVERED|Deprecated; no alternative state provided. Electrum successfully delivered the authorisation response (either approved or declined) to industry.| |CREDIT_AUTH_RESPONSE_DELIVERY_FAILURE|Deprecated; use PAYMENT_AUTH_RESPONSE_DELIVERY_FAILURE instead. Indicates that Electrum encountered a technical error while delivering an authorisation response (either approved or declined) to the partner or industry.| |CREDIT_AUTH_RESPONSE_DELIVERY_PENDING|Deprecated; use PAYMENT_AUTH_APPROVED or PAYMENT_AUTH_FAILED instead. Indicates that Electrum has performed functional processing of an auth response (which was previously accepted) and Electrum is forwarding it on to intended recipient for processing.| |CREDIT_TRANSFER_RECEIVED|Deprecated; use PAYMENT_REQUEST_RECEIVED instead. Indicates that Electrum received a credit transfer request.| |CREDIT_TRANSFER_ACCEPTED|Deprecated; use PAYMENT_REQUEST_ACCEPTED instead. Indicates that the prior credit transfer request passed all technical validation and will be functionally processed. Corresponds to an HTTP 2xx back to where the credit transfer request originated from.| |CREDIT_TRANSFER_REJECTED|Deprecated; use PAYMENT_REQUEST_REJECTED instead. The opposite of CREDIT_TRANSFER_ACCEPTED. No further processing of the credit transfer request is performed. Corresponds with an HTTP 4xx or 5xx back to where the credit transfer request originated from.| |CREDIT_TRANSFER_DELIVERY_PENDING|Deprecated; use PAYMENT_PENDING instead. Indicates that Electrum has performed functional processing of a credit transfer request (which was previously accepted) and Electrum is forwarding it on to the partner or industry for processing, depending on whether the transaction is an inbound or outbound transaction. Electrum has not yet received an acknowledgement of the credit transfer request.| |CREDIT_TRANSFER_DELIVERED|Deprecated; no alternative state provided. Indicates that Electrum has successfully delivered the credit transfer request to the intended recipient.| |CREDIT_TRANSFER_DELIVERY_FAILURE|Deprecated; use PAYMENT_REQUEST_DELIVERY_FAILURE instead. Indicates that Electrum encountered a technical error while delivering the credit transfer request to the intended recipient (for example receiving HTTP 5xx responses from the partner).| |CREDIT_TRANSFER_TIMEOUT|Deprecated; use PAYMENT_TIMEOUT instead. No accepted credit transfer response was received by Electrum timeously.| |CREDIT_TRANSFER_RESPONSE_RECEIVED|Deprecated; use PAYMENT_RESPONSE_RECEIVED instead. Electrum received a credit transfer response for a prior credit transfer request that Electrum had forwarded.| |CREDIT_TRANSFER_RESPONSE_ACCEPTED|Deprecated; use PAYMENT_RESPONSE_ACCEPTED instead. Indicates that the prior credit transfer response passed all technical validation and will be functionally processed. Corresponds with an HTTP 2xx back to where the credit transfer response originated from.| |CREDIT_TRANSFER_RESPONSE_REJECTED|Deprecated; use PAYMENT_RESPONSE_REJECTED instead. The opposite of CREDIT_TRANSFER_RESPONSE_ACCEPTED. No further processing of the credit transfer response is performed. Corresponds to an HTTP 4xx or 5xx back to the sender of the credit transfer response.| |CREDIT_TRANSFER_APPROVED|Deprecated; use PAYMENT_APPROVED instead. Indicates that the credit transfer request has been approved and settlement is expected.| |CREDIT_TRANSFER_DECLINED|Deprecated; use PAYMENT_FAILED instead. Indicates that a credit transfer attempt has failed. The cause of the failure is contained in the payload.| |IDENTIFIER_DEREGISTRATION_RECEIVED|Indicates that Electrum received a request to deregister an identifier with a scheme.| |IDENTIFIER_DEREGISTRATION_FAILED|Indicates that the request to deregister an identifier with a scheme failed. This could be because it was rejected, or because no response was received within the time limit.| |IDENTIFIER_DEREGISTRATION_SUCCEEDED|Indicates that the request to deregister an identifier with a scheme succeeded.| |IDENTIFIER_DETERMINATION_FAILED|Indicates that the identifier determination response received from industry has been forwarded to the partner. The response from industry was not an approval.| |IDENTIFIER_DETERMINATION_PENDING|Indicates that Electrum has performed functional processing of an identifier determination request (which was previously accepted) and that Electrum is forwarding it on to industry for processing.| |IDENTIFIER_DETERMINATION_REQUEST_DELIVERY_PENDING|Deprecated; use IDENTIFIER_DETERMINATION_PENDING instead. Indicates that Electrum has performed functional processing of an identifier determination request (which was previously accepted) and that Electrum is forwarding it on to industry for processing. No acknowledgement has been received.| |IDENTIFIER_DETERMINATION_REQUEST_DELIVERED|Deprecated; no alternative state provided. Indicates that an accepted identifier determination request was successfully delivered to the intended recipient.| |IDENTIFIER_DETERMINATION_REQUEST_DELIVERY_FAILURE|Indicates that Electrum encountered a technical error while delivering the identifier determination request to the intended recipient (for example receiving HTTP 5xx responses from the partner).| |IDENTIFIER_DETERMINATION_PROVIDED|Indicates that the identifier determination response received from industry has been forwarded to the partner. The response from industry was an approval.| |IDENTIFIER_DETERMINATION_REQUEST_ACCEPTED|Indicates that the prior identifier determination request passed all technical validation and will be functionally processed. Corresponds to an HTTP 2xx back to industry.| |IDENTIFIER_DETERMINATION_REQUEST_RECEIVED|Electrum received a request to provide industry with identifying information of a recipient based on the provided information| |IDENTIFIER_DETERMINATION_REQUEST_REJECTED|The opposite of IDENTIFIER_DETERMINATION_REQUEST_ACCEPTED. No further processing of the identifier determination request is performed. Corresponds to an HTTP 4xx or 5xx back to the sender of the identifier determination request.| |IDENTIFIER_DETERMINATION_RESPONSE_ACCEPTED|Indicates that the prior identifier determination response passed all technical validation and will be functionally processed. Corresponds to an HTTP 2xx back to industry.| |IDENTIFIER_DETERMINATION_RESPONSE_RECEIVED|Electrum received a response from industry to a request to retrieve identifying information for a recipient (creditor).| |IDENTIFIER_DETERMINATION_RESPONSE_REJECTED|The opposite of IDENTIFIER_DETERMINATION_RESPONSE_ACCEPTED. No further processing of the identifier determination response is performed. Corresponds to an HTTP 4xx or 5xx back to the sender of the identifier determination response.| |IDENTIFIER_DETERMINATION_RESPONSE_DELIVERY_FAILURE|Indicates that Electrum encountered a technical error while delivering the identifier determination response to the intended recipient (for example receiving HTTP 5xx responses from the partner).| |IDENTIFIER_DETERMINATION_TIMEOUT|No accepted identifier determination response was received from industry timeously.| |IDENTIFIER_REGISTRATION_RECEIVED|Indicates that Electrum received a request to register an identifier with a scheme| |IDENTIFIER_REGISTRATION_FAILED|Indicates that the request to register an identifier with a scheme failed. This could be because it was rejected, or because no response was received within the time limit.| |IDENTIFIER_REGISTRATION_SUCCEEDED|Indicates that the request to register an identifier with a scheme succeeded.| |PAYMENT_AUTH_REQUEST_RECEIVED|Indicates that Electrum received an auth request.| |PAYMENT_AUTH_REQUEST_ACCEPTED|Indicates that the prior auth request passed all technical validation and will be functionally processed. Corresponds to an HTTP 2xx back to where the auth request originated from.| |PAYMENT_AUTH_REQUEST_REJECTED|The opposite of PAYMENT_AUTH_ACCEPTED. No further processing of the payment auth is performed. Corresponds with an HTTP 4xx or 5xx back to where the auth request originated from.| |PAYMENT_AUTH_REQUEST_PENDING|Indicates that Electrum has performed functional processing of an auth request (which was previously accepted) and Electrum is forwarding it on to the partner or industry for processing, depending on whether the transaction is an inbound or outbound transaction.| |PAYMENT_AUTH_REQUEST_DELIVERY_FAILURE|Indicates that Electrum encountered a technical error while delivering the auth request to the intended recipient (for example receiving HTTP 5xx responses from the partner).| |PAYMENT_AUTH_RESPONSE_RECEIVED|Electrum received an auth response for a prior auth request that Electrum had forwarded.| |PAYMENT_AUTH_RESPONSE_ACCEPTED|Indicates that the prior auth response passed all technical validation and will be functionally processed. Corresponds with an HTTP 2xx back to where the auth response originated from.| |PAYMENT_AUTH_RESPONSE_REJECTED|The opposite of PAYMENT_AUTH_RESPONSE_ACCEPTED. No further processing of the payment auth response is performed. Corresponds to an HTTP 4xx or 5xx back to the sender of the payment auth response.| |PAYMENT_AUTH_APPROVED|Indicates that the payment authorisation request has been approved.| |PAYMENT_AUTH_APPROVED_DELIVERY_FAILURE|Indicates that the payment authorisation request has been approved but the delivery of the payment authorisation response has failed.| |PAYMENT_AUTH_APPROVED_DELIVERY_PENDING|Indicates that the payment authorisation request has been approved and the delivery of the payment authorisation response is still in progress.| |PAYMENT_AUTH_FAILED|Indicates that a payment authorisation attempt has failed. The cause of the failure is contained in the payload.| |PAYMENT_AUTH_FAILED_DELIVERY_FAILURE|Indicates that a payment authorisation attempt has failed and the delivery of the payment authorisation response has failed.| |PAYMENT_AUTH_FAILED_DELIVERY_PENDING|Indicates that a payment authorisation attempt has failed and the delivery of the payment authorisation response is still in progress.| |PAYMENT_AUTH_TIMEOUT|No accepted payment auth response was received by Electrum timeously.| |PAYMENT_AUTH_RESPONSE_DELIVERY_FAILURE|Indicates that Electrum encountered a technical error while delivering an authorisation response (either approved or declined) to the intended recipient.| |PAYMENT_COMPLETION_RECEIVED|Indicates that Electrum received a request to complete a previously approved payment authorsation.| |PAYMENT_COMPLETION_ACCEPTED|Indicates that the prior payment completion request passed all technical validation and will be functionally processed. Corresponds with an HTTP 2xx back to where the completion originated from.| |PAYMENT_COMPLETION_REJECTED|The opposite of PAYMENT_COMPLETION_ACCEPTED. No further processing of the payment completion request is performed. Corresponds to an HTTP 4xx or 5xx back to where the completion originated from.| |PAYMENT_COMPLETED|Indicates that a payment completion has been queued to be delivered to the intended recipient.| |PAYMENT_COMPLETION_DELIVERY_FAILURE|Indicates that a payment completion message was not successfully delivered to the intended recipient.| |PAYMENT_REQUEST_RECEIVED|Indicates that Electrum received a payment request.| |PAYMENT_REQUEST_ACCEPTED|Indicates that the prior payment request passed all technical validation and will be functionally processed. Corresponds to an HTTP 2xx back to where the payment request originated from.| |PAYMENT_REQUEST_REJECTED|The opposite of PAYMENT_REQUEST_ACCEPTED. No further processing of the payment request is performed. Corresponds with an HTTP 4xx or 5xx back to where the payment request originated from.| |PAYMENT_PENDING|Indicates that Electrum has performed functional processing of a payment request (which was previously accepted) and Electrum is forwarding it on to the partner or industry for processing, depending on whether the transaction is an inbound or outbound transaction.| |PAYMENT_REQUEST_DELIVERY_FAILURE|Indicates that Electrum encountered a technical error while delivering the payment request to the intended recipient (for example receiving HTTP 5xx responses from the partner).| |PAYMENT_TIMEOUT|No accepted payment response was received by Electrum timeously.| |PAYMENT_STATUS_PENDING|Indicates that Electrum is awaiting the status of a payment after sending a status request to either the partner or industry.| |PAYMENT_RESPONSE_RECEIVED|Electrum received a payment response for a prior payment request that Electrum had forwarded.| |PAYMENT_RESPONSE_ACCEPTED|Indicates that the prior payment response passed all technical validation and will be functionally processed. Corresponds with an HTTP 2xx back to where the payment response originated from.| |PAYMENT_RESPONSE_REJECTED|The opposite of PAYMENT_RESPONSE_ACCEPTED. No further processing of the payment response is performed. Corresponds to an HTTP 4xx or 5xx back to the sender of the payment response.| |PAYMENT_APPROVED|Indicates that the payment request has been approved and settlement is expected.| |PAYMENT_FAILED|Indicates that a payment attempt has failed. The cause of the failure is contained in the payload.| |REQUEST_TO_PAY_INITIATION_RECEIVED|Indicates that Electrum received a request to pay.| |REQUEST_TO_PAY_INITIATION_ACCEPTED|Indicates that the prior request to pay passed all technical validation and will be functionally processed. Corresponds to an HTTP 2xx back to where the request to pay originated from.| |REQUEST_TO_PAY_INITIATION_REJECTED|The opposite of REQUEST_TO_PAY_INITIATION_ACCEPTED. No further processing of the request to pay is performed. Corresponds with an HTTP 4xx or 5xx back to where the request to pay originated from.| |REQUEST_TO_PAY_INITIATION_PENDING|Indicates that Electrum has performed functional processing of a request to pay (which was previously accepted) and Electrum is forwarding it on to the partner or industry for processing, depending on whether the request to pay is an inbound or outbound request to pay.| |REQUEST_TO_PAY_INITIATION_DELIVERY_FAILED|Indicates that Electrum encountered a technical error while delivering the request to pay to the intended recipient (for example receiving HTTP 5xx responses from the partner).| |REQUEST_TO_PAY_RESPONSE_RECEIVED|Electrum received a request to pay response for a prior request to pay that Electrum had forwarded.| |REQUEST_TO_PAY_RESPONSE_ACCEPTED|Indicates that the prior request to pay response passed all technical validation and will be functionally processed. Corresponds with an HTTP 2xx back to where the request to pay response originated from.| |REQUEST_TO_PAY_RESPONSE_REJECTED|The opposite of REQUEST_TO_PAY_RESPONSE_ACCEPTED. No further processing of the request to pay response is performed. Corresponds to an HTTP 4xx or 5xx back to the sender of the request to pay response.| |REQUEST_TO_PAY_PRESENTED|Indicates that the request to pay has been accepted by the partner or payer participant and it will be shown to the payer to be accepted or rejected.| |REQUEST_TO_PAY_INITIATION_TIMEOUT|No accepted request to pay response was received by Electrum timeously when processing a request to pay initiation.| |REQUEST_TO_PAY_INITIATION_ENQUIRY_PENDING|Indicates that Electrum is awaiting the status of a request to pay after sending a status request to either the partner or industry.| |REQUEST_TO_PAY_INITIATION_ENQUIRY_TIMEOUT|Subsequent to the REQUEST_TO_PAY_INITIATION_ENQUIRY_PENDING state, this indicates no accepted request to pay response was received timeously. |REQUEST_TO_PAY_CANCELLATION_REQUEST_RECEIVED|Indicates that Electrum received a request to cancel a prior request to pay.| |REQUEST_TO_PAY_CANCELLATION_REQUEST_ACCEPTED|Indicates that the prior request to cancel a prior request to pay passed all technical validation and will be functionally processed. Corresponds to an HTTP 2xx back to where the request to cancel a prior request to pay originated from.| |REQUEST_TO_PAY_CANCELLATION_REQUEST_REJECTED|The opposite of REQUEST_TO_PAY_INITIATION_ACCEPTED. No further processing of the request to cancel a prior request to pay is performed. Corresponds with an HTTP 4xx or 5xx back to where the request to cancel a prior request to pay originated from.| |REQUEST_TO_PAY_CANCELLATION_REQUEST_PENDING|Indicates that Electrum has performed functional processing of a request to cancel a prior request to pay (which was previously accepted) and Electrum is forwarding it on to the partner or industry for processing, depending on whether the request to pay is an inbound or outbound request to pay.| |REQUEST_TO_PAY_CANCELLATION_REQUEST_DELIVERY_FAILED|Indicates that Electrum encountered a technical error while delivering the request to cancel a prior request to pay to the intended recipient (for example receiving HTTP 5xx responses from the partner).| |REQUEST_TO_PAY_CANCELLATION_RESPONSE_RECEIVED|Electrum received a response for a prior request to cancel a prior request to pay that Electrum had forwarded.| |REQUEST_TO_PAY_CANCELLATION_RESPONSE_ACCEPTED|Indicates that the prior request to pay cancellation response passed all technical validation and will be functionally processed. Corresponds with an HTTP 2xx back to where the request to pay cancellation response originated from.| |REQUEST_TO_PAY_CANCELLATION_RESPONSE_REJECTED|The opposite of REQUEST_TO_PAY_CANCELLATION_RESPONSE_ACCEPTED. No further processing of the request to pay cancellation response is performed. Corresponds to an HTTP 4xx or 5xx back to the sender of the request to pay cancellation response.| |REQUEST_TO_PAY_CANCELLATION_TIMEOUT|No accepted response to the request to pay cancellation was timeously received by Electrum.| |REQUEST_TO_PAY_CANCELLATION_ENQUIRY_PENDING|Indicates that Electrum is awaiting the status of a request to pay cancellation after sending a request to pay status request to either the partner or industry.| |REQUEST_TO_PAY_CANCELLATION_ENQUIRY_TIMEOUT|Subsequent to the REQUEST_TO_PAY_CANCELLATION_TIMEOUT state, this indicates no accepted request to pay cancellation response was received timeously.| |REQUEST_TO_PAY_ACCEPTED|Indicates that the payer has accepted the request to pay. A payment transaction will be subsequently initiated to fulfil the request to pay. Note: not all schemes express this payer decision via a dedicated message. Please consult with Electrum in this regard prior to designing a solution.| |REQUEST_TO_PAY_CANCELLATION_FAILURE|Indicates that a request to pay cancellation failed i.e. the cancellation failed. This could be due to a number of reasons e.g. the request to pay has already been fulfilled.| |REQUEST_TO_PAY_CANCELLED|Indicates that a request to pay cancellation was successful i.e. a subsequent payment which attempts to fulfil the request to pay is expected to be rejected.| |REQUEST_TO_PAY_DECLINED|Indicates that the payer (or an agent on their behalf) has explicitly chosen to reject the request to pay. No subsequent payment transaction should be expected.| |REQUEST_TO_PAY_FAILED|Indicates that the request to pay failed for a technical reason (as opposed to an explicit decision on the part of the payer or their agent) e.g. the payer identified in the request to pay was not found.| |SCHEME_INQUIRY_RECEIVED|Indicates that Electrum received a request to perform an inquiry against a scheme.| |SCHEME_INQUIRY_FAILED|Indicates that an inquiry against a scheme failed. This could be because it was rejected, or because no response was received within the time limit.| |SCHEME_INQUIRY_SUCCEEDED|Indicates that an inquiry against a scheme succeeded.| |ACCOUNT_VERIFICATION_REQUEST_RECEIVED|Indicates that Electrum received a request to verify that the information provided in the request regarding an account (store of value) is correct| |ACCOUNT_VERIFICATION_REQUEST_ACCEPTED|Indicates that the prior account verification request passed all technical validation and will be functionally processed. Corresponds to an HTTP 2xx back to the sender of the account verification request.| |ACCOUNT_VERIFICATION_REQUEST_REJECTED|The opposite of ACCOUNT_VERIFICATION_REQUEST_ACCEPTED. No further processing of the account verification request is performed. Corresponds to an HTTP 4xx or 5xx back to the sender of the account verification request.| |ACCOUNT_VERIFICATION_PENDING|Indicates that Electrum has performed functional processing of an account verification request (which was previously accepted) and that Electrum is forwarding it on for further processing.| |ACCOUNT_VERIFICATION_REQUEST_DELIVERY_FAILURE|Indicates that Electrum encountered a technical error while delivering the account verification request to the intended recipient (for example receiving HTTP 5xx responses from the partner). |ACCOUNT_VERIFICATION_RESPONSE_RECEIVED|Indicates that Electrum received an account verification response for a prior account verification request that Electrum had forwarded.| |ACCOUNT_VERIFICATION_RESPONSE_ACCEPTED|Indicates that the prior account verification response passed all technical validation and will be functionally processed. Corresponds with an HTTP 2xx back to where the account verification response originated from.| |ACCOUNT_VERIFICATION_RESPONSE_REJECTED|The opposite of ACCOUNT_VERIFICATION_RESPONSE_ACCEPTED. No further processing of the payment response is performed. Corresponds to an HTTP 4xx or 5xx back to the sender of the account verification response.| |ACCOUNT_VERIFICATION_RESPONSE_DELIVERY_FAILURE| Indicates that Electrum encountered a technical error while delivering the account verification response to the intended recipient (for example receiving HTTP 5xx responses from the partner).| |ACCOUNT_VERIFICATION_TIMEOUT|No accepted response to the account verification request was timeously received by Electrum. |ACCOUNT_VERIFICATION_SUCCESSFUL|Indicates that the account verification response received has been forwarded back to where the original account verification request originated from, and that the status of the response is APPROVED.| |ACCOUNT_VERIFICATION_FAILED|Indicates that an account verification response has been forwarded back to where the original account verification request originated from, and that the status of the response is not APPROVED.| |VALIDATION_FAILED|The prior validation request did not yield a valid outcome. Note that this is the final state for validations regardless of the failure (i.e. timeouts, technical declines and business-rule declines all end up here).| |VALIDATION_PENDING|Electrum received a validation request and it is being processed.| |VALIDATION_SUCCESSFUL|The prior validation request yielded an "is valid" outcome.| |VALIDATION_TIMEOUT|If Electrum takes too long to perform a validation operation, a timeout is triggered.| |SWITCH_FAILURE|A special stage which signifies a technical error within Electrum.| |TRANSACTION_BROKEN|A terminal stage indicating that parties may disagree on the outcome of a transaction due to an error during processing, such as a timeout waiting to receive a completion message, or the permanent failure to deliver a completion message.| |VIGILANCE_AUTH_REQUESTED|Indicates that a request to perform a vigilance auth has been been sent. This breakout is synchronous| |VIGILANCE_AUTH_SUCCESSFUL|Indicates that the response received contained a positive outcome. This breakout is synchronous| |VIGILANCE_AUTH_FAILED|Indicates that the response received contained a negative outcome. This breakout is synchronous| |VIGILANCE_AUTH_TIMEOUT|Indicates that a timeout has occurred while waiting for a response. This breakout is synchronous| |RESERVATION_REQUESTED|Indicates that an asynchronous request to perform a reservation has been sent| |RESERVATION_ACCEPTED|Indicates that Electrum has received a positive technical response (ACK) for a previously sent reservation request. Use of this state indicates that the breakout is asynchronous| |RESERVATION_REJECTED|Indicates that Electrum has received a negative technical response (NACK) for a previously sent reservation request. Use of this state indicates that the breakout is asynchronous| |RESERVATION_RESPONSE_RECEIVED|Indicates that Electrum has received a functional response for a previously sent reservation request. Use of this state indicates that the breakout is asynchronous| |RESERVATION_RESPONSE_ACCEPTED|Indicates that Electrum has found a reservation functional response to be technically valid. Use of this state indicates that the breakout is asynchronous| |RESERVATION_RESPONSE_REJECTED|Indicates that Electrum has found a reservation functional response to be technically invalid. Use of this state indicates that the breakout is asynchronous| |RESERVATION_SUCCESSFUL|Indicates that the response received contained a positive outcome| |RESERVATION_FAILED|Indicates that the response received contained a negative outcome| |RESERVATION_TIMEOUT|A timeout occurred while waiting for a response| Note that all of these events are emitted when a transaction transitions into the associated state.

apiVersionstringrequired

The version of the Electrum Regulated Payments Events API which the event format conforms to i.e. the version of this API.

classstringrequired

The class of the event.

Discriminator
identifiersobject(EventEsmIdentifiers)required

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

identifiers.​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.

identifiers.​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.

identifiers.​transactionIdentificationstring<= 35 charactersrequired

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.

identifiers.​matchingKeystring<= 64 characters

A unique identifier that is used to identify an EFT record. This field is computed using the fields in the EFT record.

creationDateTimestring(date-time)required

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

actionDatestring(date)required

The date at which the transaction should take effect. The date must be formatted as defined by date-time in RFC3339

transactionInfoobject(EventEsmTransactionInfo)required
transactionInfo.​recordTypestringrequired
Enum"PAYMENT""UNPAID_INPUT""UNPAID_OUTPUT""RECALL_OUTPUT""SEC_REQUEST""SEC_RESPONSE""SEC_UNPAID_INPUT""HOMED_BACK"
transactionInfo.​paymentTypestringrequired

Enumerates the specific transaction processing event being emitted.

Enum"CREDIT""DEBIT"
transactionInfo.​directionstringrequired

Indicates the direction of the payment, from the perspective of Electrum and the Partner.

Enum"INBOUND""OUTBOUND""ON_US"
transactionInfo.​subServicestringrequired
Enum"SAME_DAY""ONE_DAY""TWO_DAY""RECALLS""SYSTEM_ERROR_CORRECTION""SYSTEM_ERROR_CORRECTION_RESPONSE"
transactionInfo.​returnTypestring

Indicates the cause of an unpaid/payment return.

Enum"DISPUTE""UNPAID""HOME_BACK""SEC_SUCCESSFUL""RECALL_RESULT"
stateobject(EventEsmState)required
state.​transactionStatestringrequired

The state of the given transaction.

Enum"RECEIVE_PENDING""RECEIVED""RECEIVE_ERROR""CANCELLED""SEND_PENDING""SENT""SEND_ERROR""ON_HOLD"
state.​financialTransactionStatestringrequired

The state of the financial transaction for the given transaction.

Enum"IN_PROGRESS""ACTIONED""UNPAID""ERROR""UNMATCHED"
eftDataRecordobject(EventEsmPayload)
{ "apiVersion": "string", "class": "ESM_STATE", "identifiers": { "uetr": "string", "endToEndIdentification": "string", "transactionIdentification": "string", "matchingKey": "string" }, "creationDateTime": "2019-08-24T14:15:22Z", "actionDate": "2019-08-24", "transactionInfo": { "recordType": "PAYMENT", "paymentType": "CREDIT", "direction": "INBOUND", "subService": "SAME_DAY", "returnType": "DISPUTE" }, "state": { "transactionState": "RECEIVE_PENDING", "financialTransactionState": "IN_PROGRESS" }, "eftDataRecord": { "recordIdentifier": "CREDIT", "userBranch": "string", "userAccount": "string", "userCode": "string", "sequenceNumber": 0, "homingBranch": "string", "homingAccount": "string", "amount": 0, "actionDate": "2019-08-24", "userReference": "string", "homingAccountName": "string", "schema": "PaymentRecord", "accountType": "OTHER", "taxCode": "string", "filler1": "string", "filler2": "string", "nonStandardHomingAccount": "string", "filler3": "string", "homingInstitution": "string", "filler4": "string", "entryClass": "CONTRAS" } }