Enabler Service
Reference
Data Model

Data Model (Enabler)

Request Type

ProfileRequest

NameTypePresenceDescription
profileNameStringRequired
providerReferenceString?OptionalReference from the provider system. Apply unique constraint per enabler.
merchantNameStringRequiredRequire not empty.
merchantAddrStringRequiredRequire not empty.
mccStringRequiredMerchant category code
countryCodeStringRequiredAlpha-2 country code. Require not empty.
currencyStringRequiredAlpha-3 currency code. Require not empty.
acceptancesList<AcceptanceUpsertRequest>?OptionalAcceptance upsert request object

AcceptanceUpsertRequest

NameTypePresenceDescription
acptIdString?OptionalAcceptance ID (auto generated by the enabler system)
acptNameString?OptionalName for reference/ information only
hostMessageFormatHostMessageFormatRequiredThe format of the host message
supportedPaymentsList<PaymentMethod>Required(Superset) The list of supported payment methods for the acceptance.
bindedMethodsList<PaymentMethod>?Optional(Subset) The list of binded payment methods to the profile.
primaryMidStringRequiredThe primary MID
primaryTidString?OptionalThe primary TID
extraParamsMap<String, String>?OptionalAdditional parameters for the acceptance.
tagsList<String>?OptionalThe list of tags associated with the acceptance.

ActionRequest

NameTypePresenceDescription
actionTypeActionTypeRequiredType of the action to be performed.
amountAmount?OptionalApplicable to AUTH_COMPLETE, LINK_REFUND, ADJUST. Discarded for other actions (e.g., VOID).
originalActionIdString?OptionalID of the original action.
posReferenceString?OptionalApplicable to LINK_REFUND, as there will be a new transaction created.

Response Type

Profile

A simple extract version of the profile.

NameTypePresenceDescription
profileIdStringAlwaysThe enabler generated unique identifier of the profile. Prefixed prof_ with a ULID.
profileNameStringAlwaysThe name of the profile for information only.
providerReferenceString?OptionalThe reference from the provider system. Unique constraint checking from enabler upon creation.
merchantNameStringAlwaysThe name of the merchant. Some gateway requires this in the payment message.
merchantAddrStringAlwaysThe address of the merchant. Some gateway requires this in the payment message.
mccStringAlwaysThe merchant category code.
countryCodeStringAlwaysThe alpha-2 country code of the merchant.
currencyStringAlwaysThe alpha-3 currency used by the merchant.
entityStatusEntityStatusAlwaysThe status of the entity. (ACTIVE/ DISABLED)
createdAtInstantAlwaysThe creation date time with zone offset.
updatedAtInstant?OptionalThe last update date time with zone offset.

ProfileWithAcpt

Same fields as Profile with the relationship with acceptances - 2 additional fields: acceptances and acptSelection.

NameTypePresenceDescription
profileIdStringAlwaysThe enabler generated unique identifier of the profile. Prefixed prof_ with a ULID.
profileNameStringAlwaysThe name of the profile for information only.
providerReferenceString?OptionalThe reference from the provider system. Unique constraint checking from enabler upon creation.
merchantNameStringAlwaysThe name of the merchant. Some gateway requires this in the payment message.
merchantAddrStringAlwaysThe address of the merchant. Some gateway requires this in the payment message.
mccStringAlwaysThe merchant category code.
countryCodeStringAlwaysThe alpha-2 country code of the merchant.
currencyStringAlwaysThe alpha-3 currency used by the merchant.
acceptancesList<Acceptance>AlwaysThe list of associated acceptances.
acptSelectionMap<String, List<PaymentMethod>>AlwaysA map of acceptance id to a list of binded payment methods.
entityStatusEntityStatusAlwaysThe status of the entity. (ACTIVE/ DISABLED)
createdAtInstantAlwaysThe creation date time with zone.
updatedAtInstant?OptionalThe last update date time with zone.

Acceptance

NameTypePresenceDescription
acptIdStringAlwaysThe enabler generated unique identifier of the acceptance. Prefixed acpt_ with a ULID.
acptNameStringOptionalThe name of the acceptance for information only.
hostMessageFormatHostMessageFormatAlwaysThe format of the host message.
supportedPaymentsList<PaymentMethod>Always(Superset) The list of supported payment methods for the acceptance.
bindedMethodsList<PaymentMethod>?Optional(Subset) The list of binded payment methods to the profile.
primaryMidStringRequiredThe primary MID
primaryTidString?OptionalThe primary TID
extraParamsMap<String, String>AlwaysAdditional parameters for the acceptance. If none value is set, an empty map will be returned. (json: {})
entityStatusEntityStatusAlwaysThe status of the entity. (ACTIVE/ DISABLED)
tagsList<String>?OptionalThe list of tags associated with the acceptance.
createdAtInstantAlwaysThe creation date time with zone.
updatedAtInstant?OptionalThe last update date time with zone.

ProfileSignOn

NameTypePresenceDescription
profileIdStringAlways
profileNameStringOptional
acptSignOnsList<AcptSignOn>AlwaysThe list of acceptance signon result

AcptSignOn

NameTypePresenceDescription
acptIdStringAlways
acptNameString?Optional
hostMessageFormatHostMessageFormatAlways
supportedPaymentList<PaymentMethod>Always
resultReasonStringAlwaysThe signon result reason.
hostRespCodeString?OptionalThe host response code (e.g. for ISO8583 context will be the DE39).
hostRespMessageString?OptionalAdditional host response message.

Transaction

NameTypePresenceDescription
tranIdStringAlwaysUnique identifier for the transaction.
tranTypeTranTypeAlwaysType of the transaction.
tranStatusTranStatusAlwaysCurrent status of the transaction.
amountAmountAlwaysThe transaction amount.
paymentMethodPaymentMethodAlwaysThe method of payment used.
entryModeEntryModeAlwaysMode of entry for the transaction.
accountMaskedString?OptionalMasked account number.
accountBinString?OptionalBank Identification Number of the account.
accountLast4String?OptionalLast four digits of the account number.
issCountryCodeString?OptionalIssuer country code.
cvmPerformedCvmPerformedAlwaysCardholder Verification Method performed.
cvmSignatureUrlString?OptionalURL to the signature image if CVM is signature.
aidString?Optional(EMV) Application Identifier.
appNameString?Optional(EMV) Application name.
tcString?Optional(EMV) Transaction Certificate.
tvrString?Optional(EMV) Terminal Verification Results.
tsiString?Optional(EMV) Transaction Status Information.
atcString?Optional(EMV) Application Transaction Counter.
profileIdStringAlwaysProfile ID associated with the transaction.
acceptanceIdStringAlwaysAcceptance ID associated with the transaction.
sdkIdString?OptionalSDK identifier associated with the transaction.
posReferenceString?OptionalPoint of Sale reference.
traceStringAlwaysTrace number.
descriptionString?OptionalDescription of the transaction.
callbackUrlString?OptionalURL to be called back on transaction status change.
merchantNameStringAlwaysName of the merchant.
merchantAddrStringAlwaysAddress of the merchant.
mccStringAlwaysMerchant category code.
primaryMidStringAlwaysPrimary Merchant ID.
primaryTidString?OptionalPrimary Terminal ID.
subMidString?OptionalSub-merchant ID.
subTidString?OptionalSub-merchant Terminal ID.
hostMessageFormatHostMessageFormatAlwaysFormat of the host message.
providerReferenceString?OptionalThe providerReference from profile.
linkedTranIdString?OptionalID of the linked transaction. Applicable to a linked-refund.
preferredAcceptanceTagString?OptionalPreferred acceptance tag for the transaction.
extraDataString?OptionalExtra data from the host response.
rrnString?OptionalRetrieval Reference Number from the host. (Usually from acquirer)
approvalCodeString?OptionalApproval code from the host response. (Usually from issuer)
batchNoString?OptionalBatch number associated with the transaction.
actionsList<Action>AlwaysList of actions performed on the transaction.
createdAtInstantAlwaysTimestamp when the transaction was created.
updatedAtInstant?OptionalTimestamp 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

NameTypePresenceDescription
tranIdStringAlwaysUnique identifier for the transaction.
tranTypeTranTypeAlwaysType of the transaction.
tranStatusTranStatusAlwaysCurrent status of the transaction.
amountAmountAlwaysThe transaction amount.
paymentMethodPaymentMethodAlwaysThe method of payment used.
entryModeEntryModeAlwaysMode of entry for the transaction.
accountBinString?OptionalBank Identification Number of the account.
accountLast4String?OptionalLast four digits of the account number.
sdkIdString?OptionalSDK identifier associated with the transaction.
posReferenceString?OptionalPoint of Sale reference.
traceStringAlwaysTrace information for the transaction.
merchantNameStringAlwaysName of the merchant.
primaryMidStringAlwaysPrimary Merchant ID.
primaryTidString?OptionalPrimary Terminal ID.
subMidString?OptionalSub-merchant ID.
subTidString?OptionalSub-merchant Terminal ID.
hostMessageFormatHostMessageFormatAlwaysFormat of the host message.
providerReferenceString?OptionalThe providerReference from profile.
linkedTranIdString?OptionalID of the linked transaction. Applicable to a linked-refund.
rrnString?OptionalRetrieval Reference Number from the host. (Usually from acquirer)
approvalCodeString?OptionalApproval code from the host response. (Usually from issuer)
batchNoString?OptionalBatch number associated with the transaction.
createdAtInstantAlwaysTimestamp when the transaction was created.
updatedAtInstant?OptionalTimestamp when the transaction was last updated.

Action

NameTypePresenceDescription
actionIdStringAlwaysUnique identifier for the action.
traceStringAlwaysTrace information for the action.
actionTypeActionTypeAlwaysType of the action performed.
actionStatusActionStatusAlwaysCurrent status of the action.
requestIdStringAlwaysRequest ID associated with the action.
amountAmount?OptionalThe amount involved in the action, if applicable.
tranIdString?OptionalID of the related transaction, if applicable.
reasonString?OptionalReason for the action, if applicable.
hostRespCodeString?OptionalResponse code from host response, if applicable (in ISO8583 context will be the DE39 from host).
hostRespMessageString?OptionalResponse message from the host, if applicable.
posReferenceString?OptionalPoint of Sale reference, if applicable.
extraDataString?OptionalExtra data associated with the action.
createdAtInstantAlwaysTimestamp when the action was created.
updatedAtInstant?OptionalTimestamp when the action was last updated.

CardToken

NameTypePresenceDescription
statusTokenStatusAlwaysStatus of the token generation.
tokenString?OptionalThe requested token, when the status is SUCCESS.
extraMap<String, String?>?OptionalAdditional data related to the token.

Common

CursorPaginated

The listing APIs are with cursor pagination, the wrapper object struct as follow:

NameTypePresenceRemarks
hasNextBooleanAlwaysIndicates if there is a next page available
pageSizeIntAlwaysNumber of items per page
totalSizeIntAlwaysTotal number of items
currentCursorString?OptionalCurrent pagination cursor
nextCursorString?OptionalNext pagination cursor
dataList<T>AlwaysList of data items

Amount

NameTypePresenceDescription
valueBigDecimalAlwaysThe monetary value.
currencyCurrencyAlwaysThe currency of the amount.

Enums

PaymentMethod

NameDescription
VISA
MASTERCARD
UNIONPAY
AMEX
JCB
DISCOVER
DINERS
ALIPAY
WECHAT
VISA_QR
MASTERCARD_QR
UNIONPAY_QR
SHOPEE_PAY_QR
GRAB_PAY_QR
PAY_NOW
UNKNOWNUnknown or unsupported payment method

EntryMode

NameDescription
NFCContactless entry mode
MERCHANT_PRESENTMerchant-presented (QR code) entry mode
RETRIEVERetrieve entry mode, like a linked refund (card-not-present)
UNKNOWNUnknown or unsupported entry mode

HostMessageFormat

NameDescription
MOCKMock message format for testing
MPGS_AP
CARD_NOW
TWOC2P
CARDWORKS
SHIFT4

EntityStatus

This status is used for the profile & acceptance entity status.

NameDescription
ACTIVEEntity is active and enabled
DISABLEDEntity is disabled

TranType

NameDescription
SALESale transaction
REFUNDRefund 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.
AUTHAuthorization transaction

TranStatus

NameDescription
PROCESSINGInitial status
APPROVEDApproved from upstream host/ gateway
DECLINED
VOIDED
REVERSED
AUTH_ONLYAuthorization only, applicable scenario like hotel mode
ADJUSTEDTransaction (amount) has been adjusted, applicable to scenario like tip adjustment

ActionType

NameDescription
NEWNew transaction action
ADJUSTAdjust transaction action
VOIDVoid transaction action
AUTH_COMPAuthorization complete action
LINK_REFUNDLinked refund action, usually card-not-present
MERCHANT_PRESENT_QRMerchant presented QR action
NOTIFIEDFor async transaction (like merchant present QR), this action will be marked when receiving the payment notification from host
INQUIRYFor async transaction (like merchant present QR), this action will be marked when doing an upstream query successfully
CLOSEFor async transaction (like merchant present QR), this action will be marked when the session, or QR code is expired

ActionStatus

NameDescription
PROCESSINGThe action is currently processing
SUCCESSThe action was successful
REJECTEDThe action was rejected
TIMEOUTThe action timed out
REVERSEDThe action was reversed

TokenStatus

NameDescription
SUCCESSToken generation was successful.
NO_DATANo data available for token generation.
FAILEDToken generation failed.

CvmPerformed

NameDescription
NO_CVMNo Cardholder Verification Method
SIGNATURESignature
PINOnline PIN
CDCVMConsumer Device Cardholder Verification Method (CDCVM)

Errors

ErrorResponse

NameTypePresenceDescription
statusIntAlwaysHTTP status code of the error.
pathStringAlwaysPath of the API that was called.
requestIdStringAlwaysUnique ID of the request.
titleStringAlwaysTitle of the error.
messageStringAlwaysDetailed error message.