Enabler (base) models
Generated from components.schemas. Type? is nullable; = null marks an optional field that may be omitted. Click a type name to jump to its definition.
Generated from components.schemas. ? marks an optional field, | null a nullable one. Click a type name to jump to its definition.
typealias Instant = String
type Instant = string;
typealias Currency = String
type Currency = string;
typealias BigDecimal = String
type BigDecimal = string;
data class CursorPaginated-TransactionExtract(
val cursorEnding: String? = null,
val cursorStarting: String? = null,
val data: List<TransactionExtract>,
val dataSize: Int,
val hasMore: Boolean,
val requestPath: String,
val requestSize: Int,
val totalSize: Int,
)
interface CursorPaginated-TransactionExtract {
cursorEnding?: string | null;
cursorStarting?: string | null;
data: TransactionExtract[];
dataSize: number; // int32
hasMore: boolean;
requestPath: string;
requestSize: number; // int32
totalSize: number; // int32
}
data class TransactionExtract(
val accountBin: String? = null,
val accountLast4: String? = null,
val acptId: String,
val amount: Amount,
val approvalCode: String? = null,
val batchId: String,
val batchNo: String,
val consumerPaymentDevice: String? = null,
val createdAt: String, // date-time
val cvmPerformed: CvmPerformed,
val description: String? = null,
val entryMode: EntryMode,
val hostMessageFormat: HostMessageFormat,
val installmentPlan: Int? = null,
val installments: Installment? = null,
val linkedTranId: String? = null,
val mcc: String? = null,
val merchantName: String,
val paymentMethod: PaymentMethod,
val posReference: String? = null,
val extOrderId: String? = null,
val primaryMid: String,
val primaryTid: String,
val profileId: String,
val providerMchId: String? = null,
val providerReference: String? = null,
val rrn: String? = null,
val sdkId: String? = null,
val srsTranId: String? = null,
val subMid: String? = null,
val subTid: String? = null,
val trace: String,
val tranId: String,
val tranStatus: TranStatus,
val tranType: TranType,
val refundedAmount: Amount? = null,
val availableRefundAmount: Amount? = null,
val completedAmount: Amount? = null,
val availableCompletionAmount: Amount? = null,
val allowedActions: AllowedActions? = null,
val updatedAt: String? = null, // date-time
)
interface TransactionExtract {
accountBin?: string | null;
accountLast4?: string | null;
acptId: string;
amount: Amount;
approvalCode?: string | null;
batchId: string;
batchNo: string;
consumerPaymentDevice?: string | null;
createdAt: string; // date-time
cvmPerformed: CvmPerformed;
description?: string | null;
entryMode: EntryMode;
hostMessageFormat: HostMessageFormat;
installmentPlan?: number | null; // int32
installments?: Installment | null;
linkedTranId?: string | null;
mcc?: string | null;
merchantName: string;
paymentMethod: PaymentMethod;
posReference?: string | null;
extOrderId?: string | null;
primaryMid: string;
primaryTid: string;
profileId: string;
providerMchId?: string | null;
providerReference?: string | null;
rrn?: string | null;
sdkId?: string | null;
srsTranId?: string | null;
subMid?: string | null;
subTid?: string | null;
trace: string;
tranId: string;
tranStatus: TranStatus;
tranType: TranType;
refundedAmount?: Amount | null;
availableRefundAmount?: Amount | null;
completedAmount?: Amount | null;
availableCompletionAmount?: Amount | null;
allowedActions?: AllowedActions | null;
updatedAt?: string | null; // date-time
}
/**
* Cardholder's DCC choice and the accepted terms, on every transaction that carried a dcc
* choice (the 201, a resend and every lookup); absent otherwise. The terms come from the offer
* DCC stored, never from the request, and are present only for an ACCEPTED offer that was
* reserved; a term the stored offer lacks is left out.
*/
data class TransactionDcc(
val offerId: String,
val decision: Decision,
val cardholderAmount: Amount? = null,
/** Exact decimal string. */
val exchangeRate: String? = null,
/**
* Signed exact decimal string; negative when the DCC rate is better than the ECB reference
* rate. Absent when the provider gave none.
*/
val markupPercentage: String? = null,
/** Disclosure text to print on the receipt. */
val receiptText: String? = null,
) {
enum class Decision {
ACCEPTED, DECLINED, NOT_APPLICABLE
}
}
/**
* Cardholder's DCC choice and the accepted terms, on every transaction that carried a dcc
* choice (the 201, a resend and every lookup); absent otherwise. The terms come from the offer
* DCC stored, never from the request, and are present only for an ACCEPTED offer that was
* reserved; a term the stored offer lacks is left out.
*/
interface TransactionDcc {
offerId: string;
decision: "ACCEPTED" | "DECLINED" | "NOT_APPLICABLE";
cardholderAmount?: Amount;
/** Exact decimal string. */
exchangeRate?: string;
/**
* Signed exact decimal string; negative when the DCC rate is better than the ECB reference
* rate. Absent when the provider gave none.
*/
markupPercentage?: string;
/** Disclosure text to print on the receipt. */
receiptText?: string;
}
data class Amount(
val currency: String,
val value: String,
)
interface Amount {
currency: string;
value: string;
}
/**
* Backend-calculated hints for which derived operations a transaction currently permits. These
* are UX hints for enabling/disabling buttons; the Backend still validates on submit.
*/
data class AllowedActions(
/**
* True when a refund is currently permitted: the transaction type/status is refundable, some
* refundable balance remains (availableRefundAmount > 0), and its batch is SETTLED (before
* settlement the correction is a void, not a refund). Acquirers that accept a refund before
* settlement (EZPAY, PAY_STORE, ALTO, VAULTSPAY) skip the SETTLED condition.
*/
val refund: Boolean? = null,
/**
* True when a completion is currently permitted: the transaction is an open pre-authorization
* and some completion balance remains (availableCompletionAmount > 0).
*/
val completion: Boolean? = null,
/**
* True when an incremental authorization is currently permitted: the transaction is an open
* pre-authorization that has not yet been completed (no approved completion).
*/
val incrementalAuth: Boolean? = null,
)
/**
* Backend-calculated hints for which derived operations a transaction currently permits. These
* are UX hints for enabling/disabling buttons; the Backend still validates on submit.
*/
interface AllowedActions {
/**
* True when a refund is currently permitted: the transaction type/status is refundable, some
* refundable balance remains (availableRefundAmount > 0), and its batch is SETTLED (before
* settlement the correction is a void, not a refund). Acquirers that accept a refund before
* settlement (EZPAY, PAY_STORE, ALTO, VAULTSPAY) skip the SETTLED condition.
*/
refund?: boolean;
/**
* True when a completion is currently permitted: the transaction is an open pre-authorization
* and some completion balance remains (availableCompletionAmount > 0).
*/
completion?: boolean;
/**
* True when an incremental authorization is currently permitted: the transaction is an open
* pre-authorization that has not yet been completed (no approved completion).
*/
incrementalAuth?: boolean;
}
data class HistoryTree(
val selectedTransactionId: String,
val treeComplete: Boolean,
val root: HistoryTreeNode,
)
interface HistoryTree {
selectedTransactionId: string;
treeComplete: boolean;
root: HistoryTreeNode;
}
data class HistoryTreeNode(
val tranId: String,
val srsTranId: String? = null,
val linkedTranId: String? = null,
val linkedSrsTranId: String? = null,
val tranType: TranType,
val tranStatus: TranStatus,
val amount: Amount,
val createdAt: String, // date-time
val updatedAt: String? = null, // date-time
val children: List<HistoryTreeNode>,
)
interface HistoryTreeNode {
tranId: string;
srsTranId?: string | null;
linkedTranId?: string | null;
linkedSrsTranId?: string | null;
tranType: TranType;
tranStatus: TranStatus;
amount: Amount;
createdAt: string; // date-time
updatedAt?: string | null; // date-time
children: HistoryTreeNode[];
}
enum class CvmPerformed {
NO_CVM, SIGNATURE, PIN, OFFLINE_PIN, CDCVM
}
type CvmPerformed = "NO_CVM" | "SIGNATURE" | "PIN" | "OFFLINE_PIN" | "CDCVM";
enum class EntryMode {
NFC, SWIPE, CHIP, FALLBACK, MANUAL_KEYED, MERCHANT_PRESENT,
CONSUMER_PRESENT, RETRIEVE, UNKNOWN
}
type EntryMode =
| "NFC" | "SWIPE" | "CHIP" | "FALLBACK" | "MANUAL_KEYED"
| "MERCHANT_PRESENT" | "CONSUMER_PRESENT" | "RETRIEVE" | "UNKNOWN";
enum class HostMessageFormat {
MOCK, MPGS_AP, CARD_NOW, TWOC2P, CARDWORKS, SHIFT4, PAY_STORE, POMELO,
EFT_PAY, EZPAY, BANKNBOX, IULINK, RAZER, WALLYT, GCAG, POSTBRIDGE,
RENDEZVOUS, STD_JSON, S2M_SELECT, VAULTSPAY, SMART_VISTA, SADAD, AIRWALLEX,
APS
}
type HostMessageFormat =
| "MOCK" | "MPGS_AP" | "CARD_NOW" | "TWOC2P" | "CARDWORKS" | "SHIFT4"
| "PAY_STORE" | "POMELO" | "EFT_PAY" | "EZPAY" | "BANKNBOX" | "IULINK"
| "RAZER" | "WALLYT" | "GCAG" | "POSTBRIDGE" | "RENDEZVOUS" | "STD_JSON"
| "S2M_SELECT" | "VAULTSPAY" | "SMART_VISTA" | "SADAD" | "AIRWALLEX"
| "APS";
enum class PaymentMethod {
VISA, MASTERCARD, UNIONPAY, AMEX, JCB, DISCOVER, DINERS, MY_DEBIT, ALIPAY,
WECHAT, VISA_QR, MASTERCARD_QR, UNIONPAY_QR, SHOPEE_PAY_QR, GRAB_PAY_QR,
ALIPAY_PLUS_QR, DUIT_NOW_QR, PAY_NOW, UNKNOWN
}
type PaymentMethod =
| "VISA" | "MASTERCARD" | "UNIONPAY" | "AMEX" | "JCB" | "DISCOVER"
| "DINERS" | "MY_DEBIT" | "ALIPAY" | "WECHAT" | "VISA_QR"
| "MASTERCARD_QR" | "UNIONPAY_QR" | "SHOPEE_PAY_QR" | "GRAB_PAY_QR"
| "ALIPAY_PLUS_QR" | "DUIT_NOW_QR" | "PAY_NOW" | "UNKNOWN";
enum class TranStatus {
PROCESSING, APPROVED, DECLINED, VOIDED, REVERSED, AUTH_ONLY, ADJUSTED
}
type TranStatus =
| "PROCESSING" | "APPROVED" | "DECLINED" | "VOIDED" | "REVERSED"
| "AUTH_ONLY" | "ADJUSTED";
enum class TranType {
SALE, REFUND, AUTH, AUTH_COMP, DEFERRED_AUTH, INSTALL
}
type TranType =
| "SALE" | "REFUND" | "AUTH" | "AUTH_COMP" | "DEFERRED_AUTH" | "INSTALL";
enum class InterestModel {
WITH_INTEREST, NO_INTEREST
}
type InterestModel = "WITH_INTEREST" | "NO_INTEREST";
enum class InstallmentType {
REGULAR, REVOLVING
}
type InstallmentType = "REGULAR" | "REVOLVING";
data class RevolvingRequest(
val initialPaymentAmount: Amount,
)
interface RevolvingRequest {
initialPaymentAmount: Amount;
}
data class Revolving(
val initialPaymentAmount: Amount,
val remainingAmount: Amount,
)
interface Revolving {
initialPaymentAmount: Amount;
remainingAmount: Amount;
}
data class InstallmentRequest(
val planId: String,
val installmentCount: Int,
val revolving: RevolvingRequest? = null,
)
interface InstallmentRequest {
planId: string;
installmentCount: number; // int32
revolving?: RevolvingRequest | null;
}
data class Installment(
val planId: String,
val planName: String,
val installmentCount: Int,
val interestModel: InterestModel,
val installmentType: InstallmentType,
val revolving: Revolving? = null,
val issuerPreapprovalReference: String? = null,
)
interface Installment {
planId: string;
planName: string;
installmentCount: number; // int32
interestModel: InterestModel;
installmentType: InstallmentType;
revolving?: Revolving | null;
issuerPreapprovalReference?: string | null;
}
data class Transaction(
val acceptanceId: String,
val accountBin: String? = null,
val accountLast4: String? = null,
val accountMasked: String? = null,
val acptId: String,
val actions: List<Action>,
val aid: String? = null,
val amount: Amount,
val appName: String? = null,
val approvalCode: String? = null,
val atc: String? = null,
val batchId: String,
val batchNo: String,
val callbackUrl: String? = null,
val consumerPaymentDevice: String? = null,
val createdAt: String, // date-time
val cvmPerformed: CvmPerformed? = null,
val cvmSignatureBase64: String? = null,
val cvmSignatureUrl: String? = null,
val description: String? = null,
val entryMode: EntryMode,
val extraData: String? = null,
val hostMessageFormat: HostMessageFormat,
val installmentPlan: Int? = null,
val installments: Installment? = null,
val issCountryCode: String? = null,
val linkedTranId: String? = null,
val mcc: String,
val merchantAddr: String,
val merchantName: String,
val paymentMethod: PaymentMethod,
val posReference: String? = null,
val extOrderId: String? = null,
val preferredAcceptanceTag: String? = null,
val primaryMid: String,
val primaryTid: String,
val profileId: String,
val providerMchId: String? = null,
val providerReference: String? = null,
val rrn: String? = null,
val sdkId: String? = null,
val srsTranId: String? = null,
val subMid: String? = null,
val subTid: String? = null,
val tc: String? = null,
val trace: String,
val tranId: String,
val tranStatus: TranStatus,
val tranType: TranType,
val tsi: String? = null,
val tvr: String? = null,
val updatedAt: String? = null, // date-time
val hasChildren: Boolean? = null,
val refundedAmount: Amount? = null,
val availableRefundAmount: Amount? = null,
val completedAmount: Amount? = null,
val availableCompletionAmount: Amount? = null,
val allowedActions: AllowedActions? = null,
val dcc: TransactionDcc? = null,
)
interface Transaction {
acceptanceId: string;
accountBin?: string | null;
accountLast4?: string | null;
accountMasked?: string | null;
acptId: string;
actions: Action[];
aid?: string | null;
amount: Amount;
appName?: string | null;
approvalCode?: string | null;
atc?: string | null;
batchId: string;
batchNo: string;
callbackUrl?: string | null;
consumerPaymentDevice?: string | null;
createdAt: string; // date-time
cvmPerformed?: CvmPerformed;
cvmSignatureBase64?: string | null;
cvmSignatureUrl?: string | null;
description?: string | null;
entryMode: EntryMode;
extraData?: string | null;
hostMessageFormat: HostMessageFormat;
installmentPlan?: number | null; // int32
installments?: Installment | null;
issCountryCode?: string | null;
linkedTranId?: string | null;
mcc: string;
merchantAddr: string;
merchantName: string;
paymentMethod: PaymentMethod;
posReference?: string | null;
extOrderId?: string | null;
preferredAcceptanceTag?: string | null;
primaryMid: string;
primaryTid: string;
profileId: string;
providerMchId?: string | null;
providerReference?: string | null;
rrn?: string | null;
sdkId?: string | null;
srsTranId?: string | null;
subMid?: string | null;
subTid?: string | null;
tc?: string | null;
trace: string;
tranId: string;
tranStatus: TranStatus;
tranType: TranType;
tsi?: string | null;
tvr?: string | null;
updatedAt?: string | null; // date-time
hasChildren?: boolean | null;
refundedAmount?: Amount | null;
availableRefundAmount?: Amount | null;
completedAmount?: Amount | null;
availableCompletionAmount?: Amount | null;
allowedActions?: AllowedActions | null;
dcc?: TransactionDcc;
}
data class Action(
val actionId: String,
val actionStatus: ActionStatus,
val actionType: ActionType,
val amount: Amount? = null,
val createdAt: String, // date-time
val extraData: String? = null,
val hostRespCode: String? = null,
val hostRespMessage: String? = null,
val posReference: String? = null,
val reason: String? = null,
val requestId: String,
val trace: String,
val tranId: String? = null,
val updatedAt: String? = null, // date-time
)
interface Action {
actionId: string;
actionStatus: ActionStatus;
actionType: ActionType;
amount?: Amount | null;
createdAt: string; // date-time
extraData?: string | null;
hostRespCode?: string | null;
hostRespMessage?: string | null;
posReference?: string | null;
reason?: string | null;
requestId: string;
trace: string;
tranId?: string | null;
updatedAt?: string | null; // date-time
}
enum class ActionStatus {
PROCESSING, SUCCESS, REJECTED, TIMEOUT, REVERSED, TO_BE_REVERSE
}
type ActionStatus =
| "PROCESSING" | "SUCCESS" | "REJECTED" | "TIMEOUT" | "REVERSED"
| "TO_BE_REVERSE";
enum class ActionType {
NEW, ADJUST, VOID, AUTH_COMP, LINK_REFUND, CONFIRM, MERCHANT_PRESENT_QR,
CONSUMER_PRESENT_QR, NOTIFIED, INQUIRY, CLOSE, INCREMENTAL_AUTH
}
type ActionType =
| "NEW" | "ADJUST" | "VOID" | "AUTH_COMP" | "LINK_REFUND" | "CONFIRM"
| "MERCHANT_PRESENT_QR" | "CONSUMER_PRESENT_QR" | "NOTIFIED" | "INQUIRY"
| "CLOSE" | "INCREMENTAL_AUTH";
data class ErrorResponse(
val message: String,
val path: String,
val requestId: String,
val status: Int,
val title: String,
)
interface ErrorResponse {
message: string;
path: string;
requestId: string;
status: number; // int32
title: string;
}
data class TransactionRequest(
val cardRead: CardReadResultSuccess,
val poiRequest: PoiRequestActionNew,
val sdkId: String,
val dcc: DccSelection? = null,
)
interface TransactionRequest {
cardRead: CardReadResultSuccess;
poiRequest: PoiRequestActionNew;
sdkId: string;
dcc?: DccSelection;
}
/**
* Cardholder choice on a DCC quote; SALE only. The offer is reserved with DCC before the host
* is called. When it cannot be reserved the host is not called and the transaction is returned
* (201) as DECLINED, its action's hostRespMessage telling why: "DCC offer cannot be used for
* this payment" (the offer is consumed, expired, cancelled or does not match the payment) or
* "DCC service unavailable" (ACCEPTED only). A DECLINED or NOT_APPLICABLE choice goes to the
* host as a normal sale when DCC is unavailable, and DCC is not told its outcome. An SCA
* second leg continues its first leg's choice; a different choice returns 400. Resending the
* same DCC payment with the same x-minesec-request-id returns the first attempt's transaction
* with 200 and never authorises again; while the first attempt is still awaiting the host it
* returns 409 instead, and the caller should query the transaction.
*/
data class DccSelection(
val offerId: String, // pattern ^dcco_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
val decision: Decision,
) {
enum class Decision {
ACCEPTED, DECLINED, NOT_APPLICABLE
}
}
/**
* Cardholder choice on a DCC quote; SALE only. The offer is reserved with DCC before the host
* is called. When it cannot be reserved the host is not called and the transaction is returned
* (201) as DECLINED, its action's hostRespMessage telling why: "DCC offer cannot be used for
* this payment" (the offer is consumed, expired, cancelled or does not match the payment) or
* "DCC service unavailable" (ACCEPTED only). A DECLINED or NOT_APPLICABLE choice goes to the
* host as a normal sale when DCC is unavailable, and DCC is not told its outcome. An SCA
* second leg continues its first leg's choice; a different choice returns 400. Resending the
* same DCC payment with the same x-minesec-request-id returns the first attempt's transaction
* with 200 and never authorises again; while the first attempt is still awaiting the host it
* returns 409 instead, and the caller should query the transaction.
*/
interface DccSelection {
offerId: string; // pattern ^dcco_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
decision: "ACCEPTED" | "DECLINED" | "NOT_APPLICABLE";
}
data class CardReadResultSuccess(
val cardKsn: String? = null,
val cvmPerformed: CvmPerformed? = null,
val emvData: Map<String, String>? = null,
val entryMode: EntryMode,
val maskedPan: String? = null,
val needOnline: Boolean? = null,
val panToken: String? = null,
val paymentMethod: PaymentMethod,
val pinKsn: String? = null,
)
interface CardReadResultSuccess {
cardKsn?: string | null;
cvmPerformed?: CvmPerformed | null;
emvData?: Record<string, string>;
entryMode: EntryMode;
maskedPan?: string;
needOnline?: boolean;
panToken?: string | null;
paymentMethod: PaymentMethod;
pinKsn?: string | null;
}
data class PoiRequestActionNew(
val acptId: String? = null,
val amount: Amount,
val cvmSignatureMode: CvmSignatureMode? = null,
val description: String? = null,
val extra: Map<String, String>? = null,
val forceFetchProfile: Boolean? = null,
val forcePaymentMethod: List<ForcePaymentMethodItem>? = null,
val installmentPlan: Int? = null,
val installments: InstallmentRequest? = null,
val linkedTranId: String? = null,
val posReference: String? = null,
val extOrderId: String? = null,
val preferredAcceptanceTag: String? = null,
val primaryTid: String? = null,
val profileId: String,
val tapToOwnDevice: Boolean? = null,
val tranType: TranType,
) {
enum class ForcePaymentMethodItem {
VISA, MASTERCARD, UNIONPAY, AMEX, JCB, DISCOVER, DINERS, MY_DEBIT,
ALIPAY, WECHAT, VISA_QR, MASTERCARD_QR, UNIONPAY_QR, SHOPEE_PAY_QR,
GRAB_PAY_QR, ALIPAY_PLUS_QR, DUIT_NOW_QR, PAY_NOW, UNKNOWN
}
}
interface PoiRequestActionNew {
acptId?: string | null;
amount: Amount;
cvmSignatureMode?: CvmSignatureMode;
description?: string | null;
extra?: Record<string, string> | null;
forceFetchProfile?: boolean;
forcePaymentMethod?:
| (
| "VISA" | "MASTERCARD" | "UNIONPAY" | "AMEX" | "JCB" | "DISCOVER"
| "DINERS" | "MY_DEBIT" | "ALIPAY" | "WECHAT" | "VISA_QR"
| "MASTERCARD_QR" | "UNIONPAY_QR" | "SHOPEE_PAY_QR" | "GRAB_PAY_QR"
| "ALIPAY_PLUS_QR" | "DUIT_NOW_QR" | "PAY_NOW" | "UNKNOWN")[]
| null;
installmentPlan?: number | null; // int32
installments?: InstallmentRequest | null;
linkedTranId?: string | null;
posReference?: string | null;
extOrderId?: string | null;
preferredAcceptanceTag?: string | null;
primaryTid?: string | null;
profileId: string;
tapToOwnDevice?: boolean | null;
tranType: TranType;
}
enum class CvmSignatureMode {
ELECTRONIC_SIGNATURE, SIGN_ON_PAPER
}
type CvmSignatureMode = "ELECTRONIC_SIGNATURE" | "SIGN_ON_PAPER";
data class TransactionRequestMpQr(
val callbackUrl: String? = null,
val paymentMethod: PaymentMethod,
val poiRequest: PoiRequestActionNew,
val sdkId: String? = null,
)
interface TransactionRequestMpQr {
callbackUrl?: string | null;
paymentMethod: PaymentMethod;
poiRequest: PoiRequestActionNew;
sdkId?: string | null;
}
data class ActionRequest(
val actionType: ActionType,
val amount: Amount? = null,
val originalActionId: String? = null,
val posReference: String? = null,
)
interface ActionRequest {
actionType: ActionType;
amount?: Amount | null;
originalActionId?: string | null;
posReference?: string | null;
}
typealias String = String
type String = string;
data class CardToken(
val extra: Map<String, String>? = null,
val status: TokenStatus,
val token: String? = null,
)
interface CardToken {
extra?: Record<string, string> | null;
status: TokenStatus;
token?: string | null;
}
enum class TokenStatus {
SUCCESS, NO_DATA, FAILED
}
type TokenStatus = "SUCCESS" | "NO_DATA" | "FAILED";
data class ReceiptRequest(
val destination: String,
val isResend: Boolean? = null,
val type: ReceiptType,
)
interface ReceiptRequest {
destination: string;
isResend?: boolean;
type: ReceiptType;
}
enum class ReceiptType {
EMAIL, SMS
}
type ReceiptType = "EMAIL" | "SMS";
data class CursorPaginated-Profile(
val cursorEnding: String? = null,
val cursorStarting: String? = null,
val data: List<Profile>,
val dataSize: Int,
val hasMore: Boolean,
val requestPath: String,
val requestSize: Int,
val totalSize: Int,
)
interface CursorPaginated-Profile {
cursorEnding?: string | null;
cursorStarting?: string | null;
data: Profile[];
dataSize: number; // int32
hasMore: boolean;
requestPath: string;
requestSize: number; // int32
totalSize: number; // int32
}
data class Profile(
val countryCode: String,
val createdAt: String, // date-time
val currency: String,
val entityStatus: EntityStatus,
val mcc: String,
val merchantAddr: String,
val merchantCity: String? = null,
val merchantEmail: String? = null,
val merchantName: String,
val merchantPhone: String? = null,
val merchantPostalCode: String? = null,
val profileId: String,
val profileName: String,
val providerMchId: String? = null,
val providerReference: String? = null,
val updatedAt: String? = null, // date-time
)
interface Profile {
countryCode: string;
createdAt: string; // date-time
currency: string;
entityStatus: EntityStatus;
mcc: string;
merchantAddr: string;
merchantCity?: string | null;
merchantEmail?: string | null;
merchantName: string;
merchantPhone?: string | null;
merchantPostalCode?: string | null;
profileId: string;
profileName: string;
providerMchId?: string | null;
providerReference?: string | null;
updatedAt?: string | null; // date-time
}
enum class EntityStatus {
ACTIVE, DISABLED
}
type EntityStatus = "ACTIVE" | "DISABLED";
data class ProfileWithAcpt(
val acceptances: List<Acceptance>,
val acptSelection: Map<String, List<AcptSelectionValueItem>>,
val countryCode: String,
val createdAt: String, // date-time
val currency: String,
val entityStatus: EntityStatus,
val mcc: String,
val merchantAddr: String,
val merchantCity: String? = null,
val merchantEmail: String? = null,
val merchantName: String,
val merchantPhone: String? = null,
val merchantPostalCode: String? = null,
val profileId: String,
val profileName: String,
val providerMchId: String? = null,
val providerReference: String? = null,
val updatedAt: String? = null, // date-time
) {
enum class AcptSelectionValueItem {
VISA, MASTERCARD, UNIONPAY, AMEX, JCB, DISCOVER, DINERS, MY_DEBIT,
ALIPAY, WECHAT, VISA_QR, MASTERCARD_QR, UNIONPAY_QR, SHOPEE_PAY_QR,
GRAB_PAY_QR, ALIPAY_PLUS_QR, DUIT_NOW_QR, PAY_NOW, UNKNOWN
}
}
interface ProfileWithAcpt {
acceptances: Acceptance[];
acptSelection: Record<string,
| (
| "VISA" | "MASTERCARD" | "UNIONPAY" | "AMEX" | "JCB" | "DISCOVER"
| "DINERS" | "MY_DEBIT" | "ALIPAY" | "WECHAT" | "VISA_QR"
| "MASTERCARD_QR" | "UNIONPAY_QR" | "SHOPEE_PAY_QR" | "GRAB_PAY_QR"
| "ALIPAY_PLUS_QR" | "DUIT_NOW_QR" | "PAY_NOW" | "UNKNOWN")[]>;
countryCode: string;
createdAt: string; // date-time
currency: string;
entityStatus: EntityStatus;
mcc: string;
merchantAddr: string;
merchantCity?: string | null;
merchantEmail?: string | null;
merchantName: string;
merchantPhone?: string | null;
merchantPostalCode?: string | null;
profileId: string;
profileName: string;
providerMchId?: string | null;
providerReference?: string | null;
updatedAt?: string | null; // date-time
}
data class Acceptance(
val acptId: String,
val acptName: String? = null,
val acptReference: String? = null,
val createdAt: String, // date-time
val entityStatus: EntityStatus,
val extraParams: Map<String, String>,
val hostMessageFormat: HostMessageFormat,
val keyId: String? = null,
val primaryMid: String,
val primaryTid: String,
val supportedPayments: List<SupportedPaymentsItem>,
val tags: List<String>? = null,
val updatedAt: String? = null, // date-time
) {
enum class SupportedPaymentsItem {
VISA, MASTERCARD, UNIONPAY, AMEX, JCB, DISCOVER, DINERS, MY_DEBIT,
ALIPAY, WECHAT, VISA_QR, MASTERCARD_QR, UNIONPAY_QR, SHOPEE_PAY_QR,
GRAB_PAY_QR, ALIPAY_PLUS_QR, DUIT_NOW_QR, PAY_NOW, UNKNOWN
}
}
interface Acceptance {
acptId: string;
acptName?: string | null;
acptReference?: string | null;
createdAt: string; // date-time
entityStatus: EntityStatus;
extraParams: Record<string, string>;
hostMessageFormat: HostMessageFormat;
keyId?: string | null;
primaryMid: string;
primaryTid: string;
supportedPayments:
| (
| "VISA" | "MASTERCARD" | "UNIONPAY" | "AMEX" | "JCB" | "DISCOVER"
| "DINERS" | "MY_DEBIT" | "ALIPAY" | "WECHAT" | "VISA_QR"
| "MASTERCARD_QR" | "UNIONPAY_QR" | "SHOPEE_PAY_QR" | "GRAB_PAY_QR"
| "ALIPAY_PLUS_QR" | "DUIT_NOW_QR" | "PAY_NOW" | "UNKNOWN")[];
tags?: string[] | null;
updatedAt?: string | null; // date-time
}
data class ProfileRequest(
val acceptances: List<AcceptanceUpsertRequest>? = null,
val countryCode: String,
val currency: String,
val mcc: String,
val merchantAddr: String,
val merchantCity: String? = null,
val merchantEmail: String? = null,
val merchantName: String,
val merchantPhone: String? = null,
val merchantPostalCode: String? = null,
val profileName: String,
val providerMchId: String? = null,
val providerReference: String? = null,
)
interface ProfileRequest {
acceptances?: AcceptanceUpsertRequest[] | null;
countryCode: string;
currency: string;
mcc: string;
merchantAddr: string;
merchantCity?: string | null;
merchantEmail?: string | null;
merchantName: string;
merchantPhone?: string | null;
merchantPostalCode?: string | null;
profileName: string;
providerMchId?: string | null;
providerReference?: string | null;
}
data class AcceptanceUpsertRequest(
val acptId: String? = null,
val acptName: String? = null,
val acptReference: String? = null,
val acqMid: String? = null,
val acqTid: String? = null,
val extraParams: Map<String, String>? = null,
val hostMessageFormat: HostMessageFormat,
val primaryMid: String? = null,
val primaryTid: String? = null,
val supportedPayments: List<SupportedPaymentsItem>,
val tags: List<String>? = null,
) {
enum class SupportedPaymentsItem {
VISA, MASTERCARD, UNIONPAY, AMEX, JCB, DISCOVER, DINERS, MY_DEBIT,
ALIPAY, WECHAT, VISA_QR, MASTERCARD_QR, UNIONPAY_QR, SHOPEE_PAY_QR,
GRAB_PAY_QR, ALIPAY_PLUS_QR, DUIT_NOW_QR, PAY_NOW, UNKNOWN
}
}
interface AcceptanceUpsertRequest {
acptId?: string | null;
acptName?: string | null;
acptReference?: string | null;
acqMid?: string | null;
acqTid?: string | null;
extraParams?: Record<string, string> | null;
hostMessageFormat: HostMessageFormat;
primaryMid?: string | null;
primaryTid?: string | null;
supportedPayments:
| (
| "VISA" | "MASTERCARD" | "UNIONPAY" | "AMEX" | "JCB" | "DISCOVER"
| "DINERS" | "MY_DEBIT" | "ALIPAY" | "WECHAT" | "VISA_QR"
| "MASTERCARD_QR" | "UNIONPAY_QR" | "SHOPEE_PAY_QR" | "GRAB_PAY_QR"
| "ALIPAY_PLUS_QR" | "DUIT_NOW_QR" | "PAY_NOW" | "UNKNOWN")[];
tags?: string[] | null;
}
data class ProfileSignOn(
val acptSignOns: List<AcptSignOn>,
val profileId: String,
val profileName: String,
)
interface ProfileSignOn {
acptSignOns: AcptSignOn[];
profileId: string;
profileName: string;
}
data class AcptSignOn(
val acptId: String,
val acptName: String? = null,
val acptReference: String? = null,
val batchId: String,
val hostMessageFormat: HostMessageFormat,
val hostRespCode: String? = null,
val hostRespMessage: String? = null,
val primaryMid: String,
val primaryTid: String? = null,
val reason: String,
val supportedPayment: List<SupportedPaymentItem>,
) {
enum class SupportedPaymentItem {
VISA, MASTERCARD, UNIONPAY, AMEX, JCB, DISCOVER, DINERS, MY_DEBIT,
ALIPAY, WECHAT, VISA_QR, MASTERCARD_QR, UNIONPAY_QR, SHOPEE_PAY_QR,
GRAB_PAY_QR, ALIPAY_PLUS_QR, DUIT_NOW_QR, PAY_NOW, UNKNOWN
}
}
interface AcptSignOn {
acptId: string;
acptName?: string | null;
acptReference?: string | null;
batchId: string;
hostMessageFormat: HostMessageFormat;
hostRespCode?: string | null;
hostRespMessage?: string | null;
primaryMid: string;
primaryTid?: string | null;
reason: string;
supportedPayment:
| (
| "VISA" | "MASTERCARD" | "UNIONPAY" | "AMEX" | "JCB" | "DISCOVER"
| "DINERS" | "MY_DEBIT" | "ALIPAY" | "WECHAT" | "VISA_QR"
| "MASTERCARD_QR" | "UNIONPAY_QR" | "SHOPEE_PAY_QR" | "GRAB_PAY_QR"
| "ALIPAY_PLUS_QR" | "DUIT_NOW_QR" | "PAY_NOW" | "UNKNOWN")[];
}
data class ProfileSignOff(
val acptSignOffs: List<AcptSignOff>,
val profileId: String,
val profileName: String,
)
interface ProfileSignOff {
acptSignOffs: AcptSignOff[];
profileId: string;
profileName: string;
}
data class AcptSignOff(
val acptId: String,
val acptName: String? = null,
val acptReference: String? = null,
val hostMessageFormat: HostMessageFormat,
val hostRespCode: String? = null,
val hostRespMessage: String? = null,
val primaryMid: String,
val primaryTid: String? = null,
val reason: String,
val supportedPayment: List<SupportedPaymentItem>,
) {
enum class SupportedPaymentItem {
VISA, MASTERCARD, UNIONPAY, AMEX, JCB, DISCOVER, DINERS, MY_DEBIT,
ALIPAY, WECHAT, VISA_QR, MASTERCARD_QR, UNIONPAY_QR, SHOPEE_PAY_QR,
GRAB_PAY_QR, ALIPAY_PLUS_QR, DUIT_NOW_QR, PAY_NOW, UNKNOWN
}
}
interface AcptSignOff {
acptId: string;
acptName?: string | null;
acptReference?: string | null;
hostMessageFormat: HostMessageFormat;
hostRespCode?: string | null;
hostRespMessage?: string | null;
primaryMid: string;
primaryTid?: string | null;
reason: string;
supportedPayment:
| (
| "VISA" | "MASTERCARD" | "UNIONPAY" | "AMEX" | "JCB" | "DISCOVER"
| "DINERS" | "MY_DEBIT" | "ALIPAY" | "WECHAT" | "VISA_QR"
| "MASTERCARD_QR" | "UNIONPAY_QR" | "SHOPEE_PAY_QR" | "GRAB_PAY_QR"
| "ALIPAY_PLUS_QR" | "DUIT_NOW_QR" | "PAY_NOW" | "UNKNOWN")[];
}
data class DeviceParam(
val capkParams: List<CapkParam>,
val emvParams: List<EmvParam>,
val profileId: String,
val supportedPayments: List<SupportedPaymentsItem>,
val terminalParam: TerminalParam,
) {
enum class SupportedPaymentsItem {
VISA, MASTERCARD, UNIONPAY, AMEX, JCB, DISCOVER, DINERS, MY_DEBIT,
ALIPAY, WECHAT, VISA_QR, MASTERCARD_QR, UNIONPAY_QR, SHOPEE_PAY_QR,
GRAB_PAY_QR, ALIPAY_PLUS_QR, DUIT_NOW_QR, PAY_NOW, UNKNOWN
}
}
interface DeviceParam {
capkParams: CapkParam[];
emvParams: EmvParam[];
profileId: string;
supportedPayments:
| (
| "VISA" | "MASTERCARD" | "UNIONPAY" | "AMEX" | "JCB" | "DISCOVER"
| "DINERS" | "MY_DEBIT" | "ALIPAY" | "WECHAT" | "VISA_QR"
| "MASTERCARD_QR" | "UNIONPAY_QR" | "SHOPEE_PAY_QR" | "GRAB_PAY_QR"
| "ALIPAY_PLUS_QR" | "DUIT_NOW_QR" | "PAY_NOW" | "UNKNOWN")[];
terminalParam: TerminalParam;
}
data class CapkParam(
val capkType: CapkType? = null,
val checksum: String,
val expiryYyMmDd: String,
val exponent: String,
val keyIndex: String,
val modulus: String,
val rid: String,
val scheme: PaymentMethod,
)
interface CapkParam {
capkType?: CapkType | null;
checksum: string;
expiryYyMmDd: string;
exponent: string;
keyIndex: string;
modulus: string;
rid: string;
scheme: PaymentMethod;
}
enum class CapkType {
TEST, LIVE
}
type CapkType = "TEST" | "LIVE";
data class EmvParam(
val aid: String,
val appVersion: String,
val ctlCvmRequiredLimit: String,
val ctlFloorLimit: String,
val ctlTranLimit: String,
val defaultDdol: String,
val defaultTdol: String,
val enabledCtlStatusCheck: Boolean? = null,
val enabledFloorLimitCheck: Boolean,
val enabledRandomSelect: Boolean,
val enabledVelocityCheck: Boolean,
val fullMatchSelect: Boolean,
val mcKernelConfig: String? = null,
val randomSelectMaxTargetPercent: Int,
val randomSelectTargetPercent: Int,
val randomSelectThreshold: String,
val riskMgmtData: String? = null,
val selectionPriority: Int,
val tacDefault: String,
val tacDenial: String,
val tacOnline: String,
val ttq: String? = null,
)
interface EmvParam {
aid: string;
appVersion: string;
ctlCvmRequiredLimit: string;
ctlFloorLimit: string;
ctlTranLimit: string;
defaultDdol: string;
defaultTdol: string;
enabledCtlStatusCheck?: boolean | null;
enabledFloorLimitCheck: boolean;
enabledRandomSelect: boolean;
enabledVelocityCheck: boolean;
fullMatchSelect: boolean;
mcKernelConfig?: string | null;
randomSelectMaxTargetPercent: number; // int32
randomSelectTargetPercent: number; // int32
randomSelectThreshold: string;
riskMgmtData?: string | null;
selectionPriority: number; // int32
tacDefault: string;
tacDenial: string;
tacOnline: string;
ttq?: string | null;
}
data class TerminalParam(
val bMydebitPriority: Boolean? = null,
val countryCode: String,
val ctlReaderCapability: String? = null,
val ctlReaderCapabilityAmex: String? = null,
val extra: Map<String, String>? = null,
val merchantCategoryCode: String,
val merchantName: String? = null,
val pureAppCapability: String? = null,
val terminalCapability: String,
val terminalType: String,
val tranCurrCode: String,
)
interface TerminalParam {
bMydebitPriority?: boolean | null;
countryCode: string;
ctlReaderCapability?: string | null;
ctlReaderCapabilityAmex?: string | null;
extra?: Record<string, string> | null;
merchantCategoryCode: string;
merchantName?: string | null;
pureAppCapability?: string | null;
terminalCapability: string;
terminalType: string;
tranCurrCode: string;
}
data class StatusRequest(
val status: EntityStatus,
)
interface StatusRequest {
status: EntityStatus;
}
data class CursorPaginated-Acceptance(
val cursorEnding: String? = null,
val cursorStarting: String? = null,
val data: List<Acceptance>,
val dataSize: Int,
val hasMore: Boolean,
val requestPath: String,
val requestSize: Int,
val totalSize: Int,
)
interface CursorPaginated-Acceptance {
cursorEnding?: string | null;
cursorStarting?: string | null;
data: Acceptance[];
dataSize: number; // int32
hasMore: boolean;
requestPath: string;
requestSize: number; // int32
totalSize: number; // int32
}
data class AcceptanceRequest(
val acptName: String? = null,
val acptReference: String? = null,
val extraParams: Map<String, String>? = null,
val hostMessageFormat: HostMessageFormat,
val primaryMid: String,
val primaryTid: String? = null,
val supportedPayments: List<SupportedPaymentsItem>,
val tags: List<String>? = null,
) {
enum class SupportedPaymentsItem {
VISA, MASTERCARD, UNIONPAY, AMEX, JCB, DISCOVER, DINERS, MY_DEBIT,
ALIPAY, WECHAT, VISA_QR, MASTERCARD_QR, UNIONPAY_QR, SHOPEE_PAY_QR,
GRAB_PAY_QR, ALIPAY_PLUS_QR, DUIT_NOW_QR, PAY_NOW, UNKNOWN
}
}
interface AcceptanceRequest {
acptName?: string | null;
acptReference?: string | null;
extraParams?: Record<string, string> | null;
hostMessageFormat: HostMessageFormat;
primaryMid: string;
primaryTid?: string | null;
supportedPayments:
| (
| "VISA" | "MASTERCARD" | "UNIONPAY" | "AMEX" | "JCB" | "DISCOVER"
| "DINERS" | "MY_DEBIT" | "ALIPAY" | "WECHAT" | "VISA_QR"
| "MASTERCARD_QR" | "UNIONPAY_QR" | "SHOPEE_PAY_QR" | "GRAB_PAY_QR"
| "ALIPAY_PLUS_QR" | "DUIT_NOW_QR" | "PAY_NOW" | "UNKNOWN")[];
tags?: string[] | null;
}
data class CursorPaginated-BatchWithTranSummary(
val cursorEnding: String? = null,
val cursorStarting: String? = null,
val data: List<BatchWithTranSummary>,
val dataSize: Int,
val hasMore: Boolean,
val requestPath: String,
val requestSize: Int,
val totalSize: Int,
)
interface CursorPaginated-BatchWithTranSummary {
cursorEnding?: string | null;
cursorStarting?: string | null;
data: BatchWithTranSummary[];
dataSize: number; // int32
hasMore: boolean;
requestPath: string;
requestSize: number; // int32
totalSize: number; // int32
}
data class BatchWithTranSummary(
val acptId: String,
val batchId: String,
val batchMode: BatchMode? = null,
val batchNo: String,
val batchStatus: BatchStatus,
val batchSummary: BatchSummary,
val createdAt: String, // date-time
val currency: String,
val hostMessageFormat: HostMessageFormat,
val merchantName: String? = null,
val primaryMid: String,
val primaryTid: String,
val profileId: String,
val providerMchId: String? = null,
val tranSummaries: List<TranTypeSummary>,
val updatedAt: String? = null, // date-time
)
interface BatchWithTranSummary {
acptId: string;
batchId: string;
batchMode?: BatchMode | null;
batchNo: string;
batchStatus: BatchStatus;
batchSummary: BatchSummary;
createdAt: string; // date-time
currency: string;
hostMessageFormat: HostMessageFormat;
merchantName?: string | null;
primaryMid: string;
primaryTid: string;
profileId: string;
providerMchId?: string | null;
tranSummaries: TranTypeSummary[];
updatedAt?: string | null; // date-time
}
enum class BatchMode {
AUTO, MANUAL, NO_NEED, AGGREGATED, MERCHANT_MANUAL
}
type BatchMode =
| "AUTO" | "MANUAL" | "NO_NEED" | "AGGREGATED" | "MERCHANT_MANUAL";
enum class BatchStatus {
OPEN, SETTLED, SETTLE_FAILED, SETTLEMENT_IN_PROGRESS
}
type BatchStatus =
| "OPEN" | "SETTLED" | "SETTLE_FAILED" | "SETTLEMENT_IN_PROGRESS";
data class BatchSummary(
val currency: String,
val mchCreditCount: Int,
val mchCreditTotal: String,
val mchDebitCount: Int,
val mchDebitTotal: String,
)
interface BatchSummary {
currency: string;
mchCreditCount: number; // int32
mchCreditTotal: string;
mchDebitCount: number; // int32
mchDebitTotal: string;
}
data class TranTypeSummary(
val count: Int,
val paymentMethod: PaymentMethod? = null,
val total: Amount,
val tranStatus: TranStatus,
val tranType: TranType,
)
interface TranTypeSummary {
count: number; // int32
paymentMethod?: PaymentMethod | null;
total: Amount;
tranStatus: TranStatus;
tranType: TranType;
}
data class BatchesByProfile(
val batches: List<BatchWithTranSummary>,
val profileId: String,
)
interface BatchesByProfile {
batches: BatchWithTranSummary[];
profileId: string;
}
data class DefaultDeviceParamTyped(
val capkParams: List<CapkParam>,
val emvParams: List<EmvParam>,
val terminalParam: TerminalParam,
)
interface DefaultDeviceParamTyped {
capkParams: CapkParam[];
emvParams: EmvParam[];
terminalParam: TerminalParam;
}
typealias List-EmvParam = List<EmvParam>
type List-EmvParam = EmvParam[];
typealias List-CapkParam = List<CapkParam>
type List-CapkParam = CapkParam[];
data class Any()
interface Any {}
data class EnablerStatus(
val name: String,
val version: String,
)
interface EnablerStatus {
name: string;
version: string;
}