OID value: 2.23.42.6.2
OID description:
SetPayMsgs
{ joint-iso-itu-t(2) internationalRA(23) set(42) module(6) 2 }
DEFINITIONS IMPLICIT TAGS ::= BEGIN
--
-- This module defines types for SET protocol payment messages.
--
-- EXPORTS All;
IMPORTS
SETString {}
FROM SetAttribute
EXTENSION
FROM SetCertificateExtensions
BackKeyData, BIN, BrandCRLIdentifier, BrandID,
CertThumb, Challenge, Currency, Date, Language, LocalID,
Location, MerchantID, MsgExtensions {}, Nonce, PANData, PANToken,
Phone, RRPID, Secret, SWIdent, Thumbs, TransIDs, URL, XID
FROM SetMessage
C, DD {},
Enc {}, EncB {}, EncBX {}, EncK{}, EncX {}, EX {},
EXH {}, HMAC {}, L {}, M, P, P1, P2, S {}, SO {}
FROM SetPKCS7Plus
CommercialCardData, MarketAutoCap, MarketHotelCap, MarketTransportCap,
ub-reference
FROM SetMarketData;
-- Purchase Initialization Pair
PInitReq ::= SEQUENCE { -- Purchase Initialization Request
rrpid RRPID,
language Language,
localID-C LocalID,
localID-M [0] LocalID OPTIONAL,
chall-C Challenge,
brandID BrandID,
bin BIN,
thumbs [1] EXPLICIT Thumbs OPTIONAL,
piRqExtensions [2] MsgExtensions {{PIRqExtensionsIOS}} OPTIONAL
}
PIRqExtensionsIOS EXTENSION ::= { ... }
PInitRes ::= S { M, PInitResData }
PInitResData ::= SEQUENCE {
transIDs TransIDs,
rrpid RRPID,
chall-C Challenge,
chall-M Challenge,
brandCRLIdentifier [0] EXPLICIT BrandCRLIdentifier OPTIONAL,
peThumb [1] EXPLICIT CertThumb,
thumbs [2] EXPLICIT Thumbs OPTIONAL,
piRsExtensions [3] MsgExtensions {{PIRsExtensionsIOS}} OPTIONAL
}
PIRsExtensionsIOS EXTENSION ::= { ... }
-- Purchase Pair
PReq ::= CHOICE {
pReqDualSigned [0] EXPLICIT PReqDualSigned,
pReqUnsigned [1] EXPLICIT PReqUnsigned
}
-- Signed components used by a cardholder with a certificate
PReqDualSigned ::= SEQUENCE {
piDualSigned PIDualSigned,
oiDualSigned OIDualSigned
}
PIDualSigned ::= SEQUENCE {
piSignature PISignature,
exPIData EX { P, PI-OILink, PANData }
}
-- Intermediate results of EX
PIDualSignedTBE ::= L { PI-OILink, PANData }
PI-OILink ::= L { PIHead, OIData }
OIDualSigned ::= L { OIData, PIData }
PISignature ::= SO { C, PI-TBS }
PI-TBS ::= SEQUENCE {
hPIData HPIData,
hOIData HOIData
}
HPIData ::= DD { PIData } -- PKCS#7 DigestedData
HOIData ::= DD { OIData } -- PKCS#7 DigestedData
PI ::= CHOICE {
piUnsigned [0] EXPLICIT PIUnsigned,
piDualSigned [1] EXPLICIT PIDualSigned,
authToken [2] EXPLICIT AuthToken
}
PIData ::= SEQUENCE {
piHead PIHead,
panData PANData
}
PIHead ::= SEQUENCE {
transIDs TransIDs,
inputs Inputs,
merchantID MerchantID,
installRecurData [0] InstallRecurData OPTIONAL,
transStain TransStain,
swIdent SWIdent,
acqBackKeyData [1] EXPLICIT BackKeyData OPTIONAL,
piExtensions [2] MsgExtensions {{PIExtensionsIOS}} OPTIONAL
}
PIExtensionsIOS EXTENSION ::= { ... }
Inputs ::= SEQUENCE {
hod HOD,
purchAmt CurrencyAmount
}
TransStain ::= HMAC { XID, Secret }
OIData ::= SEQUENCE { -- Order Information Data
transIDs TransIDs,
rrpid RRPID,
chall-C Challenge,
hod HOD,
odSalt Nonce,
chall-M Challenge OPTIONAL,
brandID BrandID,
bin BIN,
odExtOIDs [0] OIDList OPTIONAL,
oiExtensions [1] MsgExtensions {{OIExtensionsIOS}} OPTIONAL
}
OIExtensionsIOS EXTENSION ::= { ... }
OIDList ::= SEQUENCE OF OBJECT IDENTIFIER
HOD ::= DD { HODInput }
HODInput ::= SEQUENCE {
od OD,
purchAmt CurrencyAmount,
odSalt Nonce,
installRecurData [0] InstallRecurData OPTIONAL,
odExtensions [1] MsgExtensions {{ODExtensionsIOS}} OPTIONAL
}
ODExtensionsIOS EXTENSION ::= { ... }
OD ::= OCTET STRING -- Order description
-- Unsigned components used by a cardholder without a certificate
PReqUnsigned ::= SEQUENCE { -- Sent by cardholders without certificates
piUnsigned PIUnsigned,
oiUnsigned OIUnsigned
}
OIUnsigned ::= L { OIData, PIDataUnsigned }
PIDataUnsigned ::= SEQUENCE {
piHead PIHead,
panToken PANToken
}
PIUnsigned ::= EXH { P, PI-OILink, PANToken }
-- Intermediate results of EXH
PIUnsignedTBE ::= L { PI-OILink, PANToken }
PRes ::= S { M, PResData }
PResData ::= SEQUENCE {
transIDs TransIDs,
rrpid RRPID,
chall-C Challenge,
brandCRLIdentifier [0] EXPLICIT BrandCRLIdentifier OPTIONAL,
pResPayloadSeq PResPayloadSeq
}
PResPayloadSeq ::= SEQUENCE SIZE(1..MAX) OF PResPayload
PResPayload ::= SEQUENCE {
completionCode CompletionCode,
results Results OPTIONAL,
pRsExtensions [0] MsgExtensions {{PRsExtensionsIOS}} OPTIONAL
}
PRsExtensionsIOS EXTENSION ::= { ... }
CompletionCode ::= ENUMERATED {
meaninglessRatio (0), -- PurchAmt = 0; ratio cannot be computed
orderRejected (1), -- Merchant cannot process order
orderReceived (2), -- No processing to report
orderNotReceived (3), -- InqReq received without PReq
authorizationPerformed (4), -- See AuthStatus for details
capturePerformed (5), -- See CapStatus for details
creditPerformed (6) -- See CreditStatus for details
}
Results ::= SEQUENCE {
acqCardMsg [0] EXPLICIT AcqCardMsg OPTIONAL,
authStatus [1] AuthStatus OPTIONAL,
capStatus [2] CapStatus OPTIONAL,
credStatusSeq [3] CreditStatusSeq OPTIONAL
}
AuthStatus ::= SEQUENCE {
authDate Date,
authCode AuthCode,
authRatio FloatingPoint,
currConv [0] CurrConv OPTIONAL
}
CapStatus ::= SEQUENCE {
capDate Date,
capCode CapCode,
capRatio FloatingPoint
}
CreditStatusSeq ::= SEQUENCE SIZE(1..MAX) OF CreditStatus
CreditStatus ::= SEQUENCE {
creditDate Date,
creditCode CapRevOrCredCode,
creditRatio FloatingPoint
}
-- Purchase Inquiry Pair
InqReq ::= CHOICE {
inqReqSigned [0] EXPLICIT InqReqSigned,
inqReqUnsigned [1] EXPLICIT InqReqData
}
InqReqSigned ::= S { C, InqReqData }
InqReqData ::= SEQUENCE { -- Signed by cardholder, if signed
transIDs TransIDs,
rrpid RRPID,
chall-C2 Challenge,
inqRqExtensions [0] MsgExtensions {{InqRqExtensionsIOS}} OPTIONAL
}
InqRqExtensionsIOS EXTENSION ::= { ... }
InqRes ::= PRes
-- Authorization Pair
AuthReq ::= EncB { M, P, AuthReqData, PI }
-- Intermediate results of EncB
AuthReqTBE ::= S { M, AuthReqTBS }
AuthReqTBS ::= L { AuthReqData, PI }
AuthReqData ::= SEQUENCE {
authReqItem AuthReqItem,
mThumbs [0] EXPLICIT Thumbs OPTIONAL,
captureNow BOOLEAN DEFAULT FALSE,
saleDetail [1] SaleDetail OPTIONAL
} ( WITH COMPONENTS {..., captureNow (TRUE) } |
WITH COMPONENTS {..., captureNow (FALSE), saleDetail ABSENT } )
AuthReqItem ::= SEQUENCE {
authTags AuthTags,
checkDigests [0] CheckDigests OPTIONAL,
authReqPayload AuthReqPayload
}
AuthTags ::= SEQUENCE {
authRRTags RRTags,
transIDs TransIDs,
authRetNum AuthRetNum OPTIONAL
}
CheckDigests ::= SEQUENCE {
hOIData HOIData,
hod2 HOD
}
AuthReqPayload ::= SEQUENCE {
subsequentAuthInd BOOLEAN DEFAULT FALSE,
authReqAmt CurrencyAmount, -- May differ from PurchAmt
avsData [0] AVSData OPTIONAL,
specialProcessing [1] SpecialProcessing OPTIONAL,
cardSuspect [2] CardSuspect OPTIONAL,
requestCardTypeInd BOOLEAN DEFAULT FALSE,
installRecurData [3] InstallRecurData OPTIONAL,
marketSpecAuthData [4] EXPLICIT MarketSpecAuthData OPTIONAL,
merchData MerchData,
aRqExtensions [5] MsgExtensions {{ARqExtensionsIOS}} OPTIONAL
}
ARqExtensionsIOS EXTENSION ::= { ... }
AVSData ::= SEQUENCE {
streetAddress SETString { ub-AVSData } OPTIONAL,
location Location
}
SpecialProcessing ::= ENUMERATED {
directMarketing (0),
preferredCustomer (1)
}
CardSuspect ::= ENUMERATED { -- Indicates merchant suspects cardholder
--
-- Specific values indicate why the merchant is suspicious
--
unspecifiedReason (0) -- Either the merchant does not differentiate
-- reasons for suspicion, or the specific
-- reason does not appear in the list
}
MerchData ::= SEQUENCE {
merchCatCode MerchCatCode OPTIONAL,
merchGroup MerchGroup OPTIONAL
}
MerchCatCode ::= NumericString (SIZE(ub-merType)) -- ANSI X9.10
-- Merchant Category Code (MCCs) are assigned by acquirer to
-- describe the merchant's product, service or type of business
MerchGroup ::= ENUMERATED {
commercialTravel (1),
lodging (2),
automobileRental (3),
restaurant (4),
medical (5),
mailOrPhoneOrder (6),
riskyPurchase (7),
other (8)
}
AuthRes ::= CHOICE {
encB [0] EXPLICIT EncB { P, M, AuthResData, AuthResBaggage },
encBX [1] EXPLICIT EncBX { P, M, AuthResData, AuthResBaggage, PANToken }
}
-- Intermediate results of EncB and EncBX
AuthResTBE ::= S { P, AuthResTBS }
AuthResTBEX ::= SEQUENCE {
authResTBS AuthResTBS,
s SO { P, AuthResTBSX }
}
AuthResTBS ::= L { AuthResData, AuthResBaggage}
AuthResTBSX ::= SEQUENCE {
authResTBS AuthResTBS,
panToken PANToken
}
AuthResData ::= SEQUENCE {
authTags AuthTags,
brandCRLIdentifier [0] EXPLICIT BrandCRLIdentifier OPTIONAL,
peThumb [1] EXPLICIT CertThumb OPTIONAL,
authResPayload AuthResPayload
}
AuthResBaggage ::= SEQUENCE {
capToken [0] EXPLICIT CapToken OPTIONAL,
acqCardMsg [1] EXPLICIT AcqCardMsg OPTIONAL,
authToken [2] EXPLICIT AuthToken OPTIONAL
}
AcqBackKey ::= BackKeyData
AcqCardMsg ::= EncK { AcqBackKey, P, AcqCardCodeMsg }
-- Intermediate result of EncK
AcqCardCodeMsgTBE ::= S { P, AcqCardCodeMsg }
AcqCardCodeMsg ::= SEQUENCE {
acqCardCode AcqCardCode,
acqCardMsgData AcqCardMsgData
}
AcqCardCode ::= ENUMERATED {
messageOfDay (0),
accountInfo (1),
callCustomerService (2)
}
AcqCardMsgData ::= SEQUENCE {
acqCardText [0] EXPLICIT SETString { ub-acqCardText } OPTIONAL,
acqCardURL [1] URL OPTIONAL,
acqCardPhone [2] EXPLICIT SETString { ub-acqCardPhone } OPTIONAL
}
AuthResPayload ::= SEQUENCE {
authHeader AuthHeader,
capResPayload CapResPayload OPTIONAL,
aRsExtensions [0] MsgExtensions {{ARsExtensionsIOS}} OPTIONAL
}
ARsExtensionsIOS EXTENSION ::= { ... }
AuthHeader ::= SEQUENCE {
authAmt CurrencyAmount,
authCode AuthCode,
responseData ResponseData,
batchStatus [0] BatchStatus OPTIONAL,
currConv CurrConv OPTIONAL -- Merchant to cardholder
}
AuthCode ::= ENUMERATED {
approved ( 0),
unspecifiedFailure ( 1),
declined ( 2),
noReply ( 3),
callIssuer ( 4),
amountError ( 5),
expiredCard ( 6),
invalidTransaction ( 7),
systemError ( 8),
piPreviouslyUsed ( 9),
recurringTooSoon (10),
recurringExpired (11),
piAuthMismatch (12),
installRecurMismatch (13),
captureNotSupported (14),
signatureRequired (15),
cardMerchBrandMismatch (16)
}
ResponseData ::= SEQUENCE {
authValCodes [0] AuthValCodes OPTIONAL,
respReason [1] RespReason OPTIONAL,
cardType CardType OPTIONAL,
avsResult [2] AVSResult OPTIONAL,
logRefID LogRefID OPTIONAL
}
AuthValCodes ::= SEQUENCE {
approvalCode [0] ApprovalCode OPTIONAL,
authCharInd [1] AuthCharInd OPTIONAL,
validationCode [2] ValidationCode OPTIONAL,
marketSpec MarketSpecDataID OPTIONAL
}
RespReason ::= ENUMERATED {
issuer (0),
standInTimeOut (1),
standInFloorLimit (2),
standInSuppressInquiries (3),
standInIssuerUnavailable (4),
standInIssuerRequest (5)
}
CardType ::= ENUMERATED {
unavailable ( 0),
classic ( 1),
gold ( 2),
platinum ( 3),
premier ( 4),
debit ( 5),
pinBasedDebit ( 6),
atm ( 7),
electronicOnly ( 8),
unspecifiedConsumer ( 9),
corporateTravel (10),
purchasing (11),
business (12),
unspecifiedCommercial (13),
privateLabel (14),
proprietary (15)
}
AVSResult ::= ENUMERATED {
resultUnavailable (0),
noMatch (1),
addressMatchOnly (2),
postalCodeMatchOnly (3),
fullMatch (4)
}
LogRefID ::= NumericString (SIZE(1..ub-logRefID))
ApprovalCode ::= VisibleString (SIZE(ub-approvalCode))
AuthCharInd ::= ENUMERATED {
directMarketing (0),
recurringPayment (1),
addressVerification (2),
preferredCustomer (3),
incrementalAuth (4)
}
ValidationCode ::= VisibleString (SIZE(ub-validationCode))
-- Auth Reversal Pair
AuthRevReq ::= EncB { M, P, AuthRevReqData, AuthRevReqBaggage }
-- Intermediate results of EncB
AuthRevReqTBE ::= S { M, AuthRevReqTBS }
AuthRevReqTBS ::= L { AuthRevReqData, AuthRevReqBaggage }
AuthRevReqData ::= SEQUENCE {
authRevTags AuthRevTags,
mThumbs [0] EXPLICIT Thumbs OPTIONAL,
authReqData [1] AuthReqData OPTIONAL,
authResPayload [2] AuthResPayload OPTIONAL,
authNewAmt CurrencyAmount,
aRvRqExtensions [3] MsgExtensions {{ARvRqExtensionsIOS}} OPTIONAL
}
ARvRqExtensionsIOS EXTENSION ::= { ... }
AuthRevReqBaggage ::= SEQUENCE {
pi PI,
capToken CapToken OPTIONAL
}
AuthRevTags ::= SEQUENCE {
authRevRRTags AuthRevRRTags,
authRetNum AuthRetNum OPTIONAL
}
AuthRevRRTags ::= RRTags
AuthRetNum ::= INTEGER (0..MAX)
AuthRevRes ::= CHOICE {
encB [0] EXPLICIT EncB { P, M, AuthRevResData, AuthRevResBaggage },
enc [1] EXPLICIT Enc { P, M, AuthRevResData }
}
-- Intermediate results of Enc and EncB
AuthRevResTBE ::= S { P, AuthRevResData }
AuthRevResTBEB ::= S { P, AuthRevResTBS }
AuthRevResTBS ::= L { AuthRevResData, AuthRevResBaggage }
AuthRevResBaggage ::= SEQUENCE {
capTokenNew CapToken OPTIONAL,
authTokenNew AuthToken OPTIONAL
}
AuthRevResData ::= SEQUENCE {
authRevCode AuthRevCode,
authRevTags AuthRevTags,
brandCRLIdentifier [0] EXPLICIT BrandCRLIdentifier OPTIONAL,
peThumb [1] EXPLICIT CertThumb OPTIONAL,
authNewAmt CurrencyAmount, -- May be zero
authResDataNew AuthResDataNew,
aRvRsExtensions [2] MsgExtensions {{ARvRsExtensionsIOS}} OPTIONAL
}
ARvRsExtensionsIOS EXTENSION ::= { ... }
AuthRevCode ::= ENUMERATED {
approved ( 0),
unspecifiedFailure ( 1),
noReply ( 2),
amountError ( 3),
expiredCard ( 4),
invalidTransaction ( 5),
systemError ( 6),
missingCapToken ( 7),
invalidCapToken ( 8),
invalidAmount ( 9)
}
AuthResDataNew ::= SEQUENCE {
transIDs TransIDs,
authResPayloadNew AuthResPayload OPTIONAL -- Contains new data
}
-- Capture Pair
CapReq ::= CHOICE {
encB [0] EXPLICIT EncB { M, P, CapReqData, CapTokenSeq },
encBX [1] EXPLICIT EncBX { M, P, CapReqData, CapTokenSeq, PANToken }
}
-- Intermediate results of EncB and EncBX
CapReqTBE ::= S { M, CapReqTBS }
CapReqTBEX ::= SEQUENCE {
capReqTBS CapReqTBS,
s SO { M, CapReqTBSX }
}
CapReqTBS ::= L { CapReqData, CapTokenSeq }
CapReqTBSX ::= SEQUENCE {
capReqTBS CapReqTBS,
panToken PANToken
}
CapReqData ::= SEQUENCE {
capRRTags CapRRTags,
mThumbs [0] EXPLICIT Thumbs OPTIONAL,
capItemSeq CapItemSeq,
cRqExtensions [1] MsgExtensions {{CRqExtensionsIOS}} OPTIONAL
}
CRqExtensionsIOS EXTENSION ::= { ... }
CapRRTags ::= RRTags
CapItemSeq ::= SEQUENCE SIZE(1..MAX) OF CapItem
CapItem ::= SEQUENCE {
transIDs TransIDs,
authRRPID RRPID,
capPayload CapPayload
}
CapPayload ::= SEQUENCE {
capDate Date,
capReqAmt CurrencyAmount,
authReqItem [0] AuthReqItem OPTIONAL,
authResPayload [1] AuthResPayload OPTIONAL,
saleDetail [2] SaleDetail OPTIONAL,
cPayExtensions [3] MsgExtensions {{CPayExtensionsIOS}} OPTIONAL
}
CPayExtensionsIOS EXTENSION ::= { ... }
CapRes ::= Enc { P, M, CapResData }
-- Intermediate results of Enc
CapResTBE ::= S { P, CapResData }
CapResData ::= SEQUENCE {
capRRTags CapRRTags,
brandCRLIdentifier [0] EXPLICIT BrandCRLIdentifier OPTIONAL,
peThumb [1] EXPLICIT CertThumb OPTIONAL,
batchStatusSeq [2] BatchStatusSeq OPTIONAL,
capResItemSeq CapResItemSeq,
cRsExtensions [3] MsgExtensions {{CRsExtensionsIOS}} OPTIONAL
}
CRsExtensionsIOS EXTENSION ::= { ... }
CapResItemSeq ::= SEQUENCE SIZE(1..MAX) OF CapResItem
CapResItem ::= SEQUENCE {
transIDs TransIDs,
authRRPID RRPID,
capResPayload CapResPayload
}
CapResPayload ::= SEQUENCE {
capCode CapCode,
capAmt CurrencyAmount,
batchID [0] BatchID OPTIONAL,
batchSequenceNum [1] BatchSequenceNum OPTIONAL,
cRsPayExtensions [2] MsgExtensions {{CRsPayExtensionsIOS}} OPTIONAL
}
CRsPayExtensionsIOS EXTENSION ::= { ... }
CapCode ::= ENUMERATED {
success (0),
unspecifiedFailure (1),
duplicateRequest (2),
authExpired (3),
authDataMissing (4),
invalidAuthData (5),
capTokenMissing (6),
invalidCapToken (7),
batchUnknown (8),
batchClosed (9),
unknownXID (10),
unknownLID (11)
}
-- Capture Reversal Or Credit
CapRevOrCredReqData ::= SEQUENCE {
capRevOrCredRRTags RRTags,
mThumbs [0] EXPLICIT Thumbs OPTIONAL,
capRevOrCredReqItemSeq CapRevOrCredReqItemSeq,
cRvRqExtensions [1] MsgExtensions {{CRvRqExtensionsIOS}} OPTIONAL
}
CRvRqExtensionsIOS EXTENSION ::= { ... }
CapRevOrCredReqItemSeq ::= SEQUENCE SIZE(1..MAX) OF CapRevOrCredReqItem
CapRevOrCredReqItem ::= SEQUENCE {
transIDs TransIDs,
authRRPID RRPID,
capPayload CapPayload,
newBatchID [0] BatchID OPTIONAL,
capRevOrCredReqDate Date,
capRevOrCredReqAmt [1] CurrencyAmount OPTIONAL,
newAccountInd BOOLEAN DEFAULT FALSE,
cRvRqItemExtensions [2] MsgExtensions {{CRvRqItemExtensionsIOS}} OPTIONAL
}
CRvRqItemExtensionsIOS EXTENSION ::= { ... }
CapRevOrCredResData ::= SEQUENCE {
capRevOrCredRRTags RRTags,
brandCRLIdentifier [0] EXPLICIT BrandCRLIdentifier OPTIONAL,
peThumb [1] EXPLICIT CertThumb OPTIONAL,
batchStatusSeq [2] BatchStatusSeq OPTIONAL,
capRevOrCredResItemSeq CapRevOrCredResItemSeq,
cRvRsExtensions [3] MsgExtensions {{CRvRsExtensionsIOS}} OPTIONAL
}
CRvRsExtensionsIOS EXTENSION ::= { ... }
CapRevOrCredResItemSeq ::= SEQUENCE SIZE(1..MAX) OF CapRevOrCredResItem
CapRevOrCredResItem ::= SEQUENCE {
transIDs TransIDs,
authRRPID RRPID,
capRevOrCredResPayload CapRevOrCredResPayload
}
CapRevOrCredResPayload ::= SEQUENCE {
capRevOrCredCode CapRevOrCredCode,
capRevOrCredActualAmt CurrencyAmount,
batchID [0] BatchID OPTIONAL,
batchSequenceNum [1] BatchSequenceNum OPTIONAL,
cRvRsPayExtensions [2] MsgExtensions {{CRvRsPayExtensionsIOS}} OPTIONAL
}
CRvRsPayExtensionsIOS EXTENSION ::= { ... }
CapRevOrCredCode ::= ENUMERATED {
success (0),
unspecifiedFailure (1),
duplicateRequest (2),
originalProcessed (3),
originalNotFound (4),
capPurged (5),
capDataMismatch (6),
missingCapData (7),
missingCapToken (8),
invalidCapToken (9),
batchUnknown (10),
batchClosed (11)
}
-- Capture Reversal Pair
CapRevReq ::= CHOICE {
encB [0] EXPLICIT EncB { M, P, CapRevData, CapTokenSeq },
encBX [1] EXPLICIT EncBX { M, P, CapRevData, CapTokenSeq, PANToken }
}
-- Intermediate results of EncB and EncBX
CapRevReqTBE ::= S { M, CapRevReqTBS }
CapRevReqTBEX ::= SEQUENCE {
capRevReqTBS CapRevReqTBS,
s SO { M, CapRevReqTBSX }
}
CapRevReqTBS ::= L { CapRevData, CapTokenSeq }
CapRevReqTBSX ::= SEQUENCE {
capRevReqTBS CapRevReqTBS,
panToken PANToken
}
CapRevData ::= [0] EXPLICIT CapRevOrCredReqData
CapRevRes ::= Enc { P, M, CapRevResData }
-- Intermediate results of Enc
CapRevResTBE ::= S { P, CapRevResData }
CapRevResData ::= [0] EXPLICIT CapRevOrCredResData
-- Credit Pair
CredReq ::= CHOICE {
encB [0] EXPLICIT EncB { M, P, CredReqData, CapTokenSeq },
encBX [1] EXPLICIT EncBX { M, P, CredReqData, CapTokenSeq, PANToken }
}
-- Intermediate results of EncB and EncBX
CredReqTBE ::= S { M, CredReqTBS }
CredReqTBEX ::= SEQUENCE {
credReqTBS CredReqTBS,
s SO { M, CredReqTBSX }
}
CredReqTBS ::= L { CredReqData, CapTokenSeq }
CredReqTBSX ::= SEQUENCE {
credReqTBS CredReqTBS,
panToken PANToken
}
CredReqData ::= [1] EXPLICIT CapRevOrCredReqData
CredRes ::= Enc { P, M, CredResData }
-- Intermediate results of Enc
CredResTBE ::= S { P, CredResData }
CredResData ::= [1] EXPLICIT CapRevOrCredResData
-- Credit Reversal Pair
CredRevReq ::= CHOICE {
encB [0] EXPLICIT EncB { M, P, CredRevReqData, CapTokenSeq },
encBX [1] EXPLICIT EncBX { M, P, CredRevReqData, CapTokenSeq, PANToken }
}
-- Intermediate results of EncB and EncBX
CredRevReqTBE ::= S { M, CredRevReqTBS }
CredRevReqTBEX ::= SEQUENCE {
credRevReqTBS CredRevReqTBS,
s SO { M, CredRevReqTBSX }
}
CredRevReqTBS ::= L { CredRevReqData, CapTokenSeq }
CredRevReqTBSX ::= SEQUENCE {
credRevReqTBS CredRevReqTBS,
panToken PANToken
}
CredRevReqData ::= [2] EXPLICIT CapRevOrCredReqData
CredRevRes ::= Enc { P, M, CredRevResData }
-- Intermediate results of Enc
CredRevResTBE ::= S { P, CredRevResData }
CredRevResData ::= [2] EXPLICIT CapRevOrCredResData
-- Payment Gateway Certificate Request Pair
PCertReq ::= S { M, PCertReqData }
PCertReqData ::= SEQUENCE {
pCertRRTags RRTags,
mThumbs [0] EXPLICIT Thumbs OPTIONAL,
brandAndBINSeq BrandAndBINSeq,
pcRqExtensions [1] MsgExtensions {{PCRqExtensionsIOS}} OPTIONAL
}
PCRqExtensionsIOS EXTENSION ::= { ... }
BrandAndBINSeq ::= SEQUENCE SIZE(1..MAX) OF BrandAndBIN
BrandAndBIN ::= SEQUENCE {
brandID BrandID,
bin BIN OPTIONAL
}
PCertRes ::= S { P, PCertResTBS }
PCertResTBS ::= SEQUENCE {
pCertRRTags RRTags,
pCertResItemSeq PCertResItemSeq,
brandCRLIdentifierSeq [0] BrandCRLIdentifierSeq OPTIONAL,
pcRsExtensions [1] MsgExtensions {{PCRsExtensionsIOS}} OPTIONAL
}
PCRsExtensionsIOS EXTENSION ::= { ... }
PCertResItemSeq ::= SEQUENCE OF PCertResItem
PCertResItem ::= SEQUENCE {
pCertCode PCertCode,
certThumb [0] EXPLICIT CertThumb OPTIONAL
}
PCertCode ::= ENUMERATED {
success (0),
unspecifiedFailure (1),
brandNotSupported (2),
unknownBIN (3)
}
BrandCRLIdentifierSeq ::= SEQUENCE SIZE(1..MAX) OF [0] EXPLICIT BrandCRLIdentifier
-- Batch Administration Pair
BatchAdminReq ::= Enc { M, P, BatchAdminReqData }
-- Intermediate results of Enc
BatchAdminReqTBE ::= S { M, BatchAdminReqData }
BatchAdminReqData ::= SEQUENCE {
batchAdminRRTags RRTags,
batchID [0] BatchID OPTIONAL,
brandAndBINSeq [1] BrandAndBINSeq OPTIONAL,
batchOperation [2] BatchOperation OPTIONAL,
returnBatchSummaryInd BOOLEAN DEFAULT FALSE,
returnTransactionDetail [3] ReturnTransactionDetail OPTIONAL,
batchStatus [4] BatchStatus OPTIONAL,
transDetails [5] TransDetails OPTIONAL,
baRqExtensions [6] MsgExtensions {{BARqExtensionsIOS}} OPTIONAL
}
BARqExtensionsIOS EXTENSION ::= { ... }
BatchOperation ::= ENUMERATED {
open (0),
purge (1),
close (2)
}
ReturnTransactionDetail ::= SEQUENCE {
startingPoint INTEGER (MIN..MAX),
maximumItems INTEGER (1..MAX),
errorsOnlyInd BOOLEAN DEFAULT FALSE,
brandID [0] EXPLICIT BrandID OPTIONAL
}
TransDetails ::= SEQUENCE {
nextStartingPoint INTEGER (MIN..MAX),
transactionDetailSeq TransactionDetailSeq
}
BatchAdminRes ::= Enc { P, M, BatchAdminResData }
-- Intermediate results of Enc
BatchAdminResTBE ::= S { P, BatchAdminResData }
BatchAdminResData ::= SEQUENCE {
batchAdminTags RRTags,
batchID BatchID,
baStatus BAStatus OPTIONAL,
batchStatus [0] BatchStatus OPTIONAL,
transmissionStatus [1] TransmissionStatus OPTIONAL,
settlementInfo [2] SettlementInfo OPTIONAL,
transDetails [3] TransDetails OPTIONAL,
baRsExtensions [4] MsgExtensions {{BARsExtensionsIOS}} OPTIONAL
}
BARsExtensionsIOS EXTENSION ::= { ... }
TransmissionStatus ::= ENUMERATED {
pending (0),
inProgress (1),
batchRejectedByAcquirer (2),
completedSuccessfully (3),
completedWithItemErrors (4)
}
SettlementInfo ::= SEQUENCE {
settlementAmount CurrencyAmount,
settlementType AmountType,
settlementAccount SETString { ub-SettlementAccount },
settlementDepositDate Date
}
BAStatus ::= ENUMERATED {
success ( 0),
unspecifiedFailure ( 1),
brandNotSupported ( 2),
unknownBIN ( 3),
batchIDunavailable ( 4),
batchAlreadyOpen ( 5),
unknownBatchID ( 6),
brandBatchMismatch ( 7),
totalsOutOfBalance ( 8),
unknownStartingPoint ( 9),
stopItemDetail (10),
unknownBatchOperation (11)
}
ClosedWhen ::= SEQUENCE {
closeStatus CloseStatus,
closeDateTime Date
}
CloseStatus ::= ENUMERATED {
closedbyMerchant (0),
closedbyAcquirer (1)
}
BatchStatusSeq ::= SEQUENCE OF BatchStatus
BatchStatus ::= SEQUENCE {
openDateTime Date,
closedWhen [0] ClosedWhen OPTIONAL,
batchDetails BatchDetails,
batchExtensions [1] MsgExtensions {{BSExtensionsIOS}} OPTIONAL
}
BSExtensionsIOS EXTENSION ::= { ... }
BatchDetails ::= SEQUENCE {
batchTotals BatchTotals,
brandBatchDetailsSeq BrandBatchDetailsSeq OPTIONAL
}
BrandBatchDetailsSeq ::= SEQUENCE SIZE(1..MAX) OF BrandBatchDetails
BrandBatchDetails ::= SEQUENCE {
brandID BrandID,
batchTotals BatchTotals
}
BatchTotals ::= SEQUENCE {
transactionCountCredit INTEGER (0..MAX),
transactionTotalAmtCredit CurrencyAmount,
transactionCountDebit INTEGER (0..MAX),
transactionTotalAmtDebit CurrencyAmount,
batchTotalExtensions [0] MsgExtensions {{BTExtensionsIOS}} OPTIONAL
}
BTExtensionsIOS EXTENSION ::= { ... }
TransactionDetailSeq ::= SEQUENCE OF TransactionDetail
TransactionDetail ::= SEQUENCE {
transIDs TransIDs,
authRRPID RRPID,
brandID BrandID,
batchSequenceNum BatchSequenceNum,
reimbursementID ReimbursementID OPTIONAL,
transactionAmt CurrencyAmount,
transactionAmtType AmountType,
transactionStatus [0] TransactionStatus OPTIONAL,
transExtensions [1] MsgExtensions {{TransExtensionsIOS}} OPTIONAL
}
TransExtensionsIOS EXTENSION ::= { ... }
AmountType ::= ENUMERATED {
credit (0),
debit (1)
}
TransactionStatus ::= ENUMERATED {
success (0),
unspecifiedFailure (1)
}
ReimbursementID ::= ENUMERATED {
unspecified (0),
standard (1),
keyEntered (2),
electronic (3),
additionalData (4),
enhancedData (5),
marketSpecific (6)
}
-- Payment Message Components
AuthToken ::= EncX { P1, P2, AuthTokenData, PANToken }
-- Intermediate results of EncX
AuthTokenTBE ::= SEQUENCE {
authTokenData AuthTokenData,
s SO { P1, AuthTokenTBS }
}
AuthTokenTBS ::= SEQUENCE {
authTokenData AuthTokenData,
panToken PANToken
}
AuthTokenData ::= SEQUENCE {
transIDs TransIDs,
purchAmt CurrencyAmount,
merchantID MerchantID,
acqBackKeyData BackKeyData OPTIONAL,
installRecurData [0] InstallRecurData OPTIONAL,
recurringCount [1] INTEGER (1..MAX) OPTIONAL,
prevAuthDateTime Date,
totalAuthAmount [2] CurrencyAmount OPTIONAL,
authTokenOpaque [3] EXPLICIT TokenOpaque OPTIONAL
}
BatchID ::= INTEGER (0..MAX)
BatchSequenceNum ::= INTEGER (1..MAX)
CapToken ::= CHOICE {
encX [0] EXPLICIT EncX { P1, P2, CapTokenData, PANToken },
enc [1] EXPLICIT Enc { P1, P2, CapTokenData },
null [2] EXPLICIT NULL
}
-- Intermediate results of Enc and EncX
CapTokenTBE ::= S { P1, CapTokenData }
CapTokenTBEX ::= SEQUENCE {
capTokenData CapTokenData,
s SO { P1, CapTokenTBS }
}
CapTokenTBS ::= SEQUENCE {
capTokenData CapTokenData,
panToken PANToken
}
CapTokenData ::= SEQUENCE {
authRRPID RRPID,
authAmt CurrencyAmount,
tokenOpaque TokenOpaque
}
CapTokenSeq ::= SEQUENCE SIZE(1..MAX) OF CapToken
CurrencyAmount ::= SEQUENCE {
currency Currency, -- Currency code as defined in ISO-4217
amount INTEGER (0..MAX),
amtExp10 INTEGER (MIN..MAX)
-- Base ten exponent, such that the value in local
-- currency is "amount * (10 ** amtExp10)"
-- The exponent shall be the same value as defined
-- for the minor unit of currency in ISO-4217.
}
CurrConv ::= SEQUENCE {
currConvRate FloatingPoint,
cardCurr Currency
}
FloatingPoint ::= REAL (WITH COMPONENTS {..., base (2)})
MarketAutoAuth ::= SEQUENCE {
duration Duration
}
MarketHotelAuth ::= SEQUENCE {
duration Duration,
prestige Prestige OPTIONAL
}
Duration ::= INTEGER (1..99) -- Number of days
Prestige ::= ENUMERATED {
unknown (0),
level-1 (1), -- Transaction floor limits for each level are
level-2 (2), -- defined by brand policy and may vary between
level-3 (3) -- national markets.
}
MarketSpecAuthData ::= CHOICE {
auto-rental [0] MarketAutoAuth,
hotel [1] MarketHotelAuth,
transport [2] MarketTransportAuth
}
MarketSpecCapData ::= CHOICE {
auto-rental [0] MarketAutoCap,
hotel [1] MarketHotelCap,
transport [2] MarketTransportCap
}
MarketSpecSaleData ::= SEQUENCE {
marketSpecDataID MarketSpecDataID OPTIONAL,
marketSpecCapData MarketSpecCapData OPTIONAL
}
MarketTransportAuth ::= NULL
MarketSpecDataID ::= ENUMERATED {
failedEdit (0),
auto (1),
hotel (2),
transport (3)
}
MerOrderNum ::= VisibleString (SIZE(1..ub-merOrderNum))
MerTermIDs ::= SEQUENCE {
merchantID MerchantID,
terminalID VisibleString (SIZE(1..ub-terminalID)) OPTIONAL,
agentNum INTEGER (0..MAX) OPTIONAL,
chainNum [0] INTEGER (0..MAX) OPTIONAL,
storeNum [1] INTEGER (0..MAX) OPTIONAL
}
RRTags ::= SEQUENCE {
rrpid RRPID,
merTermIDs MerTermIDs,
currentDate Date
}
SaleDetail ::= SEQUENCE {
batchID [ 0] BatchID OPTIONAL,
batchSequenceNum [ 1] BatchSequenceNum OPTIONAL,
payRecurInd [ 2] PayRecurInd OPTIONAL,
merOrderNum [ 3] MerOrderNum OPTIONAL,
authCharInd [ 4] AuthCharInd OPTIONAL,
marketSpecSaleData [ 5] MarketSpecSaleData OPTIONAL,
commercialCardData [ 6] CommercialCardData OPTIONAL,
orderSummary [ 7] EXPLICIT SETString { ub-summary } OPTIONAL,
customerReferenceNumber [ 8] EXPLICIT SETString { ub-reference } OPTIONAL,
customerServicePhone [ 9] EXPLICIT Phone OPTIONAL,
okToPrintPhoneInd [10] BOOLEAN DEFAULT TRUE,
saleExtensions [11] MsgExtensions {{SaleExtensionsIOS}} OPTIONAL
}
SaleExtensionsIOS EXTENSION ::= { ... }
PayRecurInd ::= ENUMERATED {
unknown (0),
singleTransaction (1),
recurringTransaction (2),
installmentPayment (3),
otherMailOrder (4)
}
InstallRecurData ::= SEQUENCE {
installRecurInd InstallRecurInd,
irExtensions [0] MsgExtensions {{IRExtensionsIOS}} OPTIONAL
}
IRExtensionsIOS EXTENSION ::= { ... }
InstallRecurInd ::= CHOICE {
installTotalTrans [0] INTEGER (2..MAX),
recurring [1] Recurring
}
Recurring ::= SEQUENCE {
recurringFrequency INTEGER (1..ub-recurringFrequency),
recurringExpiry Date
}
TokenOpaque ::= TYPE-IDENTIFIER.&Type -- Gateway-defined data
-- Upper bound of SETString{} type
ub-acqCardText INTEGER ::= 128
ub-acqCardPhone INTEGER ::= 50
ub-approvalCode INTEGER ::= 6
ub-AVSData INTEGER ::= 128
ub-logRefID INTEGER ::= 32
ub-merOrderNum INTEGER ::= 25
ub-merType INTEGER ::= 4
ub-recurringFrequency INTEGER ::= 366
ub-SettlementAccount INTEGER ::= 50
ub-summary INTEGER ::= 35
ub-terminalID INTEGER ::= 48
ub-validationCode INTEGER ::= 4
END