Step 0: PayShap Inbound Proxy Resolution
This step only applies to the PayShap scheme, and where the receiving participant is not making use of the Electrum account mirror service.
Overview
If you are not using Electrum's account mirror service, then you will be required to perform the necessary proxy functions for all inbound PayShap credit transfer requests.
When Electrum receives a request from the payment scheme to credit one of your customer's account, Electrum will make two requests to your proxy management system:
- A request for the account holder name linked to the proxy so that this can be returned to the sender for verification.
- A request for the account number linked to the proxy so that this can be used to enrich the credit transfer request before delivery to your core banking system.
These requests are made via the same pair of asynchronous API operations. The implementation of the operations is described below.
Receive Inbound Identifier Request
Receive Request
Electrum sends an inboundIdentifierDetermination
request to your API endpoint. The request will conform to the following schema:
Holds a point-to-point unique message identification string as well as a message's creation 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
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.
A list of key-value pairs to support adding any supplementary/additional data to an Electrum Regulated Payments API message.
A request providing information for the lookup of a proxy or account in the context of the ZA RPP Payment Scheme:
- If the identifier schema is either MOBILE or CUSTOM, proxy resolution will be performed. In this case, the
identifier.namespace
field is required. - If the identifier schema is GENERIC, account resolution will be performed. In this case, the
accountAgent.bicfi
field is 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.CBPR_PLUS
: Cross-Border Payments and Reporting Plus.
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
Indicates the schema of the identifier, e.g. MOBILE
, CUSTOM
.
Universally unique identifier to provide an end-to-end reference. This identifier remains the same for all messages related to the same transaction.
Unique identifier for this specific verification request.
Respond With Success
If you receive the request successfully and are able to submit it for asynchronous processing, then respond with an HTTP 202
status.
Respond With An Error
If you experience an error while handling the request and are unable to submit it for asynchronous processing, then respond with an appropriate error response.
Send Identifier Information Report
Send Outcome
Once you have matched the proxy with the account record on your system, then return the information to Electrum using the inboundIdentifierDeterminationReport
operation.
- Payments API sandbox
https://example.com/path/payments/api/v1/identifiers/inbound/identifier-determination-report
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://example.com/path/payments/api/v1/identifiers/inbound/identifier-determination-report \
-H 'Content-Type: application/json' \
-H 'traceparent: string' \
-H 'tracestate: string' \
-d '{
"schema": "IdentifierDeterminationResponse",
"messageIdentifiers": {
"messageIdentification": "9fd51c1234ba4819bbheyde296a68e1da",
"creationDateTime": "2022-05-04T03:22:11Z"
},
"originalMessageIdentifiers": {
"messageIdentification": "8fd51c7124ba4819b9253e296a68e1da",
"creationDateTime": "2022-05-04T03:02:01Z"
},
"report": {
"originalUetr": "f27a34ad-c5ab-4b70-a3f9-946d743eaeaa",
"originalVerificationIdentification": "1001",
"schema": "ZA_RPP",
"reportInformation": {
"outcome": "SUCCESSFUL",
"transactionLimit": {
"value": 3000,
"currency": "ZAR"
},
"accountInformation": {
"proxy": {
"schema": "MOBILE",
"value": "+27-812456789"
},
"creationDate": "2021-01-01T09:55:45.015708Z",
"traditionalIdentifier": {
"schema": "GENERIC",
"value": 1234567890
}
},
"accountOwner": {
"knownAsName": "Shaun",
"legalName": "Shaun John Smith"
}
},
"instructedAgent": {
"bicfi": "RY8PEG0L",
"memberId": "AmazingBankId",
"name": "Amazing Bank Inc",
"branch": {
"identification": 210514,
"name": "ABC Plettenberg Bay",
"address": {
"addressType": "ADDR",
"department": "Department of Mysteries",
"streetName": "Street of Mysteries",
"buildingNumber": 42,
"buildingName": "Mysterious Building",
"floor": 42,
"postBox": 1024,
"postCode": 4242,
"townName": "Mysty Town",
"townLocationName": "Mysty Location",
"districtName": "Mysty District",
"countrySubDivision": "Mysterious Cape",
"country": "ZA",
"addressLine": [
"16A",
"New market street",
"Foreshore",
"Cape Town",
"ZA",
8001
]
}
}
},
"instructingAgent": {
"bicfi": "RY8PEG0L",
"memberId": "AmazingBankId",
"name": "Amazing Bank Inc",
"branch": {
"identification": 210514,
"name": "ABC Plettenberg Bay",
"address": {
"addressType": "ADDR",
"department": "Department of Mysteries",
"streetName": "Street of Mysteries",
"buildingNumber": 42,
"buildingName": "Mysterious Building",
"floor": 42,
"postBox": 1024,
"postCode": 4242,
"townName": "Mysty Town",
"townLocationName": "Mysty Location",
"districtName": "Mysty District",
"countrySubDivision": "Mysterious Cape",
"country": "ZA",
"addressLine": [
"16A",
"New market street",
"Foreshore",
"Cape Town",
"ZA",
8001
]
}
}
},
"originalRequestor": {
"schema": "INSTITUTION_IDENTIFICATION",
"bicfi": "RY8PEG0L",
"memberId": "AmazingBankId",
"domain": "ADomain",
"name": "Amazing Bank Inc"
}
},
"supplementaryData": {
"customData1": "My custom data 1",
"customData2": "My custom data 2"
}
}'
No content
Receive Acknowledgement
Electrum will respond with an HTTP 202
status if the request can be processed successfully, or an error response if a problem occurs.