HTML Annotations, Copyright 1996, T.M.A. Lomas,
Computer Security Group,
University of Cambridge
Computer Laboratory.
All Rights Reserved.
These are based upon a protocol description issued 8th August 1996 by MasterCard and VISA, who we presume to retain copyright in the text of these documents.
Permission is granted to use or distribute these files provided this copyright information is preserved, and subject to any conditions imposed by MasterCard and VISA.
507 SetPayMsgs DEFINITIONS IMPLICIT TAGS ::= BEGIN
508
509 --
510 -- This module defines types for SET protocol payment messages.
511 --
512
513 -- EXPORTS All;
514
515 IMPORTS
516
517 DirectoryString {}
518 FROM SetAttribute
519
520 SIGNED {}
521 FROM SetCertificate
522
523 AcqCardCodeMsg, BrandCRLIdentifier, BrandID, CardExpiry, CertThumb,
524 Challenge, Currency, Date, Language, LocalID, MerchantID, Nonce, PAN,
525 PANData, RRPID, SWIdent, Thumbs, TransIDs
526 FROM SetMessage
527
528 C, CEAlgorithmIdentifier, DAlgorithmIdentifier, DD {}, Digest,
529 Enc {}, EncB {}, EncBX {}, EncK{}, EncX {}, EnvelopedData, EX {},
530 EXH {}, P1, P2, L {}, M, P, S {}, SO {}
531 FROM SetPKCS7Plus;
532
533
534 -- Purchase Initialization Pair
535
536 PInitReq ::= SEQUENCE { -- Purchase Initialization Request
537 rrPID RRPID,
538 language Language,
539 localID-C LocalID,
540 localID-M [0] LocalID OPTIONAL,
541 chall-C Challenge,
542 brandID BrandID,
543 thumbs Thumbs OPTIONAL
544 }
545
546 PInitRes ::= S { M, PInitResData }
547
548 PInitResData ::= SEQUENCE {
549 transIDs TransIDs,
550 rrPID RRPID,
551 chall-C Challenge,
552 chall-M Challenge,
553 brandCRLIdentifier [0] BrandCRLIdentifier OPTIONAL,
554 gkThumb CertThumb,
555 thumbs Thumbs
556 }
557
558 -- Purchase (P) Messages
559
560 PReq ::= CHOICE {
561 pReqDualSigned [0] PReqDualSigned,
562 pReqUnsigned [1] PReqUnsigned
563 }
564
565 PReqDualSigned ::= SEQUENCE {
566 piDualSigned PIDualSigned,
567 oiDualSigned OIDualSigned
568 }
569
570 PIDualSigned ::= SEQUENCE {
571 piSignature PISignature,
572 exPIData EX { P, L { PIHead, OIData }, PANData }
573 }
574
575 OIDualSigned ::= L{ OIData, PIData }
576
577 PISignature ::= SO { C, SEQUENCE { hPIData HPIData, hOIData HOIData } }
578
579 HPIData ::= DD { PIData } -- PKCS#7 DigestedData
580
581 HOIData ::= DD { OIData } -- PKCS#7 DigestedData
582
583 PIHead ::= SEQUENCE {
584 transIDs TransIDs,
585 piNonce Nonce,
586 inputs Inputs,
587 merchantID MerchantID,
588 splitRecurInd SplitRecurInd OPTIONAL,
589 swIdent SWIdent,
590 acqBackInfo AcqBackInfo OPTIONAL
591 }
592
593 OIData ::= SEQUENCE { -- Order Information Data
594 transIDs TransIDs,
595 rrpid RRPID,
596 chall-C Challenge,
597 hod HOD,
598 odSalt Nonce,
599 chall-M Challenge OPTIONAL,
600 brandID BrandID OPTIONAL
601 }
602
603 HOD ::= DD { HODInput }
604
605 PReqUnsigned ::= SEQUENCE { -- Sent by cardholders without certificates
606 piUnsigned PIUnsigned,
607 oiUnsigned OIUnsigned
608 }
609
610 OIUnsigned ::= L { OIData, PIDataUnsigned }
611
612 PIDataUnsigned ::= SEQUENCE {
613 piHead PIHead,
614 panToken PANToken -- Only when signing
615 }
616
617 PIData ::= SEQUENCE {
618 piHead PIHead,
619 panData PANData -- Only when signing
620 }
621
622 PANToken ::= SEQUENCE {
623 pan PAN,
624 cardExpiry CardExpiry,
625 exNonce Nonce
626 }
627
628 PI ::= CHOICE {
629 piUnsigned [0] PIUnsigned,
630 piDualSigned [1] PIDualSigned,
631 authToken [2] AuthToken
632 }
633
634 PIUnsigned ::= EXH { P, L { PIHead, OIData }, PANToken }
635
636 PRes ::= S { M, PResData }
637
638 PResData ::= SEQUENCE {
639 transIDs TransIDs,
640 rrpid RRPID,
641 chall-C Challenge,
642 brandCRLIdentifier [0] BrandCRLIdentifier OPTIONAL,
643 pResPayload PResPayload
644 }
645
646 -- Inquiries and Responses
647
648 InqReq ::= CHOICE {
649 inqReqSigned [0] InqReqSigned,
650 inqReqUnsigned [1] InqReqData
651 }
652
653 InqReqSigned ::= S { C, InqReqData }
654
655 InqReqData ::= SEQUENCE { -- Signed by cardholder, if signed
656 transIDs TransIDs,
657 rrpid RRPID,
658 chall-C2 Challenge
659 }
660
661 InqRes ::= PRes
662
663 -- Auth Pair
664
665 AuthReq ::= EncB { M, P, AuthReqData, PI }
666
667 AuthReqPayload ::= SEQUENCE {
668 subsequentAuthInd BOOLEAN,
669 authReqAmt CurrencyAmount, -- May differ from PurchAmt
670 merchData MerchData,
671 captureNow BOOLEAN,
672 saleDetail SaleDetail OPTIONAL -- Iff captureNow is true
673 }
674
675 MerchData ::= SEQUENCE {
676 cardSuspect [0] CardSuspect OPTIONAL,
677 merchCatCode MerchCatCode OPTIONAL,
678 merchGroup MerchGroup OPTIONAL,
679 marketSpecData [1] EXPLICIT MarketSpecAuthData OPTIONAL,
680 avsData AVSData OPTIONAL
681 }
682
683 CardSuspect ::= ENUMERATED { -- Indicates merchant suspects cardholder
684 --
685 -- Specific values indicate why the merchant is suspicious
686 --
687 unspecifiedReason (0), -- Either the merchant does not differentiate
688 -- reasons for suspicion, or the specific
689 -- reason does not appear in the list
690 ...
691 }
692
693 MerchCatCode ::= IA5String (SIZE(4))
694 -- Merchant Category Code (MCCs) are assigned by acquirer to
695 -- describe the merchant's product, service or type of business
696
697 MerchGroup ::= ENUMERATED {
698 commercialTravel (1),
699 lodging (2),
700 automobileRental (3),
701 restaurant (4),
702 medical (5),
703 mailOrPhoneOrder (6),
704 riskyPurchase (7),
705 other (8)
706 }
707
708 AVSData ::= DirectoryString { ub-AVSData } -- Cardholder billing address
709
710 AuthRes ::= CHOICE {
711 encBX [0] EncBX { P, M, AuthResData, AuthResBaggage, PANToken },
712 encB [1] EncB { P, M, AuthResData, AuthResBaggage }
713 }
714
715 AuthResData ::= SEQUENCE {
716 authTags AuthTags,
717 brandCRLIdentifier [0] BrandCRLIdentifier OPTIONAL,
718 gkThumb [1] CertThumb OPTIONAL,
719 authResPayload AuthResPayload
720 }
721
722 AuthResBaggage ::= SEQUENCE {
723 capToken [0] EXPLICIT CapToken OPTIONAL,
724 acqCardMsg [1] AcqCardMsg OPTIONAL,
725 authToken [2] AuthToken OPTIONAL
726 }
727
728 AcqCardMsg ::= EncK { -- AcqBackAlg, -- AcqBackKey, P, AcqCardCodeMsg }
729
730 AuthResPayload ::= SEQUENCE {
731 authHeader AuthHeader,
732 saleResPayload SaleResPayload OPTIONAL
733 }
734
735 AuthHeader ::= SEQUENCE {
736 authAmt CurrencyAmount,
737 respCode RespCode,
738 responseData ResponseData,
739 captureControl [0] CaptureControl OPTIONAL,
740 currConv CurrConv OPTIONAL -- Merchant to cardholder
741 }
742
743 AuthCode ::= IA5String (SIZE(6)) -- Returned on successful authorization
744
745 SaleResPayload ::= SEQUENCE {
746 capCode CapCode,
747 capAmt CurrencyAmount,
748 settleAmount CurrencyAmount OPTIONAL
749 }
750
751 CapCode ::= ENUMERATED {
752 success (1),
753 unknown (2),
754 closed (3)
755 }
756
757 -- Capture Pair
758
759 CapReq ::= CHOICE {
760 encB [0] EncB { M, P, CapReqData, CapTokSeq },
761 encBX [1] EncBX { M, P, CapReqData, CapTokSeq, PANToken }
762 }
763
764 CapReqData ::= SEQUENCE {
765 capRRTags CapRRTags,
766 mThumbs [0] Thumbs OPTIONAL,
767 capSeq CapSeq,
768 forceClosure BatchIDs
769 }
770
771 CapRRTags ::= RRTags
772
773 BatchIDs ::= SEQUENCE SIZE(0..MAX) OF BatchID
774
775 MerBatchID ::= NumericString (SIZE(8))
776
777 CapSeq ::= SEQUENCE SIZE(1..MAX) OF CapItem
778
779 CapItem ::= SEQUENCE {
780 transIDs TransIDs,
781 capPayload CapPayload
782 }
783
784 CapPayload ::= SEQUENCE {
785 capReqAmt CurrencyAmount,
786 authReqData [0] AuthReqData OPTIONAL,
787 authResPayload [1] AuthResPayload OPTIONAL,
788 saleDetail SaleDetail
789 }
790
791 CapRes ::= Enc { P, M, CapResData }
792
793 CapResData ::= SEQUENCE {
794 capTags CapTags,
795 brandCRLIdentifier [0] BrandCRLIdentifier OPTIONAL,
796 gkThumb [1] CertThumb OPTIONAL,
797 captureControl CaptureControl,
798 capResSeq CapResSeq
799 }
800
801 CapTags ::= SEQUENCE {
802 rrTags RRTags,
803 merBatchID MerBatchID OPTIONAL
804 }
805
806 CapResSeq ::= SEQUENCE SIZE(1..MAX) OF CapResItem
807
808 CapResItem ::= SEQUENCE {
809 transIDs TransIDs,
810 capResPayload CapResPayload
811 }
812
813 CapResPayload ::= SEQUENCE {
814 capCode CapCode,
815 capAmt CurrencyAmount,
816 batchID BatchID OPTIONAL,
817 settleAmount CurrencyAmount OPTIONAL
818 }
819
820 -- Auth Reversal Pair
821
822 AuthRevReq ::= EncB { M, P, AuthRevReqData, AuthRevReqBaggage }
823
824
825 AuthRevReqData ::= SEQUENCE {
826 authRevTags AuthRevTags,
827 mThumbs [0] Thumbs OPTIONAL,
828 authReqData [1] AuthReqData OPTIONAL,
829 authResPayload [2] AuthResPayload OPTIONAL,
830 authNewAmt CurrencyAmount OPTIONAL
831 }
832
833 AuthRevReqBaggage ::= SEQUENCE {
834 pi PI,
835 capToken CapToken OPTIONAL
836 }
837
838 AuthRevTags ::= SEQUENCE {
839 authRevRRTags AuthRevRRTags,
840 authRetNum AuthRetNum OPTIONAL
841 }
842
843 AuthRevRRTags ::= RRTags
844
845 AuthRetNum ::= INTEGER (0..MAX)
846
847 AuthRevRes ::= CHOICE {
848 encB [0] EncB { P, M, AuthRevResData, AuthRevResBaggage },
849 enc [1] Enc { P, M, AuthRevResData }
850 }
851
852 AuthRevResBaggage ::= SEQUENCE {
853 capTokenNew CapToken OPTIONAL,
854 authTokenNew AuthToken OPTIONAL
855 }
856
857 AuthRevResData ::= SEQUENCE {
858 authRevTags AuthRevTags,
859 brandCRLIdentifier [0] BrandCRLIdentifier OPTIONAL,
860 gkThumb [1] CertThumb OPTIONAL,
861 authNewAmt CurrencyAmount, -- May be zero
862 authResDataNew AuthResDataNew OPTIONAL
863 }
864
865 AuthResDataNew ::= SEQUENCE {
866 transIDs TransIDs,
867 authResPayloadNew AuthResPayload -- Contains new data
868 }
869
870 -- Capture Reversal Pair
871
872 CapRevReq ::= CHOICE {
873 encB [0] EncB { M, P, CapRevData, CapTokSeq },
874 encBX [1] EncBX { M, P, CapRevData, CapTokSeq, PANToken }
875 }
876
877 CapRevData ::= CapRevOrCredReqData
878
879 CapRevOrCredReqData ::= SEQUENCE {
880 capRevOrCredTags CapRevOrCredRRTags,
881 mThumbs [0] Thumbs OPTIONAL,
882 capRevOrCredReqItems CapRevOrCredReqItems
883 }
884
885 CapRevOrCredRRTags ::= RRTags
886
887 CapRevOrCredReqItems ::= SEQUENCE SIZE(1..MAX) OF CapRevOrCredReqItem
888
889 CapRevOrCredReqItem ::= SEQUENCE {
890 transIDs [0] TransIDs OPTIONAL,
891 authReqData [1] AuthReqPayload OPTIONAL,
892 authResPayload [2] AuthResPayload OPTIONAL,
893 capRevOrCredReqAmt CurrencyAmount
894 }
895
896 CapRevRes ::= Enc { P, M, CapRevResData }
897
898 CapRevResData ::= CapRevOrCredResData
899
900 CapRevOrCredResData ::= SEQUENCE {
901 capRevOrCredTags CapRevOrCredTags,
902 brandCRLIdentifier [0] BrandCRLIdentifier OPTIONAL,
903 gkThumb [1] CertThumb OPTIONAL,
904 capRevOrCredResItems CapRevOrCredResItems
905 }
906
907 CapRevOrCredTags ::= RRTags
908
909 CapRevOrCredResItems ::= SEQUENCE SIZE(1..MAX) OF CapRevOrCredResItem
910
911 CapRevOrCredResItem ::= SEQUENCE {
912 transIDs TransIDs,
913 capRevOrCredResPayload CapRevOrCredResPayload
914 }
915
916 CapRevOrCredResPayload ::= SEQUENCE {
917 capRevOrCredCode CapRevOrCredCode,
918 capRevOrCredActualAmt CurrencyAmount,
919 captureControl CaptureControl,
920 batchID BatchID OPTIONAL,
921 settleAmt CurrencyAmount OPTIONAL
922 }
923
924 CapRevOrCredCode ::= ENUMERATED {
925 tbd (0) -- To be defined
926 }
927
928 -- Credit Pair
929
930 CredReq ::= CHOICE {
931 encB [0] EncB { M, P, CredReqData, CapTokSeq },
932 encBX [1] EncBX { M, P, CredReqData, CapTokSeq, PANToken }
933 }
934
935 CredReqData ::= CapRevOrCredReqData
936
937 CredRes ::= Enc { P, M, CredResData }
938
939 CredResData ::= CapRevOrCredResData
940
941 -- Credit Reversal Pair
942
943 CredRevReq ::= CHOICE {
944 encB [0] EncB { M, P, CredRevReqData, CapTokSeq },
945 encBX [1] EncBX { M, P, CredRevReqData, CapTokSeq, PANToken }
946 }
947
948 CredRevReqData ::= CapRevOrCredReqData
949
950 CredRevRes ::= Enc { P, M, CredRevResData }
951
952 CredRevResData ::= CapRevOrCredResData
953
954 --PCert Pair
955
956 PCertReq ::= S { M, PCertReqData }
957
958 PCertReqData ::= SEQUENCE {
959 pCertTags PCertTags,
960 mThumbs [0] Thumbs OPTIONAL,
961 brandIDSeq BrandIDSeq
962 }
963
964 PCertTags ::= RRTags
965
966 BrandIDSeq ::= SEQUENCE OF BrandID
967
968 PCertRes ::= S { P, PCertResTBS }
969
970 PCertResTBS ::= SEQUENCE {
971 pCertTags PCertTags,
972 brandCRLIdentifier BrandCRLIdentifier OPTIONAL,
973 pCertResThumbs [0] Thumbs
974 }
975
976 -- Batch Administration
977
978 BatchAdminReq ::= S { M, BatchAdminReqTBS }
979
980 BatchAdminReqTBS ::= SEQUENCE {
981 batchAdminRRTags BatchAdminRRTags,
982 batchAdminReqData BatchAdminReqData
983 }
984
985 BatchAdminRRTags ::= RRTags
986
987 BatchAdminReqData ::= SEQUENCE {
988 batchID BatchID,
989 brandIDSeq BrandIDSeq,
990 openBatchInd BOOLEAN,
991 forceBatchClosureInd BOOLEAN,
992 returnBatchSummaryInd BOOLEAN,
993 returnTransactionDetailInd BOOLEAN
994 }
995
996 BatchAdminRes ::= S { P, BatchAdminResTBS }
997
998 BatchAdminResTBS ::= SEQUENCE {
999 batchAdminTags RRTags,
1000 batchAdminResData BatchAdminResData
1001 }
1002
1003 BatchAdminResData ::= SEQUENCE {
1004 batchID BatchID,
1005 openStatus OpenStatus OPTIONAL,
1006 closedWhen ClosedWhen OPTIONAL,
1007 batchStatus [0] BatchStatus OPTIONAL,
1008 transDetails [1] TransDetails OPTIONAL
1009 }
1010
1011 OpenStatus ::= ENUMERATED {
1012 tbd (0) -- To be defined
1013 }
1014
1015 ClosedWhen ::= SEQUENCE {
1016 closeStatus CloseStatus,
1017 closeDateTime Date
1018 }
1019
1020 CloseStatus ::= ENUMERATED {
1021 tbd (0) -- To be defined
1022 }
1023
1024 BatchStatus ::= SEQUENCE {
1025 transactionCountCredit INTEGER (0..MAX),
1026 transactionTotalAmtCredit CurrencyAmount,
1027 transactionCountDebit INTEGER (0..MAX),
1028 transactionTotalAmtDebit CurrencyAmount,
1029 settlementAmount CurrencyAmount,
1030 settlementAccount MerchantID,
1031 settlementDepositDate Date
1032 }
1033
1034 TransDetails ::= SEQUENCE OF TransactionDetail
1035
1036 TransactionDetail ::= SEQUENCE {
1037 transIDs TransIDs,
1038 batchSeqNum BatchSeqNum,
1039 reimbursementID ReimbursementID,
1040 transactionAmtCredit CurrencyAmount,
1041 transactionAmtDebit CurrencyAmount
1042 }
1043
1044 ReimbursementID ::= ENUMERATED {
1045 tbd (0) -- To be defined
1046 }
1047
1048 -- COMMON MESSAGE TYPES AND PAYLOADS
1049
1050 AcqBackInfo ::= SEQUENCE {
1051 acqBackAlg CEAlgorithmIdentifier,
1052 acqBackKey AcqBackKey -- Length from AcqBackAlg
1053 }
1054
1055 AcqBackKey ::= OCTET STRING (SIZE(1..24))
1056
1057 AuthRatio ::= REAL
1058 -- Authorization Ratio is AuthAmt/PurchAmt present if
1059 -- CompletionCode indicates Authorization is complete
1060
1061 AuthReqData ::= SEQUENCE {
1062 authTags AuthTags,
1063 checkDigests [0] CheckDigests OPTIONAL,
1064 mThumbs [1] Thumbs OPTIONAL,
1065 authReqPayload AuthReqPayload
1066 }
1067
1068 AuthTags ::= SEQUENCE {
1069 authRRTags RRTags,
1070 transIDs TransIDs,
1071 authRetNum AuthRetNum OPTIONAL
1072 }
1073
1074 AuthToken ::= EncX { P1, P2, AuthTokenTBE, PANToken }
1075
1076 AuthTokenTBE ::= SEQUENCE {
1077 transIDs TransIDs,
1078 purchAmt CurrencyAmount,
1079 merchantID MerchantID,
1080 acqBackInfo AcqBackInfo OPTIONAL,
1081 splitRecurInd SplitRecurInd,
1082 recurringCount INTEGER OPTIONAL,
1083 prevAuthDateTime Date OPTIONAL,
1084 totalAuthAmount CurrencyAmount OPTIONAL,
1085 authTokenOpaque OCTET STRING
1086 }
1087
1088 AuthValCodes ::= SEQUENCE {
1089 authCode [0] AuthCode OPTIONAL,
1090 authCharInd [1] AuthCharInd OPTIONAL,
1091 validationCode [2] ValidationCode OPTIONAL,
1092 marketSpec MarketSpecDataID OPTIONAL
1093 }
1094
1095 AuthCharInd ::= IA5String (SIZE(1))
1096
1097 AVSResult ::= IA5String (SIZE(1))
1098
1099 BatchID ::= IA5String -- Merchant assigned draft capture batch id
1100
1101 BatchSeqNum ::= IA5String -- Record identifier in capture logs
1102
1103 CapToken ::= CHOICE {
1104 enc [0] Enc { P1, P2, CapTokenData },
1105 encX [1] EncX { P1, P2, CapTokenData, PANToken },
1106 null [2] NULL
1107 }
1108
1109 CapTokenData ::= SEQUENCE {
1110 authAmt CurrencyAmount,
1111 batchID BatchID OPTIONAL,
1112 tokenOpaque TokenOpaque
1113 }
1114
1115 CapTokSeq ::= SEQUENCE SIZE(1..MAX) OF CapToken
1116
1117 CaptureControl ::= SEQUENCE {
1118 batchSeqNum BatchSeqNum OPTIONAL,
1119 draftCaptStatus DraftCaptStatus OPTIONAL
1120 }
1121
1122 CheckDigests ::= SEQUENCE {
1123 hOIData HOIData,
1124 hod2 HOD
1125 }
1126
1127 CompletionCode ::= ENUMERATED {
1128 meaninglessRatio (0), -- PurchAmt = 0 condition
1129 orderReceived (1),
1130 authoriziationPerformed (2),
1131 capturePerformed (3),
1132 creditPerformed (4)
1133 }
1134
1135 CurrencyAmount ::= SEQUENCE {
1136 currency Currency,
1137 amount INTEGER,
1138 amtExp10 INTEGER -- Base ten exponent, such that the value in local
1139 -- currency is "amount * (10 ** amtExp10)"
1140 }
1141
1142 CurrConv ::= SEQUENCE {
1143 currConvRate REAL,
1144 cardCurr Currency
1145 }
1146
1147 DraftCaptStatus ::= SEQUENCE {
1148 -- Provides status information, totals, &/or record counts for batch
1149 closedWhen [0] ClosedWhen OPTIONAL,
1150 batchStatus BatchStatus
1151 }
1152
1153 Duration ::= INTEGER (1..99) -- Number of days
1154
1155 HODInput ::= SEQUENCE {
1156 od OD,
1157 purchAmt CurrencyAmount,
1158 odSalt Nonce,
1159 splitRecurInd SplitRecurInd OPTIONAL
1160 }
1161
1162 Inputs ::= SEQUENCE {
1163 hod HOD,
1164 purchAmt CurrencyAmount
1165 }
1166
1167 MarketAutoAuth ::= SEQUENCE {
1168 duration Duration
1169 }
1170
1171 MarketAutoCap ::= OCTET STRING -- To be defined
1172
1173 MarketHotelAuth ::= SEQUENCE {
1174 duration Duration,
1175 prestige Prestige OPTIONAL
1176 }
1177
1178 MarketHotelCap ::= OCTET STRING -- To be defined
1179
1180 MarketSpecAuthData ::= CHOICE {
1181 auto-rental [0] MarketAutoAuth,
1182 hotel [1] MarketHotelAuth,
1183 transport [2] MarketTransportAuth
1184 }
1185
1186 MarketSpecCapData ::= CHOICE {
1187 auto-rental [0] MarketAutoCap,
1188 hotel [1] MarketHotelCap,
1189 transport [2] MarketTransportCap
1190 }
1191
1192 MarketSpecSaleData ::= SEQUENCE {
1193 marketSpecDataID MarketSpecDataID OPTIONAL,
1194 marketSpecCapData MarketSpecCapData OPTIONAL
1195 }
1196
1197 MarketTransportAuth ::= NULL
1198
1199 MarketTransportCap ::= OCTET STRING -- To be defined
1200
1201 MarketSpecDataID ::= IA5String (SIZE(1))
1202
1203 MerOrderNum ::= IA5String (SIZE(1..25)) -- Merchant order number
1204
1205 MerTermIDs ::= SEQUENCE {
1206 merchantID MerchantID,
1207 terminalID IA5String OPTIONAL,
1208 agentNum INTEGER OPTIONAL,
1209 chainNum [0] INTEGER OPTIONAL,
1210 storeNum [1] INTEGER OPTIONAL
1211 }
1212
1213 OD ::= OCTET STRING -- Order description
1214
1215 PayRecurInd ::= IA5String (SIZE(1)) -- Association specific
1216
1217 Prestige ::= IA5String (SIZE(1)) -- D, B, S
1218
1219 PurchaseCardData ::= IA5String
1220
1221 Recurring ::= SEQUENCE {
1222 recurringFrequency INTEGER,
1223 recurringExpiry Date
1224 }
1225
1226 PResPayload ::= SEQUENCE {
1227 completionCode CompletionCode,
1228 results Results OPTIONAL
1229 }
1230
1231 RespCode ::= IA5String (SIZE(3))
1232
1233 ResponseData ::= SEQUENCE {
1234 authValCodes [0] AuthValCodes OPTIONAL,
1235 respReason [1] RespReason OPTIONAL,
1236 avsResult [2] AVSResult OPTIONAL,
1237 logRefID LogRefID OPTIONAL
1238 }
1239
1240 RespReason ::= IA5String -- Optional indicator of authorization
1241 -- service entity and reason for decline
1242
1243 LogRefID ::= IA5String -- Used to match and clear transactions
1244
1245 Results ::= SEQUENCE {
1246 acqCardMsg AcqCardMsg OPTIONAL,
1247 authCode AuthCode,
1248 authRatio AuthRatio,
1249 capCodeAndRatio CapCodeAndRatio OPTIONAL
1250 }
1251
1252 CapCodeAndRatio ::= SEQUENCE {
1253 capCode CapCode,
1254 capRatio CapRatio
1255 }
1256
1257 CapRatio ::= REAL
1258
1259 RRTags ::= SEQUENCE {
1260 rrpid RRPID,
1261 merTermIDs MerTermIDs,
1262 currentDate Date
1263 }
1264
1265 SaleDetail ::= SEQUENCE {
1266 saleDate Date,
1267 batchID [0] BatchID OPTIONAL,
1268 payRecurInd [1] PayRecurInd OPTIONAL, -- Transaction type
1269 merOrderNum [2] MerOrderNum OPTIONAL,
1270 authCharInd [3] AuthCharInd OPTIONAL,
1271 marketSpecData MarketSpecSaleData OPTIONAL,
1272 purchaseCardData PurchaseCardData OPTIONAL
1273 }
1274
1275 SplitRecurInd ::= CHOICE {
1276 recurringTotalTrans [0] INTEGER,
1277 recurring [1] Recurring
1278 }
1279
1280 TokenOpaque ::= OCTET STRING -- Meaningful to Payment Gateways only
1281
1282 ValidationCode ::= IA5String (SIZE(4)) -- For authorization responses
1283
1284 -- Upper bound of DirectoryString{} type
1285
1286 ub-AVSData INTEGER ::= 128
1287
1288
1289 END