This documents the validation of a card-transaction request for fraud (TEMPORARY ASSUMPTION similar to transaction-request validation response status).

Related documentation (and should be the reference since fraud-management is owned by the slacker team): Slacker and GCP cloud function endpoint

Schema

This is the recent API schema as of 27th of December, 2022 as communicated by Alex Li Huang (Unlicensed) based on https://docs.google.com/spreadsheets/d/1zPHxiL9yc0QnX33AHftS-QgRPu-e7-sFJEb-KXocykc/edit#gid=1552125406

components:
  schemas:
    SlackerValidationRequestDto:
      type: object
      properties:
        mti:
          type: string
          description: Message Type Identifier
        processingCode:
          type: string
          description: Refer to processing codes section
        amount:
          type: number
          maxLength: 20
          description: >-
            Transaction amount is the value dispensed / entered at transaction origination.
            The decimal value is decided from the Currency code. ISO 4217.
            This denotes the original currency or acquirer currency, need not be PHD(home currency).
        cardHolderBillingAmount:
          type: number
          maxLength: 20
          description: Cardholder amount is transaction amounted converted to local currency amount, (PHD)
        timestamp:
          type: string
          maxLength: 36
          description: >-
            Transmission Date and Time to be sent in ISO 8601 format, eg: 2022-01-25T04:01:52Z, in SGT format
        systemTraceAuditNumber:
          type: string
          maxLength: 6
          description: Number to trace in Euronet system
        localTransactionDateTime:
          type: string
          maxLength: 36
          description: >-
            Local Transaction Date and Time at the acquirer side to be sent in MMDDhhmmss.
            (Time zone is not known) ISO 8601 format, eg: 2022-01-25T04:01:52Z
        merchantCode:
          type: string
          maxLength: 4
          description: Merchant Category Code
        acquirerCountryCode:
          type: string
          maxLength: 3
          description: >-
            Acquirer bank country code to be passed in numeric code in ISO 4217.
            This field will tell where the txn is performed. Currently not used in MC platform
        panEntryMode:
          type: string
          maxLength: 3
          description: PAN entry mode, see complete list below
        networkID:
          type: string
          maxLength: 3
          description: >-
            "MCN" Mastercard Network
        PosDataSF4:
          type: string
          maxLength: 1
          description: >-
            POS Cardholder Presence indicates whether the cardholder is
            present at the point of service and explains the condition if the cardholder is not
            present.
        PosDataSF5:
          type: string
          maxLength: 1
          description: >-
            POS Card Presence indicates if the card is present at the point of service.
        PosDataSF7:
          type: string
          maxLength: 1
          description: >-
            POS Transaction Status  indicates the purpose or status of the request.
        PosDataSF10:
          type: string
          maxLength: 1
          description: >-
            Cardholder-Activated Terminal Level indicates the type of cardholder activated terminal
            used by the cardholder to initiate the transaction
        acquirerID:
          type: string
          maxLength: 11
          description: Unique id for Acquirer bank
        retrievalReferenceNumber:
          type: string
          maxLength: 12
          description: >-
            Retrieval reference number can be used to trace the transaction from acquirer, scheme and euronet.
            Generated by acquirer, unique for that particular txn. Can be duplicated across different acquirers.
        authorizationID:
          type: string
          maxLength: 6
          description: Authorization ID, to be generated by EN and sent this request.
        cardAcceptorTerminalID:
          type: string
          maxLength: 16
          description: Merchant Terminal ID/ ATM ID
        cardAcceptorMerchantID:
          type: string
          maxLength: 16
          description: Merchant ID/ For ATM what will this be?
        merchantName:
          type: string
          maxLength: 40
          description: >-
            Merchant name and description/ ATM Name and location. 
            Refers to DE43 in MC specs. 
            Use last three characters of this field to identify DCC. 
            If PH or PHL then local, 
            if not PH or PHL, then can be fx or dcc.
            If transactionCurrencyCode is 608, then DCC. else fx.
        currency:
          type: string
          maxLength: 3
          description: >-
            Transaction currency represents the currency in which transaction was performed. 
            Format: ISO 4217, for example USD, need not be home currency.
        cardHolderCurrencyCode:
          type: string
          maxLength: 3
          description: Cardholder currency represents the currency of issuer ISO 4217, home currency
        transactionId:
          type: string
          maxLength: 15
          description: Unique ID for all transaction requests across MC EN and AIG
        OrgtransactionID:
          type: string
          maxLength: 15
          description: This field will be used in follow up transactions like incremental auth, reversals and advice of the original transactions.
        threeDsAuthTID:
          type: string
          maxLength: 36
          description: >-
            The Directory Server Transaction ID is generated by the EMV 3DS Mastercard
            Directory Server during the authentication transaction. Transaction ID during authorization in order to link authentication and authorization data.
        DCCIndicator:
          type: string
          maxLength: 1
          description: Only populated for DCC Txn
        ecomIndicator:
          type: string
          maxLength: 2
          description: >-
            Ecommerce Indicator. 
            This field will represent if its Ecommerce Transaction or Tokenized Payment transaction.
        UCAFIndicator:
          type: string
          maxLength: 1
          description: UCAF Collection Values represeting security of Ecommerce Transaction
        threeDsValidation:
          type: string
          maxLength: 1
          description: This will be populated when Switch validates IAV successfully
        PANValidation:
          type: string
          maxLength: 1
          description: PANValidation.
        expiryDateValidation:
          type: string
          maxLength: 1
          description: Expiry date validation
        pinValidation:
          type: string
          maxLength: 1
          description: Pin validation check. Only present if transaction is PIN base transaction. Like For ATM txns.
        CVVValidation:
          type: string
          maxLength: 1
          description: CVV Validation. Only present if transaction is Card base transaction. CVV is present in the physical card mag data.
        CVV2Validation:
          type: string
          maxLength: 1
          description: CVV2 Validation. Only present if transaction is Non-Card base transaction
        EMVValidation:
          type: string
          maxLength: 1
          description: EMV Validation. Only present if transaction is EMV Card base transaction
        MSTransactionTypeId:
          type: String
          maxLength: 3
          description: Transaction Type Identifier used to identify type / mode of funding
        MSTransactionRefData:
          type: String
          maxLength: 358
          description: Additional transaction reference Data containing Sender Data
        accountId:
          type: string
          description: sender account ID
        counterPartAccountId:
          type: string
          description: beneficiary account ID
        fee:
          type: number
          description: transaction fee
        feeCurrency:
          type: string
          maxLength: 3
        transactionCode:
          type: string
        settlementState:
          type: string
          enum:
            - CARD_PAYMENT
            - AUTHORIZE
            - FINAL_SETTLEMENT
            - RELEASE
        customerId:
          type: string
        status:
          type: string
        categoryCode:
          type: string
          enum:
            - ATM
            - ECOMM
            - POS
        originalDataElement:
          type: string
        originalTransactionID:
          type: string
        RRN:
          type: string

        cardDetails:
          $ref: '#/components/schemas/SlackerValidationCardDetailRequestDto'

    SlackerValidationCardDetailRequestDto:
      type: object
      properties:
        proxyNumber:
          type: string
        cardVendor:
          type: string
        cardId:
          type: string
        lastFourDigitCardNumber:
          type: string
        cardType:
          type: string