# Testing ## Create a test SWIFT deposit - [POST /v1/test-deposits/swift/simulate](https://developers.bcb.bm/apis/open-banking-api/open-banking-api/testing/depositsimulation_post.md): Creates a SWIFT deposit in the system using test-environment data and returns the created deposit details. This endpoint is available only in non-production environments and is intended for integration testing, validation of payload formatting, and pre-production workflow checks. Although the route contains the word simulate, the request creates a deposit record in the system. If there is a matching and active deposit notification subscription, the created deposit may also trigger a deposit notification workflow. ### Content Negotiation Clients must use the HTTP Accept header to indicate the desired response format: - Set Accept: application/json for JSON responses (default) If the Accept header is omitted, application/json is assumed. ### Headers - Authorization: Bearer {token} - Idempotency-Key: {uuid} (optional, but recommended for safe retries) ### Validation Rules / Constraints - creditAccountNumber is required and must not exceed 36 characters. - instructedAmount.currency is required and must be a 3-letter ISO currency code. - instructedAmount.amount is required and must be a valid decimal number with up to 2 decimal places. - externalAccountNumber is required and must not exceed 34 characters. - orderingBank is required and must not exceed 35 characters. - orderingCustomer must contain between 1 and 4 lines, each up to 35 characters. - remittanceInformation must contain at least 1 line, up to 4 lines total, each up to 35 characters. ### Request / Response Signing This endpoint uses request signature verification and response signing. Clients should sign requests according to their configured signing method, and should verify the signature on the response when response signing is enabled for their API credentials. ### Base URL All API requests use the versioned base URL: https://api.bcb.bm/v1/test-deposits/swift/simulate ### Sample Request in JavaScript javascript async function simulateDeposit(token, idempotencyKey) { const response = await fetch('https://api.bcb.bm/v1/test-deposits/swift/simulate', { method: 'POST', headers: { 'Authorization': Bearer ${token}, 'Content-Type': 'application/json', 'Accept': 'application/json', 'Idempotency-Key': idempotencyKey }, body: JSON.stringify({ creditAccountNumber: '1000078766', instructedAmount: { currency: 'USD', amount: '5000.00' }, externalAccountNumber: 'GB29NWBK60161331926819', orderingBank: 'DEUTDEFF', orderingCustomer: [ 'Global Trading Corp', '100 Finance Street', 'London, EC2V 8AB' ], remittanceInformation: [ 'Invoice INV-2024-0042', 'Q1 advisory fees' ] }) }); if (!response.ok) { const error = await response.json(); throw new Error(error.message || 'Deposit simulation failed'); } return await response.json(); } Required Permission: simulate-deposit This endpoint requires the permission claim simulate-deposit to be present in the JWT token. These permissions are embedded in the token during the authentication process and cannot be modified afterward. The token must be obtained with the appropriate permissions to access this endpoint.