This documents the additional process of publishing the transaction-request being done after the card-transaction process (e.g. transfer, oubound-auth, etc).

Schema

This is the recent schema for the kafka-message 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

A corresponding schema for the slacker-manager validation-API can be found here: Card Transaction Anti-Fraud Check [WIP]

{
  "type": "record",
  "name": "CardPaymentCreatedEventV2",
  "namespace": "ph.safibank.avro.cards",
  "fields": [
    {
      "name": "id",
      "type": {
        "type": "string",
        "logicalType": "uuid"
      }
    },
    {
      "name": "transactionId",
      "type": "string"
    },
    {
      "name": "transactionCode",
      "type": "string"
    },
    {
      "name": "customerId",
      "type": {
        "type": "string",
        "logicalType": "uuid"
      }
    },
    {
      "name": "accountId",
      "type": "string"
    },
    {
      "name": "counterPartAccountId",
      "type": "string"
    },
    {
      "name": "isReversal",
      "type": "boolean"
    },
    {
      "name": "settlementState",
      "type": {
        "type": "enum",
        "name": "CardSettlementState",
        "symbols": [
          "CARD_PAYMENT",
          "AUTHORIZE",
          "FINAL_SETTLEMENT",
          "RELEASE"
        ]
      }
    },
    {
      "name": "amount",
      "type": {
        "type": "bytes",
        "logicalType": "decimal",
        "precision": 20,
        "scale": 5
      }
    },
    {
      "name": "status",
      "type": {
        "type": "enum",
        "name": "CardTransactionStatus",
        "symbols": [
          "PENDING",
          "SUCCESS",
          "FAILED",
          "CANCELLED"
        ]
      }
    },
    {
      "name": "currency",
      "type": "string",
      "default": "PHP"
    },
    {
      "name": "timestamp",
      "type": "string"
    },
    {
      "name": "fee",
      "type": {
        "type": "bytes",
        "logicalType": "decimal",
        "precision": 20,
        "scale": 5
      },
      "default": "0.00"
    },
    {
      "name": "feeCurrency",
      "type": "string",
      "default": "PHP"
    },
    {
      "name": "cardDetails",
      "type": {
        "type": "record",
        "name": "CardDetail",
        "fields": [
          {
            "name": "cardId",
            "type": {
              "type": "string",
              "logicalType": "uuid"
            }
          },
          {
            "name": "cardType",
            "type": {
              "type": "enum",
              "name": "CardType",
              "symbols": [
                "PHYSICAL",
                "VIRTUAL"
              ]
            }
          },
          {
            "name": "proxyNumber",
            "type": "string"
          },
          {
            "name": "lastFourDigitsCardNumber",
            "type": "string"
          },
          {
            "name": "cardVendor",
            "type": "string"
          }
        ]
      }
    },
    {
      "name": "categoryCode",
      "type": {
        "type": "enum",
        "name": "CardCategoryCodeAvro",
        "symbols": [
          "ATM",
          "ECOMM",
          "POS"
        ]
      }
    },
    {
      "name": "merchantCode",
      "type": "string",
      "default": "MCC"
    },
    {
      "name": "merchantName",
      "type": "string"
    },
    {
      "name": "mti",
      "type": "string"
    },
    {
      "name": "processingCode",
      "type": "string"
    },
    {
      "name": "panEntryMode",
      "type": "string"
    },
    {
      "name": "cardAcceptorTerminalID",
      "type": "string"
    },
    {
      "name": "cardAcceptorMerchantID",
      "type": "string"
    },
    {
      "name": "receiverEmail",
      "type": "string"
    },
    {
      "name": "receiverPhone",
      "type": "string"
    },
    {
      "name": "receiverAccountName",
      "type": "string"
    },
    {
      "name": "receiverIdType",
      "type": "string"
    },
    {
      "name": "cardAcceptorTermName",
      "type": "string"
    },
    {
      "name": "ecomIndicator",
      "type": "string"
    },
    {
      "name": "acquirerCountryCode",
      "type": "string"
    },
    {
      "name": "payerEmail",
      "type": "string"
    },
    {
      "name": "payerPhone",
      "type": "string"
    },
    {
      "name": "payerAccountName",
      "type": "string"
    },
    {
      "name": "payerIdType",
      "type": "string"
    },
    {
      "name": "ccFirstname",
      "type": "string"
    },
    {
      "name": "ccLastname",
      "type": "string"
    },
    {
      "name": "ccBin",
      "type": "string"
    },
    {
      "name": "ccLastDigits",
      "type": "string"
    },
    {
      "name": "ccExpDate",
      "type": "string"
    },
    {
      "name": "transactionCurrencyCode",
      "type": "string"
    },
    {
      "name": "transactionChannel",
      "type": "string"
    },
    {
      "name": "cardHolderBillingAmount",
      "type": "string"
    },
    {
      "name": "systemTraceAuditNumber",
      "type": "string"
    },
    {
      "name": "localTransactionDateTime",
      "type": "string"
    },
    {
      "name": "networkID",
      "type": "string"
    },
    {
      "name": "PosDataSF4",
      "type": "string"
    },
    {
      "name": "PosDataSF5",
      "type": "string"
    },
    {
      "name": "PosDataSF7",
      "type": "string"
    },
    {
      "name": "PosDataSF10",
      "type": "string"
    },
    {
      "name": "acquirerID",
      "type": "string"
    },
    {
      "name": "retrievalReferenceNumber",
      "type": "string"
    },
    {
      "name": "authorizationID",
      "type": "string"
    },
    {
      "name": "cardHolderCurrencyCode",
      "type": "string"
    },
    {
      "name": "OrgtransactionID",
      "type": "string"
    },
    {
      "name": "threeDsAuthTID",
      "type": "string"
    },
    {
      "name": "DCCIndicator",
      "type": "string"
    },
    {
      "name": "UCAFIndicator",
      "type": "string"
    },
    {
      "name": "threeDsValidation",
      "type": "string"
    },
    {
      "name": "PANValidation",
      "type": "string"
    },
    {
      "name": "expiryDateValidation",
      "type": "string"
    },
    {
      "name": "pinValidation",
      "type": "string"
    },
    {
      "name": "originalDataElement",
      "type": "string"
    },
    {
      "name": "originalTransactionID ",
      "type": "string"
    },
    {
      "name": "RRN ",
      "type": "string"
    }
  ]
}

{
  "type": "record",
  "name": "CardWithdrawalCreatedEventV2",
  "namespace": "ph.safibank.avro.cards",
  "fields": [
    {
      "name": "id",
      "type": {
        "type": "string",
        "logicalType": "uuid"
      }
    },
    {
      "name": "transactionId",
      "type": "string"
    },
    {
      "name": "transactionCode",
      "type": "string"
    },
    {
      "name": "customerId",
      "type": {
        "type": "string",
        "logicalType": "uuid"
      }
    },
    {
      "name": "accountId",
      "type": "string"
    },
    {
      "name": "counterPartAccountId",
      "type": "string"
    },
    {
      "name": "isReversal",
      "type": "boolean"
    },
    {
      "name": "settlementState",
      "type": {
        "type": "enum",
        "name": "CardSettlementState",
        "symbols": [
          "CARD_PAYMENT",
          "AUTHORIZE",
          "FINAL_SETTLEMENT",
          "RELEASE"
        ]
      }
    },
    {
      "name": "amount",
      "type": {
        "type": "bytes",
        "logicalType": "decimal",
        "precision": 20,
        "scale": 5
      }
    },
    {
      "name": "status",
      "type": {
        "type": "enum",
        "name": "CardTransactionStatus",
        "symbols": [
          "PENDING",
          "SUCCESS",
          "FAILED",
          "CANCELLED"
        ]
      }
    },
    {
      "name": "currency",
      "type": "string",
      "default": "PHP"
    },
    {
      "name": "timestamp",
      "type": "string"
    },
    {
      "name": "fee",
      "type": {
        "type": "bytes",
        "logicalType": "decimal",
        "precision": 20,
        "scale": 5
      },
      "default": "0.00"
    },
    {
      "name": "feeCurrency",
      "type": "string",
      "default": "PHP"
    },
    {
      "name": "cardDetails",
      "type": {
        "type": "record",
        "name": "CardDetail",
        "fields": [
          {
            "name": "cardId",
            "type": {
              "type": "string",
              "logicalType": "uuid"
            }
          },
          {
            "name": "cardType",
            "type": {
              "type": "enum",
              "name": "CardType",
              "symbols": [
                "PHYSICAL",
                "VIRTUAL"
              ]
            }
          },
          {
            "name": "proxyNumber",
            "type": "string"
          },
          {
            "name": "lastFourDigitsCardNumber",
            "type": "string"
          },
          {
            "name": "cardVendor",
            "type": "string"
          }
        ]
      }
    },
    {
      "name": "categoryCode",
      "type": {
        "type": "enum",
        "name": "CardCategoryCodeAvro",
        "symbols": [
          "ATM",
          "ECOMM",
          "POS"
        ]
      }
    },
    {
      "name": "merchantCode",
      "type": "string",
      "default": "MCC"
    },
    {
      "name": "merchantName",
      "type": "string"
    },
    {
      "name": "mti",
      "type": "string"
    },
    {
      "name": "processingCode",
      "type": "string"
    },
    {
      "name": "panEntryMode",
      "type": "string"
    },
    {
      "name": "cardAcceptorTerminalID",
      "type": "string"
    },
    {
      "name": "cardAcceptorMerchantID",
      "type": "string"
    },
    {
      "name": "receiverEmail",
      "type": "string"
    },
    {
      "name": "receiverPhone",
      "type": "string"
    },
    {
      "name": "receiverAccountName",
      "type": "string"
    },
    {
      "name": "receiverIdType",
      "type": "string"
    },
    {
      "name": "cardAcceptorTermName",
      "type": "string"
    },
    {
      "name": "ecomIndicator",
      "type": "string"
    },
    {
      "name": "acquirerCountryCode",
      "type": "string"
    },
    {
      "name": "payerEmail",
      "type": "string"
    },
    {
      "name": "payerPhone",
      "type": "string"
    },
    {
      "name": "payerAccountName",
      "type": "string"
    },
    {
      "name": "payerIdType",
      "type": "string"
    },
    {
      "name": "ccFirstname",
      "type": "string"
    },
    {
      "name": "ccLastname",
      "type": "string"
    },
    {
      "name": "ccBin",
      "type": "string"
    },
    {
      "name": "ccLastDigits",
      "type": "string"
    },
    {
      "name": "ccExpDate",
      "type": "string"
    },
    {
      "name": "transactionCurrencyCode",
      "type": "string"
    },
    {
      "name": "transactionChannel",
      "type": "string"
    },
    {
      "name": "cardHolderBillingAmount",
      "type": "string"
    },
    {
      "name": "systemTraceAuditNumber",
      "type": "string"
    },
    {
      "name": "localTransactionDateTime",
      "type": "string"
    },
    {
      "name": "networkID",
      "type": "string"
    },
    {
      "name": "PosDataSF4",
      "type": "string"
    },
    {
      "name": "PosDataSF5",
      "type": "string"
    },
    {
      "name": "PosDataSF7",
      "type": "string"
    },
    {
      "name": "PosDataSF10",
      "type": "string"
    },
    {
      "name": "acquirerID",
      "type": "string"
    },
    {
      "name": "retrievalReferenceNumber",
      "type": "string"
    },
    {
      "name": "authorizationID",
      "type": "string"
    },
    {
      "name": "cardHolderCurrencyCode",
      "type": "string"
    },
    {
      "name": "OrgtransactionID",
      "type": "string"
    },
    {
      "name": "threeDsAuthTID",
      "type": "string"
    },
    {
      "name": "DCCIndicator",
      "type": "string"
    },
    {
      "name": "UCAFIndicator",
      "type": "string"
    },
    {
      "name": "threeDsValidation",
      "type": "string"
    },
    {
      "name": "PANValidation",
      "type": "string"
    },
    {
      "name": "expiryDateValidation",
      "type": "string"
    },
    {
      "name": "pinValidation",
      "type": "string"
    },
    {
      "name": "originalDataElement",
      "type": "string"
    },
    {
      "name": "originalTransactionID ",
      "type": "string"
    },
    {
      "name": "RRN ",
      "type": "string"
    }
  ]
}