Swagger
The swagger (Open API) definition of the interface specification can be found here, as well as below.
Many tools are available for processing swagger files, and using a code generation tool to create a boilerplate client or server can be an excellent starting point for development. We highly recommend looking at swagger-codegen for a generator in your preferred language when starting out.
Swagger definition
---
swagger: "2.0"
info:
description: "The Electrum Bill Payments Service describes an interface for performing\
\ bill payments
transactions. These transactions require a\
\ reference number which uniquely identifies the bill
processor,\
\ bill issuer, as well as the customer account, and is typically printed on a\
\ customer
invoice. The customer then makes use of this reference\
\ number to make a payment towards the
corresponding bill."
version: "4.9.0"
title: "Bill Payments Service Interface"
contact:
name: "Electrum Support"
url: "http://io.electrum"
email: "support@electrum.co.za"
license:
name: "Apache 2.0"
url: "http://www.apache.org/licenses/LICENSE-2.0.html"
host: "billpay-test-server.herokuapp.com"
basePath: "/billpay/v4"
schemes:
- "https"
paths:
/accountLookups/policy/{requestId}:
post:
summary: "Basic policy info request"
description: "Requests the current status of the policy identified by the supplied\
\ policy reference. Not all service providers support policy lookups. In the\
\ case where this function is not supported by the requested service provider,\
\ a 501 HTTP status code may be returned"
operationId: "requestPolicyInfo"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- name: "requestId"
in: "path"
description: "The randomly generated UUID of this request"
required: true
type: "string"
- in: "body"
name: "body"
description: "A policy lookup request"
required: true
schema:
$ref: "#/definitions/PolicyLookupRequest"
responses:
200:
description: "Success"
schema:
$ref: "#/definitions/PolicyLookupResponse"
400:
description: "Bad request"
schema:
$ref: "#/definitions/ErrorDetail"
500:
description: "Internal Server Error"
schema:
$ref: "#/definitions/ErrorDetail"
501:
description: "Not implemented"
schema:
$ref: "#/definitions/ErrorDetail"
503:
description: "Service Unavailable"
schema:
$ref: "#/definitions/ErrorDetail"
504:
description: "Gateway Timeout"
schema:
$ref: "#/definitions/ErrorDetail"
security:
- httpBasic: []
/accountLookups/traffic/{requestId}:
post:
summary: "Basic traffic fine info request"
description: "Requests information related to a specific traffic fine as identified\
\ by the noticeNumber. In the case where this function is not supported by\
\ the relevant service provider, a 501 HTTP status code may be returned"
operationId: "requestTrafficFineInfo"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- name: "requestId"
in: "path"
description: "The randomly generated UUID of this request"
required: true
type: "string"
- in: "body"
name: "body"
description: "A traffic fine lookup request"
required: true
schema:
$ref: "#/definitions/TrafficFineLookupRequest"
responses:
200:
description: "Success"
schema:
$ref: "#/definitions/TrafficFineLookupResponse"
400:
description: "Bad request"
schema:
$ref: "#/definitions/ErrorDetail"
500:
description: "Internal Server Error"
schema:
$ref: "#/definitions/ErrorDetail"
501:
description: "Not implemented"
schema:
$ref: "#/definitions/ErrorDetail"
503:
description: "Service Unavailable"
schema:
$ref: "#/definitions/ErrorDetail"
504:
description: "Gateway Timeout"
schema:
$ref: "#/definitions/ErrorDetail"
security:
- httpBasic: []
/accountLookups/{requestId}:
post:
summary: "Basic account information request"
description: "Requests the current status of the account identified by the supplied\
\ account reference. Not all services support account lookups. In the case\
\ where this function is not supported for the requested service, a 501 HTTP\
\ status code may be returned"
operationId: "requestAccountInfo"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- name: "requestId"
in: "path"
description: "The randomly generated UUID of this request"
required: true
type: "string"
- in: "body"
name: "body"
description: "An account lookup request"
required: true
schema:
$ref: "#/definitions/AccountLookupRequest"
responses:
200:
description: "Success"
schema:
$ref: "#/definitions/AccountLookupResponse"
400:
description: "Bad request"
schema:
$ref: "#/definitions/ErrorDetail"
500:
description: "Internal Server Error"
schema:
$ref: "#/definitions/ErrorDetail"
501:
description: "Not implemented"
schema:
$ref: "#/definitions/ErrorDetail"
503:
description: "Service Unavailable"
schema:
$ref: "#/definitions/ErrorDetail"
504:
description: "Gateway Timeout"
schema:
$ref: "#/definitions/ErrorDetail"
security:
- httpBasic: []
/payments/policy/{paymentId}:
post:
summary: "Initiate a policy payment transaction"
description: "Requests that a payment be made towards a policy."
operationId: "createPolicyPayment"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- name: "paymentId"
in: "path"
description: "The randomly generated UUID of this request"
required: true
type: "string"
- in: "body"
name: "body"
description: "A policy payment request"
required: true
schema:
$ref: "#/definitions/PolicyPaymentRequest"
responses:
201:
description: "Created"
schema:
$ref: "#/definitions/PolicyPaymentResponse"
headers:
Location:
type: "string"
description: "The location of the created payments resource"
400:
description: "Bad request"
schema:
$ref: "#/definitions/ErrorDetail"
500:
description: "Internal Server Error"
schema:
$ref: "#/definitions/ErrorDetail"
503:
description: "Service Unavailable"
schema:
$ref: "#/definitions/ErrorDetail"
504:
description: "Gateway Timeout"
schema:
$ref: "#/definitions/ErrorDetail"
security:
- httpBasic: []
/payments/traffic/{paymentId}:
post:
summary: "Initiate a traffic fine payment transaction"
description: "Requests that a payment be made towards a traffic fine."
operationId: "createTrafficFinePayment"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- name: "paymentId"
in: "path"
description: "The randomly generated UUID of this request"
required: true
type: "string"
- in: "body"
name: "body"
description: "A traffic fine payment request"
required: true
schema:
$ref: "#/definitions/TrafficFinePaymentRequest"
responses:
201:
description: "Created"
schema:
$ref: "#/definitions/TrafficFinePaymentResponse"
headers:
Location:
type: "string"
description: "The location of the created payments resource"
400:
description: "Bad request"
schema:
$ref: "#/definitions/ErrorDetail"
500:
description: "Internal Server Error"
schema:
$ref: "#/definitions/ErrorDetail"
503:
description: "Service Unavailable"
schema:
$ref: "#/definitions/ErrorDetail"
504:
description: "Gateway Timeout"
schema:
$ref: "#/definitions/ErrorDetail"
security:
- httpBasic: []
/payments/{paymentId}:
post:
summary: "Initiate a bill payment transaction"
description: "Requests that a payment be made towards a customer account"
operationId: "createAccountPayment"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- name: "paymentId"
in: "path"
description: "The randomly generated UUID of this request"
required: true
type: "string"
- in: "body"
name: "body"
description: "A payment request"
required: true
schema:
$ref: "#/definitions/PaymentRequest"
responses:
201:
description: "Created"
schema:
$ref: "#/definitions/PaymentResponse"
headers:
Location:
type: "string"
description: "The location of the created payments resource"
400:
description: "Bad request"
schema:
$ref: "#/definitions/ErrorDetail"
500:
description: "Internal Server Error"
schema:
$ref: "#/definitions/ErrorDetail"
503:
description: "Service Unavailable"
schema:
$ref: "#/definitions/ErrorDetail"
504:
description: "Gateway Timeout"
schema:
$ref: "#/definitions/ErrorDetail"
security:
- httpBasic: []
/payments/{paymentId}/confirmations/{adviceId}:
post:
summary: "Confirm an existing bill payment"
description: "If a createPayment request previously succeeded with a 201 status\
\ it must be confirmed or cancelled to complete the transaction. confirmPayment\
\ can only succeed if a payment was created but not cancelled. confirmPayment\
\ must be repeated until a final HTTP status code is received (not 500 or\
\ 504). If a status code of either 500 or 504 is received, or no response\
\ is received, the request must be repeated. confirmPayment may be called\
\ repeatedly on the same payment resource without negative effect."
operationId: "confirmPayment"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- name: "adviceId"
in: "path"
description: "The randomly generated UUID of this request"
required: true
type: "string"
- name: "paymentId"
in: "path"
description: "The UUID generated for the original createPayment request"
required: true
type: "string"
- in: "body"
name: "body"
description: "A payment confirmation"
required: true
schema:
$ref: "#/definitions/TenderAdvice"
responses:
202:
description: "Accepted"
schema:
$ref: "#/definitions/BasicAdviceResponse"
400:
description: "Bad request"
schema:
$ref: "#/definitions/ErrorDetail"
500:
description: "Internal Server Error"
schema:
$ref: "#/definitions/ErrorDetail"
503:
description: "Service Unavailable"
schema:
$ref: "#/definitions/ErrorDetail"
504:
description: "Gateway Timeout"
schema:
$ref: "#/definitions/ErrorDetail"
security:
- httpBasic: []
/payments/{paymentId}/reversals/{adviceId}:
post:
summary: "Reverse a payment request that failed or timed out"
description: "If a createPayment request fails with a 500 or 504 HTTP status\
\ code, or no response was received within the timeout period, it must be\
\ reversed to ensure the payment is not reflected on a customer's account.\
\ reversePayment must be repeated until a final HTTP status code is received\
\ (not 500 or 504). reversePayment may be called repeatedly on the same payment\
\ resource without negative effect."
operationId: "reversePayment"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- name: "adviceId"
in: "path"
description: "The randomly generated UUID of this request"
required: true
type: "string"
- name: "paymentId"
in: "path"
description: "The UUID generated for the original createPayment request"
required: true
type: "string"
- in: "body"
name: "body"
description: "A payment reversal"
required: true
schema:
$ref: "#/definitions/BasicReversal"
responses:
202:
description: "Accepted"
schema:
$ref: "#/definitions/BasicAdviceResponse"
400:
description: "Bad request"
schema:
$ref: "#/definitions/ErrorDetail"
500:
description: "Internal Server Error"
schema:
$ref: "#/definitions/ErrorDetail"
503:
description: "Service Unavailable"
schema:
$ref: "#/definitions/ErrorDetail"
504:
description: "Gateway Timeout"
schema:
$ref: "#/definitions/ErrorDetail"
security:
- httpBasic: []
/refunds/{refundId}:
post:
summary: "Creates a refund of previously confirmed payment"
description: "If a payment is completed and confirmed successfully, some services\
\ support that customers may request a refund for a particular payment for\
\ some time after the payment took place. Not all services support refunds.\
\ In the case where this function is not supported for the requested service,\
\ a 501 HTTP status code may be returned"
operationId: "createRefund"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- name: "refundId"
in: "path"
description: "The randomly generated UUID of this request"
required: true
type: "string"
- in: "body"
name: "body"
description: "A refund request"
required: true
schema:
$ref: "#/definitions/RefundRequest"
responses:
201:
description: "Created"
schema:
$ref: "#/definitions/RefundResponse"
headers:
Location:
type: "string"
description: "The location of the created refund resource"
400:
description: "Bad request"
schema:
$ref: "#/definitions/ErrorDetail"
500:
description: "Internal Server Error"
schema:
$ref: "#/definitions/ErrorDetail"
501:
description: "Not implemented"
schema:
$ref: "#/definitions/ErrorDetail"
503:
description: "Service Unavailable"
schema:
$ref: "#/definitions/ErrorDetail"
504:
description: "Gateway Timeout"
schema:
$ref: "#/definitions/ErrorDetail"
security:
- httpBasic: []
/refunds/{refundId}/confirmations/{adviceId}:
post:
summary: "Confirm an existing bill payment refund"
description: "If a createRefund request previously succeeded with a 201 status\
\ it must be confirmed or reversed to complete the transaction. confirmRefund\
\ can only succeed if a refund was created but not reversed. confirmRefund\
\ must be repeated until a final HTTP status code is received (not 500 or\
\ 504). If a status code of either 500 or 504 is received, or no response\
\ is received, the request must be repeated. confirmRefund may be called repeatedly\
\ on the same refund resource without negative effect."
operationId: "confirmRefund"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- name: "adviceId"
in: "path"
description: "The randomly generated UUID of this request"
required: true
type: "string"
- name: "refundId"
in: "path"
description: "The UUID generated for the corresponding createRefund request"
required: true
type: "string"
- in: "body"
name: "body"
description: "A refund confirmation"
required: true
schema:
$ref: "#/definitions/BasicAdvice"
responses:
202:
description: "Accepted"
schema:
$ref: "#/definitions/BasicAdviceResponse"
400:
description: "Bad request"
schema:
$ref: "#/definitions/ErrorDetail"
500:
description: "Internal Server Error"
schema:
$ref: "#/definitions/ErrorDetail"
503:
description: "Service Unavailable"
schema:
$ref: "#/definitions/ErrorDetail"
504:
description: "Gateway Timeout"
schema:
$ref: "#/definitions/ErrorDetail"
security:
- httpBasic: []
/refunds/{refundId}/reversals/{adviceId}:
post:
summary: "Reverse a refund request that failed or timed out"
description: "If a createRefund request fails with a 500 or 504 HTTP status\
\ code, or no response was received within the timeout period, it must be\
\ reversed to ensure the payment is not refelected on a customer's account.\
\ reverseRefund must be repeated until a final HTTP status code is received\
\ (not 500 or 504). reverseRefund may be called repeatedly on the same payment\
\ resource without negative effect."
operationId: "reverseRefund"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- name: "adviceId"
in: "path"
description: "The randomly generated UUID of this request"
required: true
type: "string"
- name: "refundId"
in: "path"
description: "The UUID generated for the corresponding createRefund request"
required: true
type: "string"
- in: "body"
name: "body"
description: "A refund reversal"
required: true
schema:
$ref: "#/definitions/BasicReversal"
responses:
202:
description: "Accepted"
schema:
$ref: "#/definitions/BasicAdviceResponse"
400:
description: "Bad request"
schema:
$ref: "#/definitions/ErrorDetail"
500:
description: "Internal Server Error"
schema:
$ref: "#/definitions/ErrorDetail"
503:
description: "Service Unavailable"
schema:
$ref: "#/definitions/ErrorDetail"
504:
description: "Gateway Timeout"
schema:
$ref: "#/definitions/ErrorDetail"
security:
- httpBasic: []
securityDefinitions:
httpBasic:
description: "All requests require HTTP basic authentication, where user name\
\ is the value used in
Sender.Institution.Id and password\
\ has been agreed with Electrum."
type: "basic"
definitions:
Account:
type: "object"
required:
- "accountRef"
properties:
accountRef:
type: "string"
description: "A reference number identifying the bill payments processor,\
\ bill issuer, and customer"
minLength: 6
maxLength: 40
dueDate:
type: "string"
format: "date"
description: "The effective date of the current billing period in the format\
\ yyyy-MM-dd"
description: "Represents the status of a customer account"
AccountLookupRequest:
type: "object"
required:
- "accountRef"
- "client"
- "id"
- "originator"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this transaction, as\
\ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
originator:
description: "Data relating to the originator of the transaction."
$ref: "#/definitions/Originator"
client:
description: "Data relating to the sender of Transaction."
$ref: "#/definitions/Institution"
settlementEntity:
description: "Data relating to the entity with whom the Merchant will settle\
\ the transaction."
$ref: "#/definitions/Institution"
receiver:
description: "Data relating to the entity which ultimately processes the request."
$ref: "#/definitions/Institution"
thirdPartyIdentifiers:
type: "array"
description: "An array of identifiers which each identify the transaction\
\ within each entity's system."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
slipData:
description: "Text to be printed on the customer receipt."
$ref: "#/definitions/SlipData"
basketRef:
type: "string"
description: "Used to group multiple transactions which would otherwise be\
\ considered independent."
tranType:
type: "string"
description: "Data relating to the type of transaction taking place (i.e.\
\ cash withdrawal, goods and services etc.)."
enum:
- "GOODS_AND_SERVICES"
- "CASH_WITHDRAWAL"
- "DEBIT_ADJUSTMENT"
- "GOODS_AND_SERVICES_WITH_CASH_BACK"
- "NON_CASH"
- "RETURNS"
- "DEPOSIT"
- "CREDIT_ADJUSTMENT"
- "GENERAL_CREDIT"
- "AVAILABLE_FUNDS_INQUIRY"
- "BALANCE_INQUIRY"
- "GENERAL_INQUIRY"
- "CARD_VERIFICATION_INQUIRY"
- "CARDHOLDER_ACCOUNTS_TRANSFER"
- "GENERAL_TRANSFER"
- "PAYMENT_FROM_ACCOUNT"
- "GENERAL_PAYMENT"
- "PAYMENT_TO_ACCOUNT"
- "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
- "PLACE_HOLD_ON_CARD"
- "GENERAL_ADMIN"
- "CHANGE_PIN"
- "CARD_HOLDER_INQUIRY"
- "POINTS_INQUIRY"
srcAccType:
type: "string"
description: "This specifies the type of source account being used in the\
\ transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
destAccType:
type: "string"
description: "This specifies the type of destination account being used in\
\ the transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
accountRef:
type: "string"
description: "A reference number identifying the bill payments processor,\
\ bill issuer, and customer"
minLength: 6
maxLength: 40
description: "The data required to request account info"
AccountLookupResponse:
type: "object"
required:
- "account"
- "amounts"
- "client"
- "id"
- "originator"
- "slipData"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this transaction, as\
\ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
originator:
description: "Data relating to the originator of the transaction."
$ref: "#/definitions/Originator"
client:
description: "Data relating to the sender of Transaction."
$ref: "#/definitions/Institution"
settlementEntity:
description: "Data relating to the entity with whom the Merchant will settle\
\ the transaction."
$ref: "#/definitions/Institution"
receiver:
description: "Data relating to the entity which ultimately processes the request."
$ref: "#/definitions/Institution"
thirdPartyIdentifiers:
type: "array"
description: "An array of identifiers which each identify the transaction\
\ within each entity's system."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
slipData:
description: "Text to be printed on the customer receipt."
$ref: "#/definitions/BillSlipData"
basketRef:
type: "string"
description: "Used to group multiple transactions which would otherwise be\
\ considered independent."
tranType:
type: "string"
description: "Data relating to the type of transaction taking place (i.e.\
\ cash withdrawal, goods and services etc.)."
enum:
- "GOODS_AND_SERVICES"
- "CASH_WITHDRAWAL"
- "DEBIT_ADJUSTMENT"
- "GOODS_AND_SERVICES_WITH_CASH_BACK"
- "NON_CASH"
- "RETURNS"
- "DEPOSIT"
- "CREDIT_ADJUSTMENT"
- "GENERAL_CREDIT"
- "AVAILABLE_FUNDS_INQUIRY"
- "BALANCE_INQUIRY"
- "GENERAL_INQUIRY"
- "CARD_VERIFICATION_INQUIRY"
- "CARDHOLDER_ACCOUNTS_TRANSFER"
- "GENERAL_TRANSFER"
- "PAYMENT_FROM_ACCOUNT"
- "GENERAL_PAYMENT"
- "PAYMENT_TO_ACCOUNT"
- "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
- "PLACE_HOLD_ON_CARD"
- "GENERAL_ADMIN"
- "CHANGE_PIN"
- "CARD_HOLDER_INQUIRY"
- "POINTS_INQUIRY"
srcAccType:
type: "string"
description: "This specifies the type of source account being used in the\
\ transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
destAccType:
type: "string"
description: "This specifies the type of destination account being used in\
\ the transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
customer:
description: "Customer detail"
$ref: "#/definitions/Customer"
amounts:
description: "The message amount details such as account balance."
$ref: "#/definitions/BillpayAmounts"
partPaymentAllowed:
type: "boolean"
description: "Indicates whether a payment amount may be less than the amount\
\ due. Defaults to true."
default: false
overPaymentAllowed:
type: "boolean"
description: "Indicates whether a payment amount may be more than the amount\
\ due. Defaults to true."
default: false
account:
description: "The customer account detail"
$ref: "#/definitions/Account"
description: "The data resulting from an account lookup request"
An32TokenPayment:
allOf:
- $ref: "#/definitions/PaymentMethod"
- type: "object"
required:
- "token"
properties:
token:
type: "string"
description: "32 character alphanumeric code which identifies a token"
pattern: "[a-zA-Z0-9]{32}"
description: "Model for token-based payments"
Barcode:
type: "object"
required:
- "data"
- "encoding"
properties:
data:
type: "string"
description: "Data to be encoded in the barcode"
encoding:
type: "string"
description: "Specifies the encoding used in the barcode"
description: "Used to indicate barcode information for a slip line."
BasicAdvice:
type: "object"
required:
- "id"
- "requestId"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this advice, as defined\
\ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
requestId:
type: "string"
description: "The UUID identifying the request that this advice relates to"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
thirdPartyIdentifiers:
type: "array"
description: "The unaltered thirdPartyIdentifiers array as supplied in the\
\ related BasicResponse message. Required if thirdPartyIdentifiers field\
\ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
\ in the BasicResponse or no BasicResponse was received then this should\
\ be set to the thirdPartyIdentifiers sent in the original request."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
description: "The data required in all advice messages"
BasicAdviceResponse:
type: "object"
required:
- "id"
- "requestId"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this advice, as defined\
\ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
requestId:
type: "string"
description: "The UUID identifying the request that this advice relates to"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
thirdPartyIdentifiers:
type: "array"
description: "The unaltered thirdPartyIdentifiers array as supplied in the\
\ related BasicResponse message. Required if thirdPartyIdentifiers field\
\ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
\ in the BasicResponse or no BasicResponse was received then this should\
\ be set to the thirdPartyIdentifiers sent in the original request."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
description: "Basic advice response information."
BasicReversal:
type: "object"
required:
- "id"
- "requestId"
- "reversalReason"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this advice, as defined\
\ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
requestId:
type: "string"
description: "The UUID identifying the request that this advice relates to"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
thirdPartyIdentifiers:
type: "array"
description: "The unaltered thirdPartyIdentifiers array as supplied in the\
\ related BasicResponse message. Required if thirdPartyIdentifiers field\
\ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
\ in the BasicResponse or no BasicResponse was received then this should\
\ be set to the thirdPartyIdentifiers sent in the original request."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
reversalReason:
type: "string"
description: "The reason for the reversal"
enum:
- "TIMEOUT"
- "CANCELLED"
- "RESPONSE_NOT_FINAL"
description: "An advice that notifies of the negative completion of a transaction.\
\ This can be either due to customer cancellation, or as a result of receiving\
\ a non-final response (or no response) to a request"
BillSlipData:
type: "object"
properties:
messageLines:
type: "array"
description: "An array of text lines and optional formatting to be printed\
\ on the customer slip."
items:
$ref: "#/definitions/SlipLine"
slipWidth:
type: "integer"
format: "int32"
description: "The width of the slip in normal (unformatted) characters."
issuerReference:
type: "string"
description: "An identifier that is printed on the customer slip and uniquely\
\ identifies the payment on the service provider's system. This value is\
\ used by the customer to request a refund when the service supports this\
\ function, and it is thus important that this number is unique."
pattern: "[A-Z0-9]{1,40}"
phoneNumber:
type: "string"
description: "The call centre phone number"
description: "Data that may be printed on the customer slip for information purposes"
BillpayAmounts:
type: "object"
properties:
requestAmount:
description: "The transaction amount requested by the customer to be authorised\
\ or approved. This is the total amount the customer wishes to pay for a\
\ service or virtual product."
$ref: "#/definitions/LedgerAmount"
approvedAmount:
description: "The transaction amount which was approved by the upstream entity."
$ref: "#/definitions/LedgerAmount"
feeAmount:
description: "Fees charged by the upstream entity for processing the transaction."
$ref: "#/definitions/LedgerAmount"
balanceAmount:
description: "The remaining balance on the customer's account."
$ref: "#/definitions/LedgerAmount"
additionalAmounts:
type: "object"
description: "Any additional amounts that are involved in a transaction which\
\ don't appropriately fit into the other amount fields."
additionalProperties:
$ref: "#/definitions/LedgerAmount"
maxPayableAmount:
description: "The maximum amount a customer is allowed to pay towards an account,\
\ policy or some other payment."
$ref: "#/definitions/LedgerAmount"
minPayableAmount:
description: "The minimum amount a customer is allowed to pay towards an account,\
\ policy or some other payment."
$ref: "#/definitions/LedgerAmount"
description: "Amounts which make up the transaction. Absent amounts have zero\
\ value."
CardPayment:
allOf:
- $ref: "#/definitions/PaymentMethod"
- type: "object"
required:
- "pan"
properties:
posInfo:
$ref: "#/definitions/PosInfo"
pan:
type: "string"
description: "Primary account number that uniquely identifies this card."
pattern: "[0-9]{1,19}"
expiryDate:
type: "string"
description: "The card expiry date, in YYMM format."
pattern: "[0-9]{4}"
encryptedPin:
description: "The encrypted pin number associated with the card in HEX format."
$ref: "#/definitions/EncryptedPin"
pin:
description: "The PIN associated with this card as either a clear PIN or\
\ an encrypted PIN in HEX format."
$ref: "#/definitions/Pin"
description: "Model for card-based payments"
Customer:
type: "object"
properties:
firstName:
type: "string"
description: "The customer's first name(s)"
minLength: 0
maxLength: 40
lastName:
type: "string"
description: "The customer's last name"
minLength: 0
maxLength: 40
address:
type: "string"
description: "The customer's address"
minLength: 0
maxLength: 80
idNumber:
type: "string"
description: "The customer's ID Number"
minLength: 0
maxLength: 13
contactNumber:
type: "string"
description: "The customer's contact number"
minLength: 0
maxLength: 40
description: "A bill payment customer"
EncryptedPin:
type: "object"
required:
- "pinBlock"
properties:
pinBlock:
type: "string"
description: "Hexadecimal string representing the encrypted PIN to be used."
pattern: "[a-fA-F0-9]{16}"
encryptionParameters:
description: "Parameters pertaining to the generation of the pinBlock. Required\
\ if the service is to perform any operations on the encrypted PIN, such\
\ as PIN translation."
$ref: "#/definitions/EncryptionParameters"
description: "A PIN required to authorise a transaction. EncryptionParameters\
\ should be provided where the service will be performing operations on the\
\ encrypted PIN, such as PIN translation. Only the PIN block need be provided\
\ where the service is expected to forward it to a third party, where the calling\
\ client and said third party have agreed upon encryption parameters beforehand."
EncryptionParameters:
type: "object"
required:
- "accountNumber"
properties:
pinBlockFormat:
type: "string"
description: "PIN block format that was used when encrypting the PIN. Defaults\
\ to ISO_9564_FORMAT_0."
enum:
- "ISO_9564_FORMAT_0"
- "ISO_9564_FORMAT_1"
- "ISO_9564_FORMAT_3"
default: "ISO_9564_FORMAT_0"
accountNumber:
type: "string"
description: "12 digit account number used when encrypting the PIN. When account\
\ number is a card number (PAN), this is the rightmost 12 digits excluding\
\ the check digit."
pattern: "[0-9]{12}"
keyIndex:
type: "integer"
format: "int32"
description: "Index of the key under which the PIN block is encrypted. Where\
\ keys are exchanged in TR-31 KeyBlock format, this should be set to the\
\ key version number field of the key used for encryption. If this field\
\ is not populated, the most recently exchanged key will be used. Note that\
\ omitting this field may require a higher level of synchronization during\
\ automated key exchange in some environments."
description: "Parameters pertaining to the generation of the PIN block. Required\
\ if the service is to perform any operations on the encrypted PIN, such as\
\ translation."
ErrorDetail:
type: "object"
required:
- "errorMessage"
- "errorType"
- "id"
- "requestType"
properties:
errorType:
type: "string"
description: "The type of error that occurred"
enum:
- "DUPLICATE_RECORD"
- "FORMAT_ERROR"
- "FUNCTION_NOT_SUPPORTED"
- "GENERAL_ERROR"
- "INVALID_AMOUNT"
- "ROUTING_ERROR"
- "TRANSACTION_NOT_SUPPORTED"
- "UNABLE_TO_LOCATE_RECORD"
- "UNKNOWN_CUSTOMER_ACCOUNT"
- "UPSTREAM_UNAVAILABLE"
- "ACCOUNT_ALREADY_SETTLED"
- "INVALID_PRODUCT"
- "INVALID_MERCHANT"
- "RECEIVER_BLACKLISTED"
- "LUHN_CHECK_FAILED"
- "BLOCKED_USING_SETTLEMENT_ENTITY"
- "BELOW_MINIMUM_ALLOWED_AMOUNT"
- "ABOVE_MAXIMUM_ALLOWED_AMOUNT"
errorMessage:
type: "string"
description: "A short description of the error"
minLength: 0
maxLength: 20
requestType:
type: "string"
description: "The type of request being processed when the error occurred.\
\ Refer to Release Notes for deprecated values."
enum:
- "ACCOUNT_LOOKUP_REQUEST"
- "TRAFFIC_FINE_LOOKUP_REQUEST"
- "POLICY_LOOKUP_REQUEST"
- "PAYMENT_REQUEST"
- "TRAFFIC_FINE_PAYMENT_REQUEST"
- "POLICY_PAYMENT_REQUEST"
- "PAYMENT_REVERSAL"
- "TRAFFIC_FINE_PAYMENT_REVERSAL"
- "PAYMENT_CONFIRMATION"
- "TRAFFIC_FINE_PAYMENT_CONFIRMATION"
- "REFUND_REQUEST"
- "REFUND_REVERSAL"
- "REFUND_CONFIRMATION"
id:
type: "string"
description: "The UUID of the message for which error occurred."
originalId:
type: "string"
description: "The UUID of the original request message in the case of an error\
\ occurring for an advice message."
detailMessage:
type: "object"
description: "A free form detailed description of a particular failure condition\
\ may optionally be supplied"
description: "Represents the outcome of a completed transaction"
Institution:
type: "object"
required:
- "id"
- "name"
properties:
id:
type: "string"
description: "The institution's ID. API implementations should take care to\
\ set this field as appropriate for the implementation."
name:
type: "string"
description: "The institutions's name"
minLength: 0
maxLength: 40
description: "Originating, acquiring, processing, or receiving institution details"
LedgerAmount:
type: "object"
required:
- "amount"
- "currency"
properties:
amount:
type: "integer"
format: "int64"
description: "Amount in minor denomination, e.g. R799.95 is encoded as 79995"
currency:
type: "string"
description: "Three digit currency number from ISO 4217, e.g. South African\
\ Rand is encoded as 710"
pattern: "[0-9]{3}"
ledgerIndicator:
type: "string"
description: "Indicates whether this amount is a debit or a credit. Only required\
\ when the amount can be either a debit or a credit"
enum:
- "DEBIT"
- "CREDIT"
description: "An amount object only containing value and currency, and optionally\
\ an indicator of DEBIT/CREDIT"
LoyaltyCardPayment:
allOf:
- $ref: "#/definitions/PaymentMethod"
- type: "object"
required:
- "cardNumber"
properties:
cardNumber:
type: "string"
description: "Primary account number of the loyalty programme card used\
\ to make a payment"
pattern: "[0-9]{16}"
description: "Model for payments made using loyalty programme cards"
Merchant:
type: "object"
required:
- "merchantId"
- "merchantName"
- "merchantType"
properties:
merchantType:
type: "string"
description: "The assigned four digit merchant category code"
pattern: "[0-9]{4}"
merchantId:
type: "string"
description: "The assigned merchant identifier. Also known as card acceptor\
\ id"
minLength: 15
maxLength: 15
merchantName:
description: "The name of a merchant"
$ref: "#/definitions/MerchantName"
description: "Merchant related data. Must be included if available"
MerchantName:
type: "object"
required:
- "city"
- "country"
- "name"
- "region"
properties:
name:
type: "string"
description: "The merchant or trading as name associated with the merchant"
minLength: 0
maxLength: 23
city:
type: "string"
description: "The city where the merchant is located"
minLength: 0
maxLength: 13
region:
type: "string"
description: "The state or region where the merchant is located"
minLength: 0
maxLength: 2
country:
type: "string"
description: "The country where the merchant is located"
minLength: 0
maxLength: 2
description: "A container object representing the Merchant Name and Location"
Originator:
type: "object"
required:
- "institution"
- "merchant"
- "terminalId"
properties:
institution:
description: "The institution originating the request, as issued by Electrum"
$ref: "#/definitions/Institution"
terminalId:
type: "string"
description: "The ID that uniquely identifies each device or system in an\
\ originator's institution capable of sending requests. Required for transactions\
\ initiated from physical card entry or point-of-sale devices"
minLength: 8
maxLength: 8
merchant:
description: "Merchant data. Required if available"
$ref: "#/definitions/Merchant"
description: "The Originator object encapsulates data relating to the originator\
\ of the transaction"
PaymentMethod:
type: "object"
required:
- "amount"
- "type"
discriminator: "type"
properties:
type:
type: "string"
description: "The general method of payment used"
enum:
- "AN_32_TOKEN"
- "LOYALTY_CARD"
- "CARD"
name:
type: "string"
description: "The specific method of payment used"
amount:
description: "Ledger amount of the payment"
$ref: "#/definitions/LedgerAmount"
description: "Base model for all payment types"
PaymentRequest:
type: "object"
required:
- "accountRef"
- "amounts"
- "client"
- "id"
- "originator"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this transaction, as\
\ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
originator:
description: "Data relating to the originator of the transaction."
$ref: "#/definitions/Originator"
client:
description: "Data relating to the sender of Transaction."
$ref: "#/definitions/Institution"
settlementEntity:
description: "Data relating to the entity with whom the Merchant will settle\
\ the transaction."
$ref: "#/definitions/Institution"
receiver:
description: "Data relating to the entity which ultimately processes the request."
$ref: "#/definitions/Institution"
thirdPartyIdentifiers:
type: "array"
description: "An array of identifiers which each identify the transaction\
\ within each entity's system."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
slipData:
description: "Text to be printed on the customer receipt."
$ref: "#/definitions/SlipData"
basketRef:
type: "string"
description: "Used to group multiple transactions which would otherwise be\
\ considered independent."
tranType:
type: "string"
description: "Data relating to the type of transaction taking place (i.e.\
\ cash withdrawal, goods and services etc.)."
enum:
- "GOODS_AND_SERVICES"
- "CASH_WITHDRAWAL"
- "DEBIT_ADJUSTMENT"
- "GOODS_AND_SERVICES_WITH_CASH_BACK"
- "NON_CASH"
- "RETURNS"
- "DEPOSIT"
- "CREDIT_ADJUSTMENT"
- "GENERAL_CREDIT"
- "AVAILABLE_FUNDS_INQUIRY"
- "BALANCE_INQUIRY"
- "GENERAL_INQUIRY"
- "CARD_VERIFICATION_INQUIRY"
- "CARDHOLDER_ACCOUNTS_TRANSFER"
- "GENERAL_TRANSFER"
- "PAYMENT_FROM_ACCOUNT"
- "GENERAL_PAYMENT"
- "PAYMENT_TO_ACCOUNT"
- "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
- "PLACE_HOLD_ON_CARD"
- "GENERAL_ADMIN"
- "CHANGE_PIN"
- "CARD_HOLDER_INQUIRY"
- "POINTS_INQUIRY"
srcAccType:
type: "string"
description: "This specifies the type of source account being used in the\
\ transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
destAccType:
type: "string"
description: "This specifies the type of destination account being used in\
\ the transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
accountRef:
type: "string"
description: "A reference number identifying the bill payments processor,\
\ bill issuer, and customer"
minLength: 6
maxLength: 40
amounts:
description: "Contains the payment amount."
$ref: "#/definitions/BillpayAmounts"
tenders:
type: "array"
description: "Contains the tenders for the payment request if available"
items:
$ref: "#/definitions/Tender"
paymentMethods:
type: "array"
description: "Contains the payment method for the payment request if available"
items:
$ref: "#/definitions/PaymentMethod"
customer:
description: "Customer detail"
$ref: "#/definitions/Customer"
description: "Represents a request to perform a payment"
PaymentResponse:
type: "object"
required:
- "account"
- "amounts"
- "client"
- "id"
- "originator"
- "slipData"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this transaction, as\
\ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
originator:
description: "Data relating to the originator of the transaction."
$ref: "#/definitions/Originator"
client:
description: "Data relating to the sender of Transaction."
$ref: "#/definitions/Institution"
settlementEntity:
description: "Data relating to the entity with whom the Merchant will settle\
\ the transaction."
$ref: "#/definitions/Institution"
receiver:
description: "Data relating to the entity which ultimately processes the request."
$ref: "#/definitions/Institution"
thirdPartyIdentifiers:
type: "array"
description: "An array of identifiers which each identify the transaction\
\ within each entity's system."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
slipData:
description: "Text to be printed on the customer receipt."
$ref: "#/definitions/BillSlipData"
basketRef:
type: "string"
description: "Used to group multiple transactions which would otherwise be\
\ considered independent."
tranType:
type: "string"
description: "Data relating to the type of transaction taking place (i.e.\
\ cash withdrawal, goods and services etc.)."
enum:
- "GOODS_AND_SERVICES"
- "CASH_WITHDRAWAL"
- "DEBIT_ADJUSTMENT"
- "GOODS_AND_SERVICES_WITH_CASH_BACK"
- "NON_CASH"
- "RETURNS"
- "DEPOSIT"
- "CREDIT_ADJUSTMENT"
- "GENERAL_CREDIT"
- "AVAILABLE_FUNDS_INQUIRY"
- "BALANCE_INQUIRY"
- "GENERAL_INQUIRY"
- "CARD_VERIFICATION_INQUIRY"
- "CARDHOLDER_ACCOUNTS_TRANSFER"
- "GENERAL_TRANSFER"
- "PAYMENT_FROM_ACCOUNT"
- "GENERAL_PAYMENT"
- "PAYMENT_TO_ACCOUNT"
- "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
- "PLACE_HOLD_ON_CARD"
- "GENERAL_ADMIN"
- "CHANGE_PIN"
- "CARD_HOLDER_INQUIRY"
- "POINTS_INQUIRY"
srcAccType:
type: "string"
description: "This specifies the type of source account being used in the\
\ transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
destAccType:
type: "string"
description: "This specifies the type of destination account being used in\
\ the transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
customer:
description: "Customer detail"
$ref: "#/definitions/Customer"
amounts:
description: "The message amount details such as account balance."
$ref: "#/definitions/BillpayAmounts"
partPaymentAllowed:
type: "boolean"
description: "Indicates whether a payment amount may be less than the amount\
\ due. Defaults to true."
default: false
overPaymentAllowed:
type: "boolean"
description: "Indicates whether a payment amount may be more than the amount\
\ due. Defaults to true."
default: false
account:
description: "The customer account detail"
$ref: "#/definitions/Account"
tenders:
type: "array"
description: "Contains the tenders for the payment response if available"
items:
$ref: "#/definitions/Tender"
paymentMethods:
type: "array"
description: "Contains the payment method for the payment response if available"
items:
$ref: "#/definitions/PaymentMethod"
description: "Represents a response to a payment request"
Pin:
type: "object"
required:
- "type"
discriminator: "type"
properties:
type:
type: "string"
description: "Whether the PIN is communicated in the clear or encrypted."
enum:
- "CLEAR_PIN"
- "ENCRYPTED_PIN"
description: "Base model for capturing either a clear PIN or encrypted PIN"
PinClear:
allOf:
- $ref: "#/definitions/Pin"
- type: "object"
required:
- "pin"
properties:
pin:
type: "string"
description: "A clear PIN"
pattern: ".{0,20}"
description: "A clear PIN required to authorise a transaction."
PinEncrypted:
allOf:
- $ref: "#/definitions/Pin"
- type: "object"
required:
- "pinBlock"
properties:
pinBlock:
type: "string"
description: "Hexadecimal string representing the encrypted PIN to be used."
pattern: "[a-fA-F0-9]{16}"
encryptionParameters:
description: "Parameters pertaining to the generation of the pinBlock. Required\
\ if the service is to perform any operations on the encrypted PIN, such\
\ as PIN translation."
$ref: "#/definitions/EncryptionParameters"
description: "A PIN required to authorise a transaction. EncryptionParameters\
\ should be provided where the service will be performing operations on the\
\ encrypted PIN, such as PIN translation. Only the PIN block need be provided\
\ where the service is expected to forward it to a third party, where the\
\ calling client and said third party have agreed upon encryption parameters\
\ beforehand."
Policy:
type: "object"
required:
- "policyNumber"
properties:
policyNumber:
type: "string"
description: "A reference number identifying the policy to the processor."
minLength: 6
maxLength: 40
dueDate:
type: "string"
format: "date"
description: "The date by which the next policy payment must be made in the\
\ format yyyy-MM-dd."
description: "Represents the status of a customer policy"
PolicyLookupRequest:
type: "object"
required:
- "client"
- "id"
- "originator"
- "policyNumber"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this transaction, as\
\ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
originator:
description: "Data relating to the originator of the transaction."
$ref: "#/definitions/Originator"
client:
description: "Data relating to the sender of Transaction."
$ref: "#/definitions/Institution"
settlementEntity:
description: "Data relating to the entity with whom the Merchant will settle\
\ the transaction."
$ref: "#/definitions/Institution"
receiver:
description: "Data relating to the entity which ultimately processes the request."
$ref: "#/definitions/Institution"
thirdPartyIdentifiers:
type: "array"
description: "An array of identifiers which each identify the transaction\
\ within each entity's system."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
slipData:
description: "Text to be printed on the customer receipt."
$ref: "#/definitions/SlipData"
basketRef:
type: "string"
description: "Used to group multiple transactions which would otherwise be\
\ considered independent."
tranType:
type: "string"
description: "Data relating to the type of transaction taking place (i.e.\
\ cash withdrawal, goods and services etc.)."
enum:
- "GOODS_AND_SERVICES"
- "CASH_WITHDRAWAL"
- "DEBIT_ADJUSTMENT"
- "GOODS_AND_SERVICES_WITH_CASH_BACK"
- "NON_CASH"
- "RETURNS"
- "DEPOSIT"
- "CREDIT_ADJUSTMENT"
- "GENERAL_CREDIT"
- "AVAILABLE_FUNDS_INQUIRY"
- "BALANCE_INQUIRY"
- "GENERAL_INQUIRY"
- "CARD_VERIFICATION_INQUIRY"
- "CARDHOLDER_ACCOUNTS_TRANSFER"
- "GENERAL_TRANSFER"
- "PAYMENT_FROM_ACCOUNT"
- "GENERAL_PAYMENT"
- "PAYMENT_TO_ACCOUNT"
- "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
- "PLACE_HOLD_ON_CARD"
- "GENERAL_ADMIN"
- "CHANGE_PIN"
- "CARD_HOLDER_INQUIRY"
- "POINTS_INQUIRY"
srcAccType:
type: "string"
description: "This specifies the type of source account being used in the\
\ transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
destAccType:
type: "string"
description: "This specifies the type of destination account being used in\
\ the transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
policyNumber:
type: "string"
description: "A reference number identifying the policy to the service provider."
minLength: 6
maxLength: 40
description: "The data required to request policy info"
PolicyLookupResponse:
type: "object"
required:
- "amounts"
- "client"
- "id"
- "originator"
- "policy"
- "slipData"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this transaction, as\
\ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
originator:
description: "Data relating to the originator of the transaction."
$ref: "#/definitions/Originator"
client:
description: "Data relating to the sender of Transaction."
$ref: "#/definitions/Institution"
settlementEntity:
description: "Data relating to the entity with whom the Merchant will settle\
\ the transaction."
$ref: "#/definitions/Institution"
receiver:
description: "Data relating to the entity which ultimately processes the request."
$ref: "#/definitions/Institution"
thirdPartyIdentifiers:
type: "array"
description: "An array of identifiers which each identify the transaction\
\ within each entity's system."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
slipData:
description: "Text to be printed on the customer receipt."
$ref: "#/definitions/BillSlipData"
basketRef:
type: "string"
description: "Used to group multiple transactions which would otherwise be\
\ considered independent."
tranType:
type: "string"
description: "Data relating to the type of transaction taking place (i.e.\
\ cash withdrawal, goods and services etc.)."
enum:
- "GOODS_AND_SERVICES"
- "CASH_WITHDRAWAL"
- "DEBIT_ADJUSTMENT"
- "GOODS_AND_SERVICES_WITH_CASH_BACK"
- "NON_CASH"
- "RETURNS"
- "DEPOSIT"
- "CREDIT_ADJUSTMENT"
- "GENERAL_CREDIT"
- "AVAILABLE_FUNDS_INQUIRY"
- "BALANCE_INQUIRY"
- "GENERAL_INQUIRY"
- "CARD_VERIFICATION_INQUIRY"
- "CARDHOLDER_ACCOUNTS_TRANSFER"
- "GENERAL_TRANSFER"
- "PAYMENT_FROM_ACCOUNT"
- "GENERAL_PAYMENT"
- "PAYMENT_TO_ACCOUNT"
- "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
- "PLACE_HOLD_ON_CARD"
- "GENERAL_ADMIN"
- "CHANGE_PIN"
- "CARD_HOLDER_INQUIRY"
- "POINTS_INQUIRY"
srcAccType:
type: "string"
description: "This specifies the type of source account being used in the\
\ transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
destAccType:
type: "string"
description: "This specifies the type of destination account being used in\
\ the transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
customer:
description: "Customer detail"
$ref: "#/definitions/Customer"
amounts:
description: "The message amount details such as account balance."
$ref: "#/definitions/BillpayAmounts"
partPaymentAllowed:
type: "boolean"
description: "Indicates whether a payment amount may be less than the amount\
\ due. Defaults to true."
default: false
overPaymentAllowed:
type: "boolean"
description: "Indicates whether a payment amount may be more than the amount\
\ due. Defaults to true."
default: false
policy:
description: "The customer policy detail"
$ref: "#/definitions/Policy"
description: "The data resulting from a policy lookup request"
PolicyPaymentRequest:
type: "object"
required:
- "amounts"
- "client"
- "id"
- "originator"
- "policyNumber"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this transaction, as\
\ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
originator:
description: "Data relating to the originator of the transaction."
$ref: "#/definitions/Originator"
client:
description: "Data relating to the sender of Transaction."
$ref: "#/definitions/Institution"
settlementEntity:
description: "Data relating to the entity with whom the Merchant will settle\
\ the transaction."
$ref: "#/definitions/Institution"
receiver:
description: "Data relating to the entity which ultimately processes the request."
$ref: "#/definitions/Institution"
thirdPartyIdentifiers:
type: "array"
description: "An array of identifiers which each identify the transaction\
\ within each entity's system."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
slipData:
description: "Text to be printed on the customer receipt."
$ref: "#/definitions/SlipData"
basketRef:
type: "string"
description: "Used to group multiple transactions which would otherwise be\
\ considered independent."
tranType:
type: "string"
description: "Data relating to the type of transaction taking place (i.e.\
\ cash withdrawal, goods and services etc.)."
enum:
- "GOODS_AND_SERVICES"
- "CASH_WITHDRAWAL"
- "DEBIT_ADJUSTMENT"
- "GOODS_AND_SERVICES_WITH_CASH_BACK"
- "NON_CASH"
- "RETURNS"
- "DEPOSIT"
- "CREDIT_ADJUSTMENT"
- "GENERAL_CREDIT"
- "AVAILABLE_FUNDS_INQUIRY"
- "BALANCE_INQUIRY"
- "GENERAL_INQUIRY"
- "CARD_VERIFICATION_INQUIRY"
- "CARDHOLDER_ACCOUNTS_TRANSFER"
- "GENERAL_TRANSFER"
- "PAYMENT_FROM_ACCOUNT"
- "GENERAL_PAYMENT"
- "PAYMENT_TO_ACCOUNT"
- "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
- "PLACE_HOLD_ON_CARD"
- "GENERAL_ADMIN"
- "CHANGE_PIN"
- "CARD_HOLDER_INQUIRY"
- "POINTS_INQUIRY"
srcAccType:
type: "string"
description: "This specifies the type of source account being used in the\
\ transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
destAccType:
type: "string"
description: "This specifies the type of destination account being used in\
\ the transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
policyNumber:
type: "string"
description: "A reference number identifying the policy to the service provider."
minLength: 6
maxLength: 40
amounts:
description: "Contains the payment amount."
$ref: "#/definitions/BillpayAmounts"
tenders:
type: "array"
description: "Contains the tenders for the payment request if available"
items:
$ref: "#/definitions/Tender"
paymentMethods:
type: "array"
description: "Contains the payment method for the payment request if available"
items:
$ref: "#/definitions/PaymentMethod"
customer:
description: "Customer detail"
$ref: "#/definitions/Customer"
description: "Represents a request to perform a payment of a traffic fine."
PolicyPaymentResponse:
type: "object"
required:
- "amounts"
- "client"
- "id"
- "originator"
- "policy"
- "slipData"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this transaction, as\
\ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
originator:
description: "Data relating to the originator of the transaction."
$ref: "#/definitions/Originator"
client:
description: "Data relating to the sender of Transaction."
$ref: "#/definitions/Institution"
settlementEntity:
description: "Data relating to the entity with whom the Merchant will settle\
\ the transaction."
$ref: "#/definitions/Institution"
receiver:
description: "Data relating to the entity which ultimately processes the request."
$ref: "#/definitions/Institution"
thirdPartyIdentifiers:
type: "array"
description: "An array of identifiers which each identify the transaction\
\ within each entity's system."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
slipData:
description: "Text to be printed on the customer receipt."
$ref: "#/definitions/BillSlipData"
basketRef:
type: "string"
description: "Used to group multiple transactions which would otherwise be\
\ considered independent."
tranType:
type: "string"
description: "Data relating to the type of transaction taking place (i.e.\
\ cash withdrawal, goods and services etc.)."
enum:
- "GOODS_AND_SERVICES"
- "CASH_WITHDRAWAL"
- "DEBIT_ADJUSTMENT"
- "GOODS_AND_SERVICES_WITH_CASH_BACK"
- "NON_CASH"
- "RETURNS"
- "DEPOSIT"
- "CREDIT_ADJUSTMENT"
- "GENERAL_CREDIT"
- "AVAILABLE_FUNDS_INQUIRY"
- "BALANCE_INQUIRY"
- "GENERAL_INQUIRY"
- "CARD_VERIFICATION_INQUIRY"
- "CARDHOLDER_ACCOUNTS_TRANSFER"
- "GENERAL_TRANSFER"
- "PAYMENT_FROM_ACCOUNT"
- "GENERAL_PAYMENT"
- "PAYMENT_TO_ACCOUNT"
- "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
- "PLACE_HOLD_ON_CARD"
- "GENERAL_ADMIN"
- "CHANGE_PIN"
- "CARD_HOLDER_INQUIRY"
- "POINTS_INQUIRY"
srcAccType:
type: "string"
description: "This specifies the type of source account being used in the\
\ transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
destAccType:
type: "string"
description: "This specifies the type of destination account being used in\
\ the transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
customer:
description: "Customer detail"
$ref: "#/definitions/Customer"
amounts:
description: "The message amount details such as account balance."
$ref: "#/definitions/BillpayAmounts"
partPaymentAllowed:
type: "boolean"
description: "Indicates whether a payment amount may be less than the amount\
\ due. Defaults to true."
default: false
overPaymentAllowed:
type: "boolean"
description: "Indicates whether a payment amount may be more than the amount\
\ due. Defaults to true."
default: false
policy:
description: "The customer policy detail"
$ref: "#/definitions/Policy"
description: "Represents a response to a policy payment request"
PosEntryMode:
type: "object"
required:
- "panEntryMode"
- "pinEntryCapability"
properties:
panEntryMode:
type: "string"
description: "Describes the method by which the PAN was captured."
enum:
- "UNKNOWN"
- "MANUAL"
- "MAGSTRIPE_NO_CVV"
- "BARCODE"
- "OCR"
- "ICC_CVV"
- "CONTACTLESS_ICC"
- "MAGSTRIPE_CVV"
- "CONTACTLESS_MAGSTRIPE"
- "ICC_NO_CVV"
- "ORIG_MODE"
- "FALLBACK"
pinEntryCapability:
type: "string"
description: "Describes whether the PIN can be entered."
enum:
- "UNKNOWN"
- "CAN_ACCEPT"
- "CANNOT_ACCEPT"
description: "Describes how the PAN and PIN were captured by the POS."
PosInfo:
type: "object"
properties:
entryMode:
description: "Describes the manner in which the POS captured card and PIN\
\ data."
$ref: "#/definitions/PosEntryMode"
posConditionCode:
type: "string"
description: "Describes the circumstances of the transaciton at the POS."
enum:
- "NORMAL_PRESENTMENT"
- "CUSTOMER_NOT_PRESENT"
- "CUSTOMER_PRESENT_AND_CARD_NOT_PRESENT"
- "CUSTOMER_IDENTITY_VERIFIED"
- "PUBLIC_UTILITY_TERMINAL"
- "CUSTOMER_TERMINAL"
- "MANUAL_REVERSAL"
- "UNATTENDED_TERMINAL_AND_CARD_CAN_BE_RETAINED"
- "UNATTENDED_TERMINAL_AND_CARD_CANNOT_BE_RETAINED"
description: "POS related data."
RefundRequest:
type: "object"
required:
- "client"
- "id"
- "issuerReference"
- "originator"
- "refundReason"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this transaction, as\
\ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
originator:
description: "Data relating to the originator of the transaction."
$ref: "#/definitions/Originator"
client:
description: "Data relating to the sender of Transaction."
$ref: "#/definitions/Institution"
settlementEntity:
description: "Data relating to the entity with whom the Merchant will settle\
\ the transaction."
$ref: "#/definitions/Institution"
receiver:
description: "Data relating to the entity which ultimately processes the request."
$ref: "#/definitions/Institution"
thirdPartyIdentifiers:
type: "array"
description: "An array of identifiers which each identify the transaction\
\ within each entity's system."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
slipData:
description: "Text to be printed on the customer receipt."
$ref: "#/definitions/SlipData"
basketRef:
type: "string"
description: "Used to group multiple transactions which would otherwise be\
\ considered independent."
tranType:
type: "string"
description: "Data relating to the type of transaction taking place (i.e.\
\ cash withdrawal, goods and services etc.)."
enum:
- "GOODS_AND_SERVICES"
- "CASH_WITHDRAWAL"
- "DEBIT_ADJUSTMENT"
- "GOODS_AND_SERVICES_WITH_CASH_BACK"
- "NON_CASH"
- "RETURNS"
- "DEPOSIT"
- "CREDIT_ADJUSTMENT"
- "GENERAL_CREDIT"
- "AVAILABLE_FUNDS_INQUIRY"
- "BALANCE_INQUIRY"
- "GENERAL_INQUIRY"
- "CARD_VERIFICATION_INQUIRY"
- "CARDHOLDER_ACCOUNTS_TRANSFER"
- "GENERAL_TRANSFER"
- "PAYMENT_FROM_ACCOUNT"
- "GENERAL_PAYMENT"
- "PAYMENT_TO_ACCOUNT"
- "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
- "PLACE_HOLD_ON_CARD"
- "GENERAL_ADMIN"
- "CHANGE_PIN"
- "CARD_HOLDER_INQUIRY"
- "POINTS_INQUIRY"
srcAccType:
type: "string"
description: "This specifies the type of source account being used in the\
\ transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
destAccType:
type: "string"
description: "This specifies the type of destination account being used in\
\ the transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
issuerReference:
type: "string"
description: "An identifier that is printed on the customer slip and uniquely\
\ identifies the payment on the bill issuer's system. This value is used\
\ by the customer to request a refund when the service supports this function,\
\ and it is thus important that this number is unique"
pattern: "[A-Z0-9]{1,20}"
refundReason:
type: "string"
description: "The reason for the refund as given by the customer"
minLength: 0
maxLength: 20
description: "Represents a request to refund a payment"
RefundResponse:
type: "object"
required:
- "amounts"
- "client"
- "id"
- "originator"
- "slipData"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this transaction, as\
\ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
originator:
description: "Data relating to the originator of the transaction."
$ref: "#/definitions/Originator"
client:
description: "Data relating to the sender of Transaction."
$ref: "#/definitions/Institution"
settlementEntity:
description: "Data relating to the entity with whom the Merchant will settle\
\ the transaction."
$ref: "#/definitions/Institution"
receiver:
description: "Data relating to the entity which ultimately processes the request."
$ref: "#/definitions/Institution"
thirdPartyIdentifiers:
type: "array"
description: "An array of identifiers which each identify the transaction\
\ within each entity's system."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
slipData:
description: "Text to be printed on the customer receipt."
$ref: "#/definitions/BillSlipData"
basketRef:
type: "string"
description: "Used to group multiple transactions which would otherwise be\
\ considered independent."
tranType:
type: "string"
description: "Data relating to the type of transaction taking place (i.e.\
\ cash withdrawal, goods and services etc.)."
enum:
- "GOODS_AND_SERVICES"
- "CASH_WITHDRAWAL"
- "DEBIT_ADJUSTMENT"
- "GOODS_AND_SERVICES_WITH_CASH_BACK"
- "NON_CASH"
- "RETURNS"
- "DEPOSIT"
- "CREDIT_ADJUSTMENT"
- "GENERAL_CREDIT"
- "AVAILABLE_FUNDS_INQUIRY"
- "BALANCE_INQUIRY"
- "GENERAL_INQUIRY"
- "CARD_VERIFICATION_INQUIRY"
- "CARDHOLDER_ACCOUNTS_TRANSFER"
- "GENERAL_TRANSFER"
- "PAYMENT_FROM_ACCOUNT"
- "GENERAL_PAYMENT"
- "PAYMENT_TO_ACCOUNT"
- "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
- "PLACE_HOLD_ON_CARD"
- "GENERAL_ADMIN"
- "CHANGE_PIN"
- "CARD_HOLDER_INQUIRY"
- "POINTS_INQUIRY"
srcAccType:
type: "string"
description: "This specifies the type of source account being used in the\
\ transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
destAccType:
type: "string"
description: "This specifies the type of destination account being used in\
\ the transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
customer:
description: "Customer detail"
$ref: "#/definitions/Customer"
amounts:
description: "The message amount details such as account balance."
$ref: "#/definitions/BillpayAmounts"
partPaymentAllowed:
type: "boolean"
description: "Indicates whether a payment amount may be less than the amount\
\ due. Defaults to true."
default: false
overPaymentAllowed:
type: "boolean"
description: "Indicates whether a payment amount may be more than the amount\
\ due. Defaults to true."
default: false
account:
description: "The customer account detail"
$ref: "#/definitions/Account"
trafficFine:
description: "The customer trafficFine detail"
$ref: "#/definitions/TrafficFine"
policy:
description: "The customer policy detail"
$ref: "#/definitions/Policy"
description: "Represents a response to a refund request"
SlipData:
type: "object"
properties:
messageLines:
type: "array"
description: "An array of text lines and optional formatting to be printed\
\ on the customer slip."
items:
$ref: "#/definitions/SlipLine"
slipWidth:
type: "integer"
format: "int32"
description: "The width of the slip in normal (unformatted) characters."
issuerReference:
type: "string"
description: "An identifier that is printed on the customer slip and uniquely\
\ identifies the payment on the service provider's system. This value is\
\ used by the customer to request a refund when the service supports this\
\ function, and it is thus important that this number is unique."
pattern: "[A-Z0-9]{1,40}"
description: "Data that may be printed on the customer slip for information purposes"
SlipLine:
type: "object"
required:
- "text"
properties:
barcode:
description: "Barcode information for this line"
$ref: "#/definitions/Barcode"
text:
type: "string"
description: "Text contained on the line"
fontWidthScaleFactor:
type: "number"
format: "double"
description: "Scale factor for font width. Assume 1.0 (i.e. normal size) if\
\ not present."
fontHeightScaleFactor:
type: "number"
format: "double"
description: "Scale factor for font height. Assume 1.0 (i.e. normal size)\
\ if not present."
line:
type: "boolean"
description: "Denotes a solid line on the slip. Assume false if not present."
default: false
cut:
type: "boolean"
description: "Indicates the slip should be cut at this line. Assume false\
\ if not present."
default: false
description: "A line of text to be printed on the till slip"
Tender:
type: "object"
required:
- "amount"
- "tenderType"
properties:
accountType:
type: "string"
description: "The type of account"
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "STORED_VALUE"
amount:
description: "The tendered amount"
$ref: "#/definitions/LedgerAmount"
cardNumber:
type: "string"
description: "A PCI compliant masked card number, with at least the first\
\ 6 digits in the clear. Only applicable to card based transactions"
pattern: "[0-9]{6}[0-9*]{0,13}"
reference:
type: "string"
description: "A free text reference"
minLength: 0
maxLength: 40
tenderType:
type: "string"
description: "The type of tender used"
enum:
- "CASH"
- "CHEQUE"
- "CREDIT_CARD"
- "DEBIT_CARD"
- "WALLET"
- "ROUNDING"
- "GIFT_CARD"
- "LOYALTY_CARD"
- "OTHER"
description: "Details of the Tender used by a customer towards a payment"
TenderAdvice:
type: "object"
required:
- "id"
- "requestId"
- "tenders"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this advice, as defined\
\ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
requestId:
type: "string"
description: "The UUID identifying the request that this advice relates to"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
thirdPartyIdentifiers:
type: "array"
description: "The unaltered thirdPartyIdentifiers array as supplied in the\
\ related BasicResponse message. Required if thirdPartyIdentifiers field\
\ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
\ in the BasicResponse or no BasicResponse was received then this should\
\ be set to the thirdPartyIdentifiers sent in the original request."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
tenders:
type: "array"
description: "An array of tenders used to pay for the transaction"
items:
$ref: "#/definitions/Tender"
description: "An advice that notifies of the successful completion of a transaction."
ThirdPartyIdentifier:
type: "object"
required:
- "institutionId"
- "transactionIdentifier"
properties:
institutionId:
type: "string"
description: "The entity's institution ID."
transactionIdentifier:
type: "string"
description: "The identifier assigned to this transaction by the institution\
\ represented in institutionId. This value should be unique within the institution's\
\ system."
description: "An identifier assigned by an entity which process the message. Identifiers\
\ are keyed by institution ID thereby enabling any institution to recall a transaction\
\ within the entity's own system using the entity's own identifier. Entity's\
\ must not alter the identifier set by another entity. Once an identifier has\
\ been set by an entity, all other entity's must send that identifier in subsequent\
\ messages."
TrafficFine:
type: "object"
required:
- "noticeNumber"
properties:
noticeNumber:
type: "string"
description: "A reference number identifying the traffic fine to the processor's\
\ system."
minLength: 6
maxLength: 40
dueDate:
type: "string"
format: "date"
description: "The date by which the traffic fine should be paid in the format\
\ yyyy-MM-dd."
description: "Represents the status of a traffic fine"
TrafficFineLookupRequest:
type: "object"
required:
- "client"
- "id"
- "noticeNumber"
- "originator"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this transaction, as\
\ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
originator:
description: "Data relating to the originator of the transaction."
$ref: "#/definitions/Originator"
client:
description: "Data relating to the sender of Transaction."
$ref: "#/definitions/Institution"
settlementEntity:
description: "Data relating to the entity with whom the Merchant will settle\
\ the transaction."
$ref: "#/definitions/Institution"
receiver:
description: "Data relating to the entity which ultimately processes the request."
$ref: "#/definitions/Institution"
thirdPartyIdentifiers:
type: "array"
description: "An array of identifiers which each identify the transaction\
\ within each entity's system."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
slipData:
description: "Text to be printed on the customer receipt."
$ref: "#/definitions/SlipData"
basketRef:
type: "string"
description: "Used to group multiple transactions which would otherwise be\
\ considered independent."
tranType:
type: "string"
description: "Data relating to the type of transaction taking place (i.e.\
\ cash withdrawal, goods and services etc.)."
enum:
- "GOODS_AND_SERVICES"
- "CASH_WITHDRAWAL"
- "DEBIT_ADJUSTMENT"
- "GOODS_AND_SERVICES_WITH_CASH_BACK"
- "NON_CASH"
- "RETURNS"
- "DEPOSIT"
- "CREDIT_ADJUSTMENT"
- "GENERAL_CREDIT"
- "AVAILABLE_FUNDS_INQUIRY"
- "BALANCE_INQUIRY"
- "GENERAL_INQUIRY"
- "CARD_VERIFICATION_INQUIRY"
- "CARDHOLDER_ACCOUNTS_TRANSFER"
- "GENERAL_TRANSFER"
- "PAYMENT_FROM_ACCOUNT"
- "GENERAL_PAYMENT"
- "PAYMENT_TO_ACCOUNT"
- "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
- "PLACE_HOLD_ON_CARD"
- "GENERAL_ADMIN"
- "CHANGE_PIN"
- "CARD_HOLDER_INQUIRY"
- "POINTS_INQUIRY"
srcAccType:
type: "string"
description: "This specifies the type of source account being used in the\
\ transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
destAccType:
type: "string"
description: "This specifies the type of destination account being used in\
\ the transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
noticeNumber:
type: "string"
description: "A reference number identifying the traffic fine to the service\
\ provider."
minLength: 6
maxLength: 40
description: "The data required to request traffic fine info"
TrafficFineLookupResponse:
type: "object"
required:
- "amounts"
- "client"
- "id"
- "originator"
- "slipData"
- "thirdPartyIdentifiers"
- "time"
- "trafficFine"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this transaction, as\
\ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
originator:
description: "Data relating to the originator of the transaction."
$ref: "#/definitions/Originator"
client:
description: "Data relating to the sender of Transaction."
$ref: "#/definitions/Institution"
settlementEntity:
description: "Data relating to the entity with whom the Merchant will settle\
\ the transaction."
$ref: "#/definitions/Institution"
receiver:
description: "Data relating to the entity which ultimately processes the request."
$ref: "#/definitions/Institution"
thirdPartyIdentifiers:
type: "array"
description: "An array of identifiers which each identify the transaction\
\ within each entity's system."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
slipData:
description: "Text to be printed on the customer receipt."
$ref: "#/definitions/BillSlipData"
basketRef:
type: "string"
description: "Used to group multiple transactions which would otherwise be\
\ considered independent."
tranType:
type: "string"
description: "Data relating to the type of transaction taking place (i.e.\
\ cash withdrawal, goods and services etc.)."
enum:
- "GOODS_AND_SERVICES"
- "CASH_WITHDRAWAL"
- "DEBIT_ADJUSTMENT"
- "GOODS_AND_SERVICES_WITH_CASH_BACK"
- "NON_CASH"
- "RETURNS"
- "DEPOSIT"
- "CREDIT_ADJUSTMENT"
- "GENERAL_CREDIT"
- "AVAILABLE_FUNDS_INQUIRY"
- "BALANCE_INQUIRY"
- "GENERAL_INQUIRY"
- "CARD_VERIFICATION_INQUIRY"
- "CARDHOLDER_ACCOUNTS_TRANSFER"
- "GENERAL_TRANSFER"
- "PAYMENT_FROM_ACCOUNT"
- "GENERAL_PAYMENT"
- "PAYMENT_TO_ACCOUNT"
- "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
- "PLACE_HOLD_ON_CARD"
- "GENERAL_ADMIN"
- "CHANGE_PIN"
- "CARD_HOLDER_INQUIRY"
- "POINTS_INQUIRY"
srcAccType:
type: "string"
description: "This specifies the type of source account being used in the\
\ transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
destAccType:
type: "string"
description: "This specifies the type of destination account being used in\
\ the transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
customer:
description: "Customer detail"
$ref: "#/definitions/Customer"
amounts:
description: "The message amount details such as account balance."
$ref: "#/definitions/BillpayAmounts"
partPaymentAllowed:
type: "boolean"
description: "Indicates whether a payment amount may be less than the amount\
\ due. Defaults to true."
default: false
overPaymentAllowed:
type: "boolean"
description: "Indicates whether a payment amount may be more than the amount\
\ due. Defaults to true."
default: false
trafficFine:
description: "The traffic fine detail"
$ref: "#/definitions/TrafficFine"
description: "The data resulting from a traffic fine lookup request"
TrafficFinePaymentRequest:
type: "object"
required:
- "amounts"
- "client"
- "id"
- "noticeNumber"
- "originator"
- "thirdPartyIdentifiers"
- "time"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this transaction, as\
\ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
originator:
description: "Data relating to the originator of the transaction."
$ref: "#/definitions/Originator"
client:
description: "Data relating to the sender of Transaction."
$ref: "#/definitions/Institution"
settlementEntity:
description: "Data relating to the entity with whom the Merchant will settle\
\ the transaction."
$ref: "#/definitions/Institution"
receiver:
description: "Data relating to the entity which ultimately processes the request."
$ref: "#/definitions/Institution"
thirdPartyIdentifiers:
type: "array"
description: "An array of identifiers which each identify the transaction\
\ within each entity's system."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
slipData:
description: "Text to be printed on the customer receipt."
$ref: "#/definitions/SlipData"
basketRef:
type: "string"
description: "Used to group multiple transactions which would otherwise be\
\ considered independent."
tranType:
type: "string"
description: "Data relating to the type of transaction taking place (i.e.\
\ cash withdrawal, goods and services etc.)."
enum:
- "GOODS_AND_SERVICES"
- "CASH_WITHDRAWAL"
- "DEBIT_ADJUSTMENT"
- "GOODS_AND_SERVICES_WITH_CASH_BACK"
- "NON_CASH"
- "RETURNS"
- "DEPOSIT"
- "CREDIT_ADJUSTMENT"
- "GENERAL_CREDIT"
- "AVAILABLE_FUNDS_INQUIRY"
- "BALANCE_INQUIRY"
- "GENERAL_INQUIRY"
- "CARD_VERIFICATION_INQUIRY"
- "CARDHOLDER_ACCOUNTS_TRANSFER"
- "GENERAL_TRANSFER"
- "PAYMENT_FROM_ACCOUNT"
- "GENERAL_PAYMENT"
- "PAYMENT_TO_ACCOUNT"
- "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
- "PLACE_HOLD_ON_CARD"
- "GENERAL_ADMIN"
- "CHANGE_PIN"
- "CARD_HOLDER_INQUIRY"
- "POINTS_INQUIRY"
srcAccType:
type: "string"
description: "This specifies the type of source account being used in the\
\ transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
destAccType:
type: "string"
description: "This specifies the type of destination account being used in\
\ the transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
noticeNumber:
type: "string"
description: "A reference number identifying the traffic fine to the service\
\ provider."
minLength: 6
maxLength: 40
amounts:
description: "Contains the payment amount."
$ref: "#/definitions/BillpayAmounts"
tenders:
type: "array"
description: "Contains the tenders for the payment request if available"
items:
$ref: "#/definitions/Tender"
paymentMethods:
type: "array"
description: "Contains the payment method for the payment request if available"
items:
$ref: "#/definitions/PaymentMethod"
customer:
description: "Customer detail"
$ref: "#/definitions/Customer"
description: "Represents a request to perform a payment of a traffic fine."
TrafficFinePaymentResponse:
type: "object"
required:
- "amounts"
- "client"
- "id"
- "originator"
- "slipData"
- "thirdPartyIdentifiers"
- "time"
- "trafficFine"
properties:
id:
type: "string"
description: "The randomly generated UUID identifying this transaction, as\
\ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
time:
type: "string"
format: "date-time"
description: "The date and time of the message as recorded by the sender.\
\ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
\ It is recommended that the optional time-secfrac be included up to millisecond\
\ precision"
originator:
description: "Data relating to the originator of the transaction."
$ref: "#/definitions/Originator"
client:
description: "Data relating to the sender of Transaction."
$ref: "#/definitions/Institution"
settlementEntity:
description: "Data relating to the entity with whom the Merchant will settle\
\ the transaction."
$ref: "#/definitions/Institution"
receiver:
description: "Data relating to the entity which ultimately processes the request."
$ref: "#/definitions/Institution"
thirdPartyIdentifiers:
type: "array"
description: "An array of identifiers which each identify the transaction\
\ within each entity's system."
items:
$ref: "#/definitions/ThirdPartyIdentifier"
slipData:
description: "Text to be printed on the customer receipt."
$ref: "#/definitions/BillSlipData"
basketRef:
type: "string"
description: "Used to group multiple transactions which would otherwise be\
\ considered independent."
tranType:
type: "string"
description: "Data relating to the type of transaction taking place (i.e.\
\ cash withdrawal, goods and services etc.)."
enum:
- "GOODS_AND_SERVICES"
- "CASH_WITHDRAWAL"
- "DEBIT_ADJUSTMENT"
- "GOODS_AND_SERVICES_WITH_CASH_BACK"
- "NON_CASH"
- "RETURNS"
- "DEPOSIT"
- "CREDIT_ADJUSTMENT"
- "GENERAL_CREDIT"
- "AVAILABLE_FUNDS_INQUIRY"
- "BALANCE_INQUIRY"
- "GENERAL_INQUIRY"
- "CARD_VERIFICATION_INQUIRY"
- "CARDHOLDER_ACCOUNTS_TRANSFER"
- "GENERAL_TRANSFER"
- "PAYMENT_FROM_ACCOUNT"
- "GENERAL_PAYMENT"
- "PAYMENT_TO_ACCOUNT"
- "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
- "PLACE_HOLD_ON_CARD"
- "GENERAL_ADMIN"
- "CHANGE_PIN"
- "CARD_HOLDER_INQUIRY"
- "POINTS_INQUIRY"
srcAccType:
type: "string"
description: "This specifies the type of source account being used in the\
\ transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
destAccType:
type: "string"
description: "This specifies the type of destination account being used in\
\ the transaction (i.e. cheque, savings)."
enum:
- "DEFAULT"
- "SAVINGS"
- "CHEQUE"
- "CREDIT"
- "UNIVERSAL"
- "ELECTRONIC_PURSE"
- "GIFT_CARD"
- "STORED_VALUE"
stan:
type: "string"
description: "The System Trace Audit Number can be used to locate transactions\
\ across different systems."
rrn:
type: "string"
description: "This is a reference set by the original source of the transaction."
customer:
description: "Customer detail"
$ref: "#/definitions/Customer"
amounts:
description: "The message amount details such as account balance."
$ref: "#/definitions/BillpayAmounts"
partPaymentAllowed:
type: "boolean"
description: "Indicates whether a payment amount may be less than the amount\
\ due. Defaults to true."
default: false
overPaymentAllowed:
type: "boolean"
description: "Indicates whether a payment amount may be more than the amount\
\ due. Defaults to true."
default: false
trafficFine:
description: "The customer account detail"
$ref: "#/definitions/TrafficFine"
description: "Represents a response to a payment request"