Electrum Regulated Payments Partner API (21.0.2)

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

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

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

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

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

Languages
Servers
Partner API sandbox

https://example.com/path/payments/partner-api/v1/

transactional

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

Operations

financial

Operations that participate in transaction processing and have financial impact.

Operations

credit-transfer

Operations related to credit transfer transactions.

Operations

direct-debit

Operations related to direct debit transactions.

Operations

payment-return

Operations related to payment returns.

Operations

identifier-determination

Operations used to retrieve additional information related to an identifier

Operations

funds-management

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

Operations

risk-assessment

Operations related to the assessment and identification of risk in transactions.

Operations

fraud-assessment

Operations related to the processing of fraud assessments for payment transactions.

Operations

Schema

InvestigationStatusRejectedModification

Specifies the reason for the rejection of a modification request, in a coded form. Used when responding to a prior request to modify a payment

rejectedModificationStatusobject(ModificationStatusReason)required
rejectedModificationStatus.​schemastring

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

Discriminator
rejectedModificationStatus.​valuestring

UM01 UnableToModifyRelatedReference - Related transaction reference cannot be modified. UM02 UnableToModifyPaymentServiceLevel - Service level element of payment type cannot be modified(former UnableToModifyBankOperationCode). UM03 UnableToModifyCategoryPurpose - Category purpose element of payment type cannot be modified (former UnableToModifyInstructionCode). UM04 UnableToModifyRequestedExecutionDate - RequestedExecutionDate cannot be modified. UM05 UnableToModifyInterbankSettlementDate - InterbankSettlementDate cannot be modified (former UnableToModifyValueDate). UM06 UnableToModifyInterbankSettlementAccount - SettlementAccount cannot be modified (former UnableToModifyInterbankSettlementAccount). UM07 UnableToModifyDebtor - Debtor cannot be modified. UM08 UnableToModifyDebtorAccount - DebtorAccount cannot be modified. UM09 UnableToModifyInstructedReimbursementAgent - InstructedReimbursementAgent cannot be modified (former UnableToModifyReceiverCorrespondent). UM10 UnableToModifyThirdReimbursementAgent - ThirdReimbursementAgent cannot be modified (former UnableToModifyThirdReimbursementInstitution). UM11 UnableToModifyPaymentClearingChannel - Clearing Channel element of payment type cannot be modified (former UnableToModifyPaymentScheme) UM12 UnableToModifyCreditorAgentAccount - Creditor agent account cannot be modified (former UnableToModifyAccountOfBeneficiaryInstitution) UM13 UnableToModifyCreditor - Creditor cannot be modified. UM14 UnableToModifyCreditorAccount - Creditor account cannot be modified. UM15 UnableToModifyRemittanceInformation - Remittance information cannot be modified. UM16 UnableToModifyPaymentPurpose - PaymentPurpose cannot be modified. UM17 UnableToModifyChargeBearer - Charge bearer cannot be modified (former UnableToModifyDetailsOfCharges). UM18 UnableToModifyInstructionForNextAgent - Instruction for next agent cannot be modified (former UnableToModifySenderToReceiver). UM19 UnableToModifyInstructionForCreditorAgent - Instruction for creditor agent cannot be modified. (former UnableToModifyInstructionForFinalAgent). UM20 InstructionCancelledSubmitNewInstruction - Used to inform of cancellation and request a new payment instruction. This should only be used if an agent does not want to modify a pending payment. UM21 UnableToModifySubmitCancellation - Modification is not possible and the cancellation is requested. UM22 UnableToModifyDebtorAgentAccount - Debtor agent account cannot be modified (applicable for direct debits). UM23 UnableToModifyInterbankSettlementAmount - Interbank settlement amount cannot be modified. UM24 UnableToModifyInstructionForDebtorAgent - Instruction for debtor agent cannot be modified (applicable for direct debits) UM25 UnableToModifyRequestedCollectionDate - Requested collection date cannot be modified (applicable for direct debits) UM26 UnableToModifyPaymentType - Payment type cannot be modified. UM27 UnableToModifyInstructedAmount - Instructed or equivalent amount cannot be modified. UM28 UnableToModifyPriority - Priority of payment message cannot be modified.

Enum"UM01""UM02""UM03""UM04""UM05""UM06""UM07""UM08""UM09""UM10"
statusTypestringrequired
Value"REJECTED_MODIFICATION"
{ "rejectedModificationStatus": { "schema": "string", "value": "UM01" }, "statusType": "REJECTED_MODIFICATION" }

InvestigationStatus

Indicates the status of an investigation

cancellationConfirmedbooleanrequired
statusTypestringrequired
Value"CANCELLATION_CONFIRMATION"
Discriminator
{ "cancellationConfirmed": true, "statusType": "CANCELLATION_CONFIRMATION" }

ResolutionOfInvestigation

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

messageIdentifiersobject(MessageIdentifiers)required

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

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

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.

supplementaryDataobject(SupplementaryData)

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

originalMessageIdentifiersobject(MessageIdentifiers)required

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

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

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.

assignmentobject(CaseAssignment)required
assignment.​assigneeany(PartyInstitutionChoice)required
assignment.​assignee.​institutionobject(InstitutionIdentification)required
assignment.​assignee.​institution.​additionalIdentificationsArray of objects(AccountIdentification)
assignment.​assignee.​institution.​addressobject(PostalAddress)
assignment.​assignee.​institution.​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)

assignment.​assignee.​institution.​branchobject(BranchIdentification)
assignment.​assignee.​institution.​clearingSystemMemberIdobject(ClearingSystemMemberIdentification)
assignment.​assignee.​institution.​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).

assignment.​assignee.​institution.​namestring<= 140 characters

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

assignment.​assignee.​institution.​companyRegistrationstring<= 35 charactersDeprecated

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

assignment.​assignee.​institution.​memberIdstring<= 35 charactersDeprecated

Deprecated. Please use the preferred clearingSystemMemberId.memberId instead. Identification of a member of a clearing system.

assignment.​assignee.​schemastringrequired
Value"INSTITUTION"
Discriminator
assignment.​assignerany(PartyInstitutionChoice)required
assignment.​assigner.​institutionobject(InstitutionIdentification)required
assignment.​assigner.​institution.​additionalIdentificationsArray of objects(AccountIdentification)
assignment.​assigner.​institution.​addressobject(PostalAddress)
assignment.​assigner.​institution.​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)

assignment.​assigner.​institution.​branchobject(BranchIdentification)
assignment.​assigner.​institution.​clearingSystemMemberIdobject(ClearingSystemMemberIdentification)
assignment.​assigner.​institution.​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).

assignment.​assigner.​institution.​namestring<= 140 characters

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

assignment.​assigner.​institution.​companyRegistrationstring<= 35 charactersDeprecated

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

assignment.​assigner.​institution.​memberIdstring<= 35 charactersDeprecated

Deprecated. Please use the preferred clearingSystemMemberId.memberId instead. Identification of a member of a clearing system.

assignment.​assigner.​schemastringrequired
Value"INSTITUTION"
Discriminator
assignment.​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

assignment.​identificationstring<= 35 charactersrequired

Uniquely identifies a case assignment

cancellationDetailsobject(CancellationDetails)

Specifies the details of the underlying transaction being cancelled

correctionTransactionany(CorrectiveTransactionChoice)
paymentSchemeobject(ResolutionOfInvestigationPaymentScheme)required

Designates which scheme a resolution of investigation is associated with and describes scheme-specific information.

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.
  • ZA_AC : South African Authenticated Collections scheme.
  • ZA_RMS: South African Registered Mandate Service scheme.
  • CBPR_PLUS: Cross-Border Payments and Reporting Plus.
Enum"ZA_RTC""ZA_RPP""ZA_EFT""ZA_AC""ZA_RMS""CBPR_PLUS"
Discriminator
resolvedCaseobject(Case6)
schemastringrequired
Value"ResolutionOfInvestigation"
statusany(InvestigationStatus)required

Indicates the status of an investigation

status.​cancellationConfirmedbooleanrequired
status.​statusTypestringrequired
Value"CANCELLATION_CONFIRMATION"
Discriminator
{ "messageIdentifiers": { "creationDateTime": "2019-08-24T14:15:22Z", "messageIdentification": "string" }, "supplementaryData": { "property1": "string", "property2": "string" }, "originalMessageIdentifiers": { "creationDateTime": "2019-08-24T14:15:22Z", "messageIdentification": "string" }, "assignment": { "assignee": {}, "assigner": {}, "creationDateTime": "2019-08-24T14:15:22Z", "identification": "string" }, "cancellationDetails": { "cancellationStatusReasonInfo": {}, "originalTransaction": {}, "originalTransactionIdentifiers": {}, "transactionCancellationStatus": "RJCR" }, "correctionTransaction": { "messageIdentifiers": {}, "schema": "CORRECTIVE_INTERBANK_TRANSACTION", "settlementAmount": {}, "settlementDate": "2019-08-24", "transactionIdentification": {} }, "paymentScheme": { "schema": "ZA_RTC" }, "resolvedCase": { "creator": {}, "identification": "string", "reopenCaseIndication": true }, "schema": "ResolutionOfInvestigation", "status": { "confirmationCode": "ACDA", "statusType": "CONFIRMATION" } }

operational

Operations

bulk

Operations

request-to-pay

Operations

refund

Operations

account-verification

Operations