Data Model (Enabler)
Request Type
ProfileRequest
Name | Type | Presence | Description |
---|---|---|---|
profileName | String | Required | |
providerReference | String? | Optional | Reference from the provider system. Apply unique constraint per enabler. |
merchantName | String | Required | Require not empty. |
merchantAddr | String | Required | Require not empty. |
mcc | String | Required | Merchant category code |
countryCode | String | Required | Alpha-2 country code. Require not empty. |
currency | String | Required | Alpha-3 currency code. Require not empty. |
acceptances | List< AcceptanceUpsertRequest >? | Optional | Acceptance upsert request object |
AcceptanceUpsertRequest
Name | Type | Presence | Description |
---|---|---|---|
acptId | String? | Optional | Acceptance ID (auto generated by the enabler system) |
acptName | String? | Optional | Name for reference/ information only |
hostMessageFormat | HostMessageFormat | Required | The format of the host message |
supportedPayments | List< PaymentMethod > | Required | (Superset) The list of supported payment methods for the acceptance. |
bindedMethods | List< PaymentMethod >? | Optional | (Subset) The list of binded payment methods to the profile. |
primaryMid | String | Required | The primary MID |
primaryTid | String? | Optional | The primary TID |
extraParams | Map<String, String>? | Optional | Additional parameters for the acceptance. |
tags | List<String>? | Optional | The list of tags associated with the acceptance. |
ActionRequest
Name | Type | Presence | Description |
---|---|---|---|
actionType | ActionType | Required | Type of the action to be performed. |
amount | Amount? | Optional | Applicable to AUTH_COMPLETE, LINK_REFUND, ADJUST. Discarded for other actions (e.g., VOID). |
originalActionId | String? | Optional | ID of the original action. |
posReference | String? | Optional | Applicable to LINK_REFUND, as there will be a new transaction created. |
Response Type
Profile
A simple extract version of the profile.
Name | Type | Presence | Description |
---|---|---|---|
profileId | String | Always | The enabler generated unique identifier of the profile. Prefixed prof_ with a ULID. |
profileName | String | Always | The name of the profile for information only. |
providerReference | String? | Optional | The reference from the provider system. Unique constraint checking from enabler upon creation. |
merchantName | String | Always | The name of the merchant. Some gateway requires this in the payment message. |
merchantAddr | String | Always | The address of the merchant. Some gateway requires this in the payment message. |
mcc | String | Always | The merchant category code. |
countryCode | String | Always | The alpha-2 country code of the merchant. |
currency | String | Always | The alpha-3 currency used by the merchant. |
entityStatus | EntityStatus | Always | The status of the entity. (ACTIVE / DISABLED ) |
createdAt | Instant | Always | The creation date time with zone offset. |
updatedAt | Instant? | Optional | The last update date time with zone offset. |
ProfileWithAcpt
Same fields as Profile
with the relationship with acceptances - 2 additional fields: acceptances
and acptSelection
.
Name | Type | Presence | Description |
---|---|---|---|
profileId | String | Always | The enabler generated unique identifier of the profile. Prefixed prof_ with a ULID. |
profileName | String | Always | The name of the profile for information only. |
providerReference | String? | Optional | The reference from the provider system. Unique constraint checking from enabler upon creation. |
merchantName | String | Always | The name of the merchant. Some gateway requires this in the payment message. |
merchantAddr | String | Always | The address of the merchant. Some gateway requires this in the payment message. |
mcc | String | Always | The merchant category code. |
countryCode | String | Always | The alpha-2 country code of the merchant. |
currency | String | Always | The alpha-3 currency used by the merchant. |
acceptances | List< Acceptance > | Always | The list of associated acceptances. |
acptSelection | Map<String, List< PaymentMethod >> | Always | A map of acceptance id to a list of binded payment methods. |
entityStatus | EntityStatus | Always | The status of the entity. (ACTIVE / DISABLED ) |
createdAt | Instant | Always | The creation date time with zone. |
updatedAt | Instant? | Optional | The last update date time with zone. |
Acceptance
Name | Type | Presence | Description |
---|---|---|---|
acptId | String | Always | The enabler generated unique identifier of the acceptance. Prefixed acpt_ with a ULID. |
acptName | String | Optional | The name of the acceptance for information only. |
hostMessageFormat | HostMessageFormat | Always | The format of the host message. |
supportedPayments | List< PaymentMethod > | Always | (Superset) The list of supported payment methods for the acceptance. |
bindedMethods | List< PaymentMethod >? | Optional | (Subset) The list of binded payment methods to the profile. |
primaryMid | String | Required | The primary MID |
primaryTid | String? | Optional | The primary TID |
extraParams | Map<String, String> | Always | Additional parameters for the acceptance. If none value is set, an empty map will be returned. (json: {} ) |
entityStatus | EntityStatus | Always | The status of the entity. (ACTIVE / DISABLED ) |
tags | List<String>? | Optional | The list of tags associated with the acceptance. |
createdAt | Instant | Always | The creation date time with zone. |
updatedAt | Instant? | Optional | The last update date time with zone. |
ProfileSignOn
Name | Type | Presence | Description |
---|---|---|---|
profileId | String | Always | |
profileName | String | Optional | |
acptSignOns | List< AcptSignOn > | Always | The list of acceptance signon result |
AcptSignOn
Name | Type | Presence | Description |
---|---|---|---|
acptId | String | Always | |
acptName | String? | Optional | |
hostMessageFormat | HostMessageFormat | Always | |
supportedPayment | List< PaymentMethod > | Always | |
resultReason | String | Always | The signon result reason. |
hostRespCode | String? | Optional | The host response code (e.g. for ISO8583 context will be the DE39). |
hostRespMessage | String? | Optional | Additional host response message. |
Transaction
Name | Type | Presence | Description |
---|---|---|---|
tranId | String | Always | Unique identifier for the transaction. |
tranType | TranType | Always | Type of the transaction. |
tranStatus | TranStatus | Always | Current status of the transaction. |
amount | Amount | Always | The transaction amount. |
paymentMethod | PaymentMethod | Always | The method of payment used. |
entryMode | EntryMode | Always | Mode of entry for the transaction. |
accountMasked | String? | Optional | Masked account number. |
accountBin | String? | Optional | Bank Identification Number of the account. |
accountLast4 | String? | Optional | Last four digits of the account number. |
issCountryCode | String? | Optional | Issuer country code. |
cvmPerformed | CvmPerformed | Always | Cardholder Verification Method performed. |
cvmSignatureUrl | String? | Optional | URL to the signature image if CVM is signature. |
aid | String? | Optional | (EMV) Application Identifier. |
appName | String? | Optional | (EMV) Application name. |
tc | String? | Optional | (EMV) Transaction Certificate. |
tvr | String? | Optional | (EMV) Terminal Verification Results. |
tsi | String? | Optional | (EMV) Transaction Status Information. |
atc | String? | Optional | (EMV) Application Transaction Counter. |
profileId | String | Always | Profile ID associated with the transaction. |
acceptanceId | String | Always | Acceptance ID associated with the transaction. |
sdkId | String? | Optional | SDK identifier associated with the transaction. |
posReference | String? | Optional | Point of Sale reference. |
trace | String | Always | Trace number. |
description | String? | Optional | Description of the transaction. |
callbackUrl | String? | Optional | URL to be called back on transaction status change. |
merchantName | String | Always | Name of the merchant. |
merchantAddr | String | Always | Address of the merchant. |
mcc | String | Always | Merchant category code. |
primaryMid | String | Always | Primary Merchant ID. |
primaryTid | String? | Optional | Primary Terminal ID. |
subMid | String? | Optional | Sub-merchant ID. |
subTid | String? | Optional | Sub-merchant Terminal ID. |
hostMessageFormat | HostMessageFormat | Always | Format of the host message. |
providerReference | String? | Optional | The providerReference from profile. |
linkedTranId | String? | Optional | ID of the linked transaction. Applicable to a linked-refund. |
preferredAcceptanceTag | String? | Optional | Preferred acceptance tag for the transaction. |
extraData | String? | Optional | Extra data from the host response. |
rrn | String? | Optional | Retrieval Reference Number from the host. (Usually from acquirer) |
approvalCode | String? | Optional | Approval code from the host response. (Usually from issuer) |
batchNo | String? | Optional | Batch number associated with the transaction. |
actions | List< Action > | Always | List of actions performed on the transaction. |
createdAt | Instant | Always | Timestamp when the transaction was created. |
updatedAt | Instant? | Optional | Timestamp when the transaction was last updated. |
TransactionExtract
A lightweight version of the transaction, main difference being the extract object is without actions list. Will be used for the listing API
Name | Type | Presence | Description |
---|---|---|---|
tranId | String | Always | Unique identifier for the transaction. |
tranType | TranType | Always | Type of the transaction. |
tranStatus | TranStatus | Always | Current status of the transaction. |
amount | Amount | Always | The transaction amount. |
paymentMethod | PaymentMethod | Always | The method of payment used. |
entryMode | EntryMode | Always | Mode of entry for the transaction. |
accountBin | String? | Optional | Bank Identification Number of the account. |
accountLast4 | String? | Optional | Last four digits of the account number. |
sdkId | String? | Optional | SDK identifier associated with the transaction. |
posReference | String? | Optional | Point of Sale reference. |
trace | String | Always | Trace information for the transaction. |
merchantName | String | Always | Name of the merchant. |
primaryMid | String | Always | Primary Merchant ID. |
primaryTid | String? | Optional | Primary Terminal ID. |
subMid | String? | Optional | Sub-merchant ID. |
subTid | String? | Optional | Sub-merchant Terminal ID. |
hostMessageFormat | HostMessageFormat | Always | Format of the host message. |
providerReference | String? | Optional | The providerReference from profile. |
linkedTranId | String? | Optional | ID of the linked transaction. Applicable to a linked-refund. |
rrn | String? | Optional | Retrieval Reference Number from the host. (Usually from acquirer) |
approvalCode | String? | Optional | Approval code from the host response. (Usually from issuer) |
batchNo | String? | Optional | Batch number associated with the transaction. |
createdAt | Instant | Always | Timestamp when the transaction was created. |
updatedAt | Instant? | Optional | Timestamp when the transaction was last updated. |
Action
Name | Type | Presence | Description |
---|---|---|---|
actionId | String | Always | Unique identifier for the action. |
trace | String | Always | Trace information for the action. |
actionType | ActionType | Always | Type of the action performed. |
actionStatus | ActionStatus | Always | Current status of the action. |
requestId | String | Always | Request ID associated with the action. |
amount | Amount? | Optional | The amount involved in the action, if applicable. |
tranId | String? | Optional | ID of the related transaction, if applicable. |
reason | String? | Optional | Reason for the action, if applicable. |
hostRespCode | String? | Optional | Response code from host response, if applicable (in ISO8583 context will be the DE39 from host). |
hostRespMessage | String? | Optional | Response message from the host, if applicable. |
posReference | String? | Optional | Point of Sale reference, if applicable. |
extraData | String? | Optional | Extra data associated with the action. |
createdAt | Instant | Always | Timestamp when the action was created. |
updatedAt | Instant? | Optional | Timestamp when the action was last updated. |
CardToken
Name | Type | Presence | Description |
---|---|---|---|
status | TokenStatus | Always | Status of the token generation. |
token | String? | Optional | The requested token, when the status is SUCCESS . |
extra | Map<String, String?>? | Optional | Additional data related to the token. |
Common
CursorPaginated
The listing APIs are with cursor pagination, the wrapper object struct as follow:
Name | Type | Presence | Remarks |
---|---|---|---|
hasNext | Boolean | Always | Indicates if there is a next page available |
pageSize | Int | Always | Number of items per page |
totalSize | Int | Always | Total number of items |
currentCursor | String? | Optional | Current pagination cursor |
nextCursor | String? | Optional | Next pagination cursor |
data | List<T> | Always | List of data items |
Amount
Name | Type | Presence | Description |
---|---|---|---|
value | BigDecimal | Always | The monetary value. |
currency | Currency | Always | The currency of the amount. |
Enums
PaymentMethod
Name | Description |
---|---|
VISA | |
MASTERCARD | |
UNIONPAY | |
AMEX | |
JCB | |
DISCOVER | |
DINERS | |
ALIPAY | |
WECHAT | |
VISA_QR | |
MASTERCARD_QR | |
UNIONPAY_QR | |
SHOPEE_PAY_QR | |
GRAB_PAY_QR | |
PAY_NOW | |
UNKNOWN | Unknown or unsupported payment method |
EntryMode
Name | Description |
---|---|
NFC | Contactless entry mode |
MERCHANT_PRESENT | Merchant-presented (QR code) entry mode |
RETRIEVE | Retrieve entry mode, like a linked refund (card-not-present) |
UNKNOWN | Unknown or unsupported entry mode |
HostMessageFormat
Name | Description |
---|---|
MOCK | Mock message format for testing |
MPGS_AP | |
CARD_NOW | |
TWOC2P | |
CARDWORKS | |
SHIFT4 |
EntityStatus
This status is used for the profile & acceptance entity status.
Name | Description |
---|---|
ACTIVE | Entity is active and enabled |
DISABLED | Entity is disabled |
TranType
Name | Description |
---|---|
SALE | Sale transaction |
REFUND | Refund transaction. Note there are 2 types of refund - linked or unlinked. Unlinked refund requires to read the card again, hence will create a NEW action. While for linked-refund, card-present again is not required, a LINK_REFUND action will be marked. |
AUTH | Authorization transaction |
TranStatus
Name | Description |
---|---|
PROCESSING | Initial status |
APPROVED | Approved from upstream host/ gateway |
DECLINED | |
VOIDED | |
REVERSED | |
AUTH_ONLY | Authorization only, applicable scenario like hotel mode |
ADJUSTED | Transaction (amount) has been adjusted, applicable to scenario like tip adjustment |
ActionType
Name | Description |
---|---|
NEW | New transaction action |
ADJUST | Adjust transaction action |
VOID | Void transaction action |
AUTH_COMP | Authorization complete action |
LINK_REFUND | Linked refund action, usually card-not-present |
MERCHANT_PRESENT_QR | Merchant presented QR action |
NOTIFIED | For async transaction (like merchant present QR), this action will be marked when receiving the payment notification from host |
INQUIRY | For async transaction (like merchant present QR), this action will be marked when doing an upstream query successfully |
CLOSE | For async transaction (like merchant present QR), this action will be marked when the session, or QR code is expired |
ActionStatus
Name | Description |
---|---|
PROCESSING | The action is currently processing |
SUCCESS | The action was successful |
REJECTED | The action was rejected |
TIMEOUT | The action timed out |
REVERSED | The action was reversed |
TokenStatus
Name | Description |
---|---|
SUCCESS | Token generation was successful. |
NO_DATA | No data available for token generation. |
FAILED | Token generation failed. |
CvmPerformed
Name | Description |
---|---|
NO_CVM | No Cardholder Verification Method |
SIGNATURE | Signature |
PIN | Online PIN |
CDCVM | Consumer Device Cardholder Verification Method (CDCVM) |
Errors
ErrorResponse
Name | Type | Presence | Description |
---|---|---|---|
status | Int | Always | HTTP status code of the error. |
path | String | Always | Path of the API that was called. |
requestId | String | Always | Unique ID of the request. |
title | String | Always | Title of the error. |
message | String | Always | Detailed error message. |