SetPayMsgs

[ Changed 7th November 1996 ]


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
            

Please e-mail any comments to webmaster