Glue Transaction Query 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.
data class ErrorResponse(
val status: Int,
val path: String,
val requestId: String,
val title: String,
val message: String,
)
interface ErrorResponse {
status: number; // int32
path: string;
requestId: string;
title: string;
message: string;
}
data class Amount(
/** Monetary value as string */
val value: String,
/** ISO alpha-3 currency code */
val currency: String,
)
interface Amount {
/** Monetary value as string */
value: string;
/** ISO alpha-3 currency code */
currency: string;
}
data class HistoryTree(
/** The transaction ID supplied in the request */
val selectedTransactionId: String,
/** false when the backend cannot guarantee the full historical hierarchy */
val treeComplete: Boolean,
val root: HistoryTreeNode,
)
interface HistoryTree {
/** The transaction ID supplied in the request */
selectedTransactionId: string;
/** false when the backend cannot guarantee the full historical hierarchy */
treeComplete: boolean;
root: HistoryTreeNode;
}
data class HistoryTreeNode(
val tranId: String,
/** Parent transaction ID; null for the root transaction */
val linkedTranId: String? = null,
val tranType: TranType,
val tranStatus: TranStatus,
val amount: Amount,
val createdAt: String, // date-time
val updatedAt: String? = null, // date-time
/** Child transactions, in backend order */
val children: List<HistoryTreeNode>,
)
interface HistoryTreeNode {
tranId: string;
/** Parent transaction ID; null for the root transaction */
linkedTranId?: string | null;
tranType: TranType;
tranStatus: TranStatus;
amount: Amount;
createdAt: string; // date-time
updatedAt?: string | null; // date-time
/** Child transactions, in backend order */
children: HistoryTreeNode[];
}
enum class TranType {
SALE, REFUND, AUTH, AUTH_COMP, DEFERRED_AUTH, INSTALL, CASH_IN, CASH_OUT
}
type TranType =
| "SALE" | "REFUND" | "AUTH" | "AUTH_COMP" | "DEFERRED_AUTH" | "INSTALL"
| "CASH_IN" | "CASH_OUT";
enum class TranStatus {
PROCESSING, APPROVED, DECLINED, VOIDED, REVERSED, AUTH_ONLY, ADJUSTED
}
type TranStatus =
| "PROCESSING" | "APPROVED" | "DECLINED" | "VOIDED" | "REVERSED"
| "AUTH_ONLY" | "ADJUSTED";
enum class PaymentMethod {
VISA, MASTERCARD, UNIONPAY, AMEX, JCB, DISCOVER, DINERS, MAESTRO, HIMYAN,
NAPS, MY_DEBIT, ELO, CPACE, NAPAS, TROY, TAKAPAY, SADEEQ, ALIPAY, WECHAT,
VISA_QR, MASTERCARD_QR, UNIONPAY_QR, SHOPEE_PAY_QR, GRAB_PAY_QR,
ALIPAY_PLUS_QR, DUIT_NOW_QR, PAY_NOW, PH_QR, JCB_EMV_QR, LINEPAY_QR,
EZ_PAY, PI_QR, ESUNWALLET_QR, TAIWANPAY_QR, EASYWALLET_QR, JKOPAY_QR,
IPASSMONEY_PAY_QR, ICASH_PAY_QR, PLUSPAY_QR, PXPAYPLUS_QR, GAMA_PAY_QR,
OPAY_QR, LINEPAYMONEY_QR, PAYPAY_QR, BCCARD_QR, NETS_QR, NTTDATA_QR, UCARD,
CUP, SMARTPAY, BONUSPAY_QR, CASHLEZ_QR, UNKNOWN
}
type PaymentMethod =
| "VISA" | "MASTERCARD" | "UNIONPAY" | "AMEX" | "JCB" | "DISCOVER"
| "DINERS" | "MAESTRO" | "HIMYAN" | "NAPS" | "MY_DEBIT" | "ELO" | "CPACE"
| "NAPAS" | "TROY" | "TAKAPAY" | "SADEEQ" | "ALIPAY" | "WECHAT"
| "VISA_QR" | "MASTERCARD_QR" | "UNIONPAY_QR" | "SHOPEE_PAY_QR"
| "GRAB_PAY_QR" | "ALIPAY_PLUS_QR" | "DUIT_NOW_QR" | "PAY_NOW" | "PH_QR"
| "JCB_EMV_QR" | "LINEPAY_QR" | "EZ_PAY" | "PI_QR" | "ESUNWALLET_QR"
| "TAIWANPAY_QR" | "EASYWALLET_QR" | "JKOPAY_QR" | "IPASSMONEY_PAY_QR"
| "ICASH_PAY_QR" | "PLUSPAY_QR" | "PXPAYPLUS_QR" | "GAMA_PAY_QR"
| "OPAY_QR" | "LINEPAYMONEY_QR" | "PAYPAY_QR" | "BCCARD_QR" | "NETS_QR"
| "NTTDATA_QR" | "UCARD" | "CUP" | "SMARTPAY" | "BONUSPAY_QR"
| "CASHLEZ_QR" | "UNKNOWN";
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 CvmPerformed {
NO_CVM, SIGNATURE, PIN, OFFLINE_PIN, CDCVM, PIN_BYPASSED
}
type CvmPerformed =
| "NO_CVM" | "SIGNATURE" | "PIN" | "OFFLINE_PIN" | "CDCVM"
| "PIN_BYPASSED";
enum class HostMessageFormat {
MOCK, MPGS_AP, CARD_NOW, TWOC2P, CARDWORKS, SHIFT4, SHIFT4_HD, PAY_STORE,
POMELO, EFT_PAY, EZPAY, BANKNBOX, IULINK, RAZER, WALLYT, GCAG, POSTBRIDGE,
RENDEZVOUS, STD_JSON, S2M_SELECT, VAULTSPAY, SMART_VISTA, SADAD, AIRWALLEX,
AIRWALLEX_EU, WORLDPAY, CASHPLUS, PSS, RAWBANK, NEOCASH, CASHLEZ, QRIS,
MASARAT, BONUSPAY, ALTO, AXS, CARDINFOLINK, BBL, ONERWAY, ACB, KEENU,
SELECT_STANDARD, SELECT_MANUAL_MODE, SELECT_AUTO_MODE, SELECT_V24_MODE,
STD_JSON_BSD, STD_JSON_YEDPAY
}
type HostMessageFormat =
| "MOCK" | "MPGS_AP" | "CARD_NOW" | "TWOC2P" | "CARDWORKS" | "SHIFT4"
| "SHIFT4_HD" | "PAY_STORE" | "POMELO" | "EFT_PAY" | "EZPAY" | "BANKNBOX"
| "IULINK" | "RAZER" | "WALLYT" | "GCAG" | "POSTBRIDGE" | "RENDEZVOUS"
| "STD_JSON" | "S2M_SELECT" | "VAULTSPAY" | "SMART_VISTA" | "SADAD"
| "AIRWALLEX" | "AIRWALLEX_EU" | "WORLDPAY" | "CASHPLUS" | "PSS"
| "RAWBANK" | "NEOCASH" | "CASHLEZ" | "QRIS" | "MASARAT" | "BONUSPAY"
| "ALTO" | "AXS" | "CARDINFOLINK" | "BBL" | "ONERWAY" | "ACB" | "KEENU"
| "SELECT_STANDARD" | "SELECT_MANUAL_MODE" | "SELECT_AUTO_MODE"
| "SELECT_V24_MODE" | "STD_JSON_BSD" | "STD_JSON_YEDPAY";
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";
enum class ActionStatus {
PROCESSING, SUCCESS, REJECTED, TIMEOUT, REVERSED, TO_BE_REVERSE
}
type ActionStatus =
| "PROCESSING" | "SUCCESS" | "REJECTED" | "TIMEOUT" | "REVERSED"
| "TO_BE_REVERSE";
enum class BatchStatus {
OPEN, SETTLED, SETTLE_FAILED, SETTLEMENT_IN_PROGRESS
}
type BatchStatus =
| "OPEN" | "SETTLED" | "SETTLE_FAILED" | "SETTLEMENT_IN_PROGRESS";
/** Geo-fence outcome decided by the caller (SRS/TMS) before the request reached Enabler */
enum class GeoResult {
NA, ALLOWED, FLAGGED, DENIED
}
/** Geo-fence outcome decided by the caller (SRS/TMS) before the request reached Enabler */
type GeoResult = "NA" | "ALLOWED" | "FLAGGED" | "DENIED";
/**
* The Installment Plan applied to a transaction. Plan-owned attributes come from the resolved
* MMS configuration
*/
data class Installment(
val planId: String,
/** The plan's display name at the time it was applied */
val planName: String,
val installmentCount: Int,
val interestModel: InterestModel,
val installmentType: InstallmentType,
val revolving: Revolving? = null,
/**
* Issuer/acquirer enrolment or approval reference, normalised from the authorisation response;
* absent if the host returned none
*/
val issuerPreapprovalReference: String? = null,
)
/**
* The Installment Plan applied to a transaction. Plan-owned attributes come from the resolved
* MMS configuration
*/
interface Installment {
planId: string;
/** The plan's display name at the time it was applied */
planName: string;
installmentCount: number; // int32
interestModel: InterestModel;
installmentType: InstallmentType;
revolving?: Revolving;
/**
* Issuer/acquirer enrolment or approval reference, normalised from the authorisation response;
* absent if the host returned none
*/
issuerPreapprovalReference?: string;
}
/** Backend-calculated flags for which derived operations a transaction currently permits */
data class AllowedActions(
val refund: Boolean? = null, // default false
val completion: Boolean? = null, // default false
val incrementalAuth: Boolean? = null, // default false
)
/** Backend-calculated flags for which derived operations a transaction currently permits */
interface AllowedActions {
refund?: boolean; // default false
completion?: boolean; // default false
incrementalAuth?: boolean; // default false
}
enum class InterestModel {
WITH_INTEREST, NO_INTEREST
}
type InterestModel = "WITH_INTEREST" | "NO_INTEREST";
enum class InstallmentType {
REGULAR, REVOLVING
}
type InstallmentType = "REGULAR" | "REVOLVING";
data class Revolving(
val initialPaymentAmount: Amount,
val remainingAmount: Amount,
)
interface Revolving {
initialPaymentAmount: Amount;
remainingAmount: Amount;
}
/** Transaction response */
data class Transaction(
val tranId: String,
val tranType: TranType,
val tranStatus: TranStatus,
val amount: Amount,
val paymentMethod: PaymentMethod,
val entryMode: EntryMode,
val accountMasked: String? = null,
val accountBin: String? = null,
val accountLast4: String? = null,
val issCountryCode: String? = null,
val cvmPerformed: CvmPerformed? = null,
val cvmSignatureUrl: String? = null,
val cvmSignatureBase64: String? = null,
val aid: String? = null,
val appName: String? = null,
val tc: String? = null,
val tvr: String? = null,
val tsi: String? = null,
val atc: String? = null,
val profileId: String,
/**
* Deprecated. Use acptId instead
* @deprecated
*/
val acceptanceId: String? = null,
val acptId: String,
val sdkId: String? = null,
val posReference: String? = null,
/** External order ID supplied by the integrator */
val extOrderId: String? = null,
val trace: String,
val description: String? = null,
val callbackUrl: String? = null,
/** Legacy count-only installment plan, superseded by installments */
val installmentPlan: Int? = null,
/** Installment applied to this SALE, if it was paid in installments */
val installments: Installment? = null,
val merchantName: String,
val merchantAddr: String,
val mcc: String,
val primaryMid: String,
val primaryTid: String,
val subMid: String? = null,
val subTid: String? = null,
val hostMessageFormat: HostMessageFormat,
val providerReference: String? = null,
val providerMchId: String? = null,
val isvId: String? = null,
val isvName: String? = null,
val shopId: String? = null,
val shopName: String? = null,
/** ID of the immediate parent transaction (e.g. the original sale for a refund) */
val linkedTranId: String? = null,
val linkedSrsTranId: String? = null,
/**
* True when at least one derived transaction points to this one. Absent when not evaluated
* (e.g. list responses)
*/
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 preferredAcceptanceTag: String? = null,
val extraData: String? = null,
val rrn: String? = null,
val approvalCode: String? = null,
val batchId: String,
val batchNo: String,
val actions: List<Action>,
val srsTranId: String? = null,
val consumerPaymentDevice: String? = null,
val geoResult: GeoResult? = null,
/** Device location snapshot captured when the geo-fence check ran; passed through verbatim */
val geoLocation: Map<String, Any?>? = null,
/** Identifier of the geo-fence rule the caller matched */
val geoId: String? = null,
val createdAt: String, // date-time
val updatedAt: String? = null, // date-time
)
/** Transaction response */
interface Transaction {
tranId: string;
tranType: TranType;
tranStatus: TranStatus;
amount: Amount;
paymentMethod: PaymentMethod;
entryMode: EntryMode;
accountMasked?: string;
accountBin?: string;
accountLast4?: string;
issCountryCode?: string;
cvmPerformed?: CvmPerformed;
cvmSignatureUrl?: string;
cvmSignatureBase64?: string;
aid?: string;
appName?: string;
tc?: string;
tvr?: string;
tsi?: string;
atc?: string;
profileId: string;
/**
* Deprecated. Use acptId instead
* @deprecated
*/
acceptanceId?: string;
acptId: string;
sdkId?: string;
posReference?: string;
/** External order ID supplied by the integrator */
extOrderId?: string;
trace: string;
description?: string;
callbackUrl?: string;
/** Legacy count-only installment plan, superseded by installments */
installmentPlan?: number; // integer
/** Installment applied to this SALE, if it was paid in installments */
installments?: Installment;
merchantName: string;
merchantAddr: string;
mcc: string;
primaryMid: string;
primaryTid: string;
subMid?: string;
subTid?: string;
hostMessageFormat: HostMessageFormat;
providerReference?: string;
providerMchId?: string;
isvId?: string;
isvName?: string;
shopId?: string;
shopName?: string;
/** ID of the immediate parent transaction (e.g. the original sale for a refund) */
linkedTranId?: string;
linkedSrsTranId?: string;
/**
* True when at least one derived transaction points to this one. Absent when not evaluated
* (e.g. list responses)
*/
hasChildren?: boolean;
refundedAmount?: Amount;
availableRefundAmount?: Amount;
completedAmount?: Amount;
availableCompletionAmount?: Amount;
allowedActions?: AllowedActions;
preferredAcceptanceTag?: string;
extraData?: string;
rrn?: string;
approvalCode?: string;
batchId: string;
batchNo: string;
actions: Action[];
srsTranId?: string;
consumerPaymentDevice?: string;
geoResult?: GeoResult;
/** Device location snapshot captured when the geo-fence check ran; passed through verbatim */
geoLocation?: Record<string, unknown>;
/** Identifier of the geo-fence rule the caller matched */
geoId?: string;
createdAt: string; // date-time
updatedAt?: string; // date-time
}
/** Transaction action */
data class Action(
val actionId: String,
val trace: String,
val actionType: ActionType,
val actionStatus: ActionStatus,
val requestId: String,
val amount: Amount? = null,
val tranId: String? = null,
val reason: String? = null,
val hostRespCode: String? = null,
val hostRespMessage: String? = null,
val posReference: String? = null,
val extraData: String? = null,
val hostRespExtra: Map<String, Any?>? = null,
val geoResult: GeoResult? = null,
/** Device location snapshot captured when the geo-fence check ran; passed through verbatim */
val geoLocation: Map<String, Any?>? = null,
/** Identifier of the geo-fence rule the caller matched */
val geoId: String? = null,
val createdAt: String, // date-time
val updatedAt: String? = null, // date-time
)
/** Transaction action */
interface Action {
actionId: string;
trace: string;
actionType: ActionType;
actionStatus: ActionStatus;
requestId: string;
amount?: Amount;
tranId?: string;
reason?: string;
hostRespCode?: string;
hostRespMessage?: string;
posReference?: string;
extraData?: string;
hostRespExtra?: Record<string, unknown>;
geoResult?: GeoResult;
/** Device location snapshot captured when the geo-fence check ran; passed through verbatim */
geoLocation?: Record<string, unknown>;
/** Identifier of the geo-fence rule the caller matched */
geoId?: string;
createdAt: string; // date-time
updatedAt?: string; // date-time
}
/**
* Lightweight transaction view returned by the transaction list endpoint. Does not include the
* actions list, merchantAddr, callbackUrl, extraData, or preferredAcceptanceTag found on the
* full Transaction object.
*/
data class TransactionExtract(
val tranId: String,
val tranType: TranType,
val tranStatus: TranStatus,
val amount: Amount,
val paymentMethod: PaymentMethod,
val entryMode: EntryMode,
val accountBin: String? = null,
val accountLast4: String? = null,
val cvmPerformed: CvmPerformed,
val mcc: String? = null,
val sdkId: String? = null,
val posReference: String? = null,
/** External order ID supplied by the integrator */
val extOrderId: String? = null,
val description: String? = null,
val trace: String,
val merchantName: String,
val primaryMid: String,
val primaryTid: String,
val subMid: String? = null,
val subTid: String? = null,
val hostMessageFormat: HostMessageFormat,
val providerReference: String? = null,
val providerMchId: String? = null,
val isvId: String? = null,
val isvName: String? = null,
val shopId: String? = null,
val shopName: String? = null,
val profileId: String,
val acptId: String,
/** ID of the immediate parent transaction (e.g. the original sale for a refund) */
val linkedTranId: String? = null,
val linkedSrsTranId: String? = null,
/** Legacy count-only installment plan, superseded by installments */
val installmentPlan: Int? = null,
/** Installment applied to this SALE, if it was paid in installments */
val installments: Installment? = null,
val rrn: String? = null,
val approvalCode: String? = null,
val batchNo: String,
val batchId: String,
val batchStatus: BatchStatus? = null,
val srsTranId: String? = null,
val consumerPaymentDevice: String? = null,
val accountMasked: String? = null,
val issCountryCode: String? = null,
val aid: String? = null,
val appName: String? = null,
val tc: String? = null,
val tvr: String? = null,
val tsi: String? = null,
val atc: String? = null,
val cvmSignatureUrl: String? = null,
val hostRespExtra: Map<String, Any?>? = null,
val refundedAmount: Amount? = null,
val availableRefundAmount: Amount? = null,
val completedAmount: Amount? = null,
val availableCompletionAmount: Amount? = null,
val allowedActions: AllowedActions? = null,
val createdAt: String, // date-time
val updatedAt: String? = null, // date-time
/**
* Pagination cursor for this item, equal to tranId. Use as the value of
* startingAfter/endingBefore to fetch the adjacent page.
*/
val cursor: String,
)
/**
* Lightweight transaction view returned by the transaction list endpoint. Does not include the
* actions list, merchantAddr, callbackUrl, extraData, or preferredAcceptanceTag found on the
* full Transaction object.
*/
interface TransactionExtract {
tranId: string;
tranType: TranType;
tranStatus: TranStatus;
amount: Amount;
paymentMethod: PaymentMethod;
entryMode: EntryMode;
accountBin?: string;
accountLast4?: string;
cvmPerformed: CvmPerformed;
mcc?: string;
sdkId?: string;
posReference?: string;
/** External order ID supplied by the integrator */
extOrderId?: string;
description?: string;
trace: string;
merchantName: string;
primaryMid: string;
primaryTid: string;
subMid?: string;
subTid?: string;
hostMessageFormat: HostMessageFormat;
providerReference?: string;
providerMchId?: string;
isvId?: string;
isvName?: string;
shopId?: string;
shopName?: string;
profileId: string;
acptId: string;
/** ID of the immediate parent transaction (e.g. the original sale for a refund) */
linkedTranId?: string;
linkedSrsTranId?: string;
/** Legacy count-only installment plan, superseded by installments */
installmentPlan?: number; // integer
/** Installment applied to this SALE, if it was paid in installments */
installments?: Installment;
rrn?: string;
approvalCode?: string;
batchNo: string;
batchId: string;
batchStatus?: BatchStatus;
srsTranId?: string;
consumerPaymentDevice?: string;
accountMasked?: string;
issCountryCode?: string;
aid?: string;
appName?: string;
tc?: string;
tvr?: string;
tsi?: string;
atc?: string;
cvmSignatureUrl?: string;
hostRespExtra?: Record<string, unknown>;
refundedAmount?: Amount;
availableRefundAmount?: Amount;
completedAmount?: Amount;
availableCompletionAmount?: Amount;
allowedActions?: AllowedActions;
createdAt: string; // date-time
updatedAt?: string; // date-time
/**
* Pagination cursor for this item, equal to tranId. Use as the value of
* startingAfter/endingBefore to fetch the adjacent page.
*/
cursor: string;
}
/** Cursor-paginated list of transactions */
data class CursorPaginatedTransactionExtract(
/** Whether more results exist beyond this page */
val hasMore: Boolean,
/** The request path including query parameters, as echoed back by the server */
val requestPath: String,
/** The requested page size (limit) */
val requestSize: Int,
/** The number of items actually returned in this page */
val dataSize: Int,
/** Total number of matching transactions across all pages */
val totalSize: Int,
/**
* The cursor (tranId) of the first item in this page. Pass as startingAfter to fetch the next
* page.
*/
val cursorStarting: String? = null,
/**
* The cursor (tranId) of the last item in this page. Pass as endingBefore to fetch the
* previous page.
*/
val cursorEnding: String? = null,
val data: List<TransactionExtract>,
)
/** Cursor-paginated list of transactions */
interface CursorPaginatedTransactionExtract {
/** Whether more results exist beyond this page */
hasMore: boolean;
/** The request path including query parameters, as echoed back by the server */
requestPath: string;
/** The requested page size (limit) */
requestSize: number; // integer
/** The number of items actually returned in this page */
dataSize: number; // integer
/** Total number of matching transactions across all pages */
totalSize: number; // integer
/**
* The cursor (tranId) of the first item in this page. Pass as startingAfter to fetch the next
* page.
*/
cursorStarting?: string | null;
/**
* The cursor (tranId) of the last item in this page. Pass as endingBefore to fetch the
* previous page.
*/
cursorEnding?: string | null;
data: TransactionExtract[];
}