Files
dbis_core/docs/nostro-vostro/swift-mapping.md
defiQUG 849e6a8357
Some checks failed
CI / test (push) Has been cancelled
CI / security (push) Has been cancelled
CI / build (push) Has been cancelled
Initial commit
2025-12-12 15:02:56 -08:00

97 lines
2.2 KiB
Markdown

# SWIFT MT/MX to DBIS Nostro/Vostro API Mapping
## Overview
This document provides mapping guidance for converting SWIFT messages to DBIS Nostro/Vostro API requests.
## Message Types
### MT103 (Customer Credit Transfer)
**SWIFT Format**:
```
{1:F01BANKUS33AXXX1234567890}
{2:O1031200240115BANKUS33AXXX123456789012345678901234567890}
{3:{108:TRF123}}
{4:
:20:TRF123
:23B:CRED
:32A:240115USD1000,00
:50K:/1234567890
JOHN DOE
:59:/GB82WEST12345698765432
JANE SMITH
:70:PAYMENT REFERENCE
-}
```
**DBIS API Request**:
```json
{
"fromAccountId": "1234567890",
"toAccountId": "GB82WEST12345698765432",
"amount": "1000.00",
"currency": "USD",
"valueDate": "2024-01-15",
"reference": "TRF123",
"metadata": {
"swiftMessageType": "103",
"swiftReference": "TRF123"
}
}
```
### MT202 (General Financial Institution Transfer)
Similar to MT103 but for interbank transfers.
### MX (ISO 20022) Messages
See [ISO 20022 Mapping Guide](./iso20022-mapping.md) for MX message handling.
## Field Mappings
| SWIFT Field | DBIS API Field | Notes |
|-------------|----------------|-------|
| `:20:` | `reference` | Transaction reference |
| `:32A:` (date) | `valueDate` | Value date (YYMMDD format) |
| `:32A:` (currency) | `currency` | Currency code |
| `:32A:` (amount) | `amount` | Transfer amount |
| `:50K:` or `:50A:` | `fromAccountId` | Ordering customer account |
| `:59:` | `toAccountId` | Beneficiary account |
| `:52A:` | `fromParticipantId` | Sender BIC |
| `:56A:` | `toParticipantId` | Receiver BIC |
| `:70:` | `reference` | Remittance information |
## Implementation
Use the `SwiftAdapter` class:
```typescript
import { SwiftAdapter } from '@/integration/plugins/swift-adapter';
const adapter = new SwiftAdapter();
const swiftMessage = adapter.parseSwiftMessage(mt103String);
const transferRequest = adapter.mapTransfer(swiftMessage);
```
## Date Format Conversion
SWIFT uses YYMMDD format, DBIS uses ISO 8601:
```typescript
// SWIFT: 240115
// DBIS: 2024-01-15
```
## Error Handling
SWIFT errors map to DBIS error codes:
| SWIFT Error | DBIS Error Code |
|-------------|-----------------|
| Invalid message format | `VALIDATION_ERROR` |
| Account not found | `NOT_FOUND` |
| Invalid BIC | `VALIDATION_ERROR` |