EPC API for receiving Electrum calls (19.1.0)

The Electrum EPC API for receiving Electrum calls is an asynchronous API that allows Corporate Clients to participate in various nationally regulated payment schemes. This document describes the operations a Corporate Client must implement for Electrum to consume in order to complete the integration with the Electrum Enterprise Payments Channel API.

Languages
Servers
Partner API sandbox

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

credit-transfer

Operations related to credit transfer transactions.

Operations

identifier-determination

Operations used to retrieve additional information related to an identifier

Operations

Schema

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).

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.

finalCollectionDatestring(date)

Date of the final collection of a direct debit as per the mandate.

firstCollectionDatestring(date)

Date of the first collection of a direct debit as per the mandate.

frequencyobject(Frequency)

Specifies the frequency of the payment transaction.

mandateIdentificationstring<= 35 characters

Unique identification, as assigned by the creditor, to unambiguously identify the mandate.

reasonobject(MandateSetupReason)
trackingDaysinteger[ 1 .. 99 ]

Specifies the number of days the direct debit instruction must be tracked.

{ "dateOfSignature": "2019-08-24", "electronicSignature": "string", "finalCollectionDate": "2019-08-24", "firstCollectionDate": "2019-08-24", "frequency": { "dayOfMonth": 1, "schema": "MonthlyFrequency" }, "mandateIdentification": "string", "reason": { "schema": "string", "value": "stri" }, "trackingDays": 1 }

TransactionAmounts

bankSettlementAmountobject(Amount)required
bankSettlementAmount.​currencystring^[A-Z]{3}$required

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

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.0✓Represents 10 USD and no cents.
USD10.00✓
USD10.001✗US dollar does not support three decimal places.
JPY10.0✓Represents 10 Japanese Yen.
JPY10.1✗Japanese Yen does not support decimal places.
instructedAmountobject(Amount)
{ "bankSettlementAmount": { "currency": "string", "value": 0.1 }, "instructedAmount": { "currency": "string", "value": 0.1 } }

PaymentAccount

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

currencystring^[A-Z]{3}$

Identification of the currency in which the account is held.

identificationobject(BankingIdentifier)
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.

proxyobject(NonBankingIdentifier)
typeobject(AccountType)
{ "currency": "string", "identification": { "schema": "string", "value": "string" }, "name": "string", "proxy": { "namespace": "string", "schema": "string" }, "type": { "schema": "string", "value": "CACC" } }

transactional

Operations

request-to-pay

Operations

financial

Operations

bulk

Operations

refund

Operations