- Add Foundry project configuration (foundry.toml, foundry.lock) - Add Solidity contracts (TokenFactory138, BridgeVault138, ComplianceRegistry, etc.) - Add API definitions (OpenAPI, GraphQL, gRPC, AsyncAPI) - Add comprehensive test suite (unit, integration, fuzz, invariants) - Add API services (REST, GraphQL, orchestrator, packet service) - Add documentation (ISO20022 mapping, runbooks, adapter guides) - Add development tools (RBC tool, Swagger UI, mock server) - Update OpenZeppelin submodules to v5.0.0
174 lines
5.0 KiB
YAML
174 lines
5.0 KiB
YAML
# ISO-20022 Message Type to Canonical Field Mappings
|
|
# This file defines how ISO-20022 message types map to canonical message fields
|
|
|
|
mappings:
|
|
# Outbound Initiation Messages
|
|
pain.001:
|
|
description: "Customer Credit Transfer Initiation"
|
|
direction: OUTBOUND
|
|
triggerType: OUTBOUND
|
|
fields:
|
|
instructionId:
|
|
path: "Document/CstmrCdtTrfInitn/PmtInf/CdtTrfTxInf/PmtId/InstrId"
|
|
type: string
|
|
required: true
|
|
endToEndId:
|
|
path: "Document/CstmrCdtTrfInitn/PmtInf/CdtTrfTxInf/PmtId/EndToEndId"
|
|
type: string
|
|
required: false
|
|
amount:
|
|
path: "Document/CstmrCdtTrfInitn/PmtInf/CdtTrfTxInf/Amt/InstdAmt"
|
|
type: decimal
|
|
required: true
|
|
currency:
|
|
path: "Document/CstmrCdtTrfInitn/PmtInf/CdtTrfTxInf/Amt/InstdAmt/@Ccy"
|
|
type: string
|
|
required: true
|
|
debtorAccount:
|
|
path: "Document/CstmrCdtTrfInitn/PmtInf/DbtrAcct/Id/Othr/Id"
|
|
type: string
|
|
required: true
|
|
creditorAccount:
|
|
path: "Document/CstmrCdtTrfInitn/PmtInf/CdtTrfTxInf/CdtrAcct/Id/Othr/Id"
|
|
type: string
|
|
required: true
|
|
|
|
pacs.008:
|
|
description: "FIToFICustomerCreditTransfer"
|
|
direction: OUTBOUND
|
|
triggerType: OUTBOUND
|
|
fields:
|
|
instructionId:
|
|
path: "Document/FIToFICstmrCdtTrf/GrpHdr/MsgId"
|
|
type: string
|
|
required: true
|
|
endToEndId:
|
|
path: "Document/FIToFICstmrCdtTrf/CdtTrfTxInf/PmtId/EndToEndId"
|
|
type: string
|
|
required: false
|
|
amount:
|
|
path: "Document/FIToFICstmrCdtTrf/CdtTrfTxInf/IntrBkSttlmAmt"
|
|
type: decimal
|
|
required: true
|
|
currency:
|
|
path: "Document/FIToFICstmrCdtTrf/CdtTrfTxInf/IntrBkSttlmAmt/@Ccy"
|
|
type: string
|
|
required: true
|
|
debtorAccount:
|
|
path: "Document/FIToFICstmrCdtTrf/CdtTrfTxInf/DbtrAcct/Id/Othr/Id"
|
|
type: string
|
|
required: true
|
|
creditorAccount:
|
|
path: "Document/FIToFICstmrCdtTrf/CdtTrfTxInf/CdtrAcct/Id/Othr/Id"
|
|
type: string
|
|
required: true
|
|
|
|
pacs.009:
|
|
description: "FinancialInstitutionCreditTransfer"
|
|
direction: OUTBOUND
|
|
triggerType: OUTBOUND
|
|
fields:
|
|
instructionId:
|
|
path: "Document/FICdtTrf/GrpHdr/MsgId"
|
|
type: string
|
|
required: true
|
|
amount:
|
|
path: "Document/FICdtTrf/CdtTrfTxInf/IntrBkSttlmAmt"
|
|
type: decimal
|
|
required: true
|
|
currency:
|
|
path: "Document/FICdtTrf/CdtTrfTxInf/IntrBkSttlmAmt/@Ccy"
|
|
type: string
|
|
required: true
|
|
|
|
# Inbound Notification Messages
|
|
camt.054:
|
|
description: "BankToCustomerDebitCreditNotification"
|
|
direction: INBOUND
|
|
triggerType: INBOUND
|
|
fields:
|
|
instructionId:
|
|
path: "Document/BkToCstmrDbtCdtNtfctn/Ntfctn/Ntry/NtryRef"
|
|
type: string
|
|
required: true
|
|
endToEndId:
|
|
path: "Document/BkToCstmrDbtCdtNtfctn/Ntfctn/Ntry/NtryDtls/TxDtls/Refs/EndToEndId"
|
|
type: string
|
|
required: false
|
|
amount:
|
|
path: "Document/BkToCstmrDbtCdtNtfctn/Ntfctn/Ntry/Amt"
|
|
type: decimal
|
|
required: true
|
|
currency:
|
|
path: "Document/BkToCstmrDbtCdtNtfctn/Ntfctn/Ntry/Amt/@Ccy"
|
|
type: string
|
|
required: true
|
|
account:
|
|
path: "Document/BkToCstmrDbtCdtNtfctn/Ntfctn/Acct/Id/Othr/Id"
|
|
type: string
|
|
required: true
|
|
creditDebitIndicator:
|
|
path: "Document/BkToCstmrDbtCdtNtfctn/Ntfctn/Ntry/CdtDbtInd"
|
|
type: string
|
|
required: true
|
|
|
|
pacs.002:
|
|
description: "Payment Status Report"
|
|
direction: INBOUND
|
|
triggerType: INBOUND
|
|
fields:
|
|
instructionId:
|
|
path: "Document/FIToFIPmtStsRpt/OrgnlGrpInfAndSts/OrgnlMsgId"
|
|
type: string
|
|
required: true
|
|
status:
|
|
path: "Document/FIToFIPmtStsRpt/TxInfAndSts/Sts"
|
|
type: string
|
|
required: true
|
|
enum: ["ACSC", "RJCT", "PNDG", "CANC"]
|
|
amount:
|
|
path: "Document/FIToFIPmtStsRpt/TxInfAndSts/OrgnlTxRef/IntrBkSttlmAmt"
|
|
type: decimal
|
|
required: false
|
|
|
|
# Return/Reversal Messages
|
|
pacs.004:
|
|
description: "Payment Return"
|
|
direction: RETURN
|
|
triggerType: RETURN
|
|
fields:
|
|
instructionId:
|
|
path: "Document/FIToFIPmtRvsl/OrgnlGrpInf/OrgnlMsgId"
|
|
type: string
|
|
required: true
|
|
originalInstructionId:
|
|
path: "Document/FIToFIPmtRvsl/TxInf/OrgnlInstrId"
|
|
type: string
|
|
required: true
|
|
amount:
|
|
path: "Document/FIToFIPmtRvsl/TxInf/OrgnlIntrBkSttlmAmt"
|
|
type: decimal
|
|
required: true
|
|
|
|
camt.056:
|
|
description: "FIToFIPaymentCancellationRequest"
|
|
direction: CANCELLATION
|
|
triggerType: CANCELLATION
|
|
fields:
|
|
instructionId:
|
|
path: "Document/FIToFIPmtCxlReq/Assgnmt/Id"
|
|
type: string
|
|
required: true
|
|
originalInstructionId:
|
|
path: "Document/FIToFIPmtCxlReq/Undrlyg/OrgnlGrpInf/OrgnlMsgId"
|
|
type: string
|
|
required: true
|
|
|
|
# Status Code Mappings
|
|
statusMappings:
|
|
ACSC: SETTLED
|
|
RJCT: REJECTED
|
|
PNDG: PENDING
|
|
CANC: CANCELLED
|
|
|