97 lines
2.2 KiB
Markdown
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` |
|
|
|