---
title: "Simulate pay-in"
method: POST
path: "/payment/v1/payins/simulate"
tags: ["Fiat Payments"]
deprecated: true
---

# Simulate pay-in

`POST /payment/v1/payins/simulate`

## Request

- Base URL: `https://api.sandbox.bvnk.com`
- URL: `https://api.sandbox.bvnk.com/payment/v1/payins/simulate`
- Auth: none declared
- TypeScript: <https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/docs/payment/v1/payins/simulate/post.ts> (a function with typed inputs; its response is checked against the schema)

> **Deprecated.**

Simulates pay-ins with different currencies and payment methods in the sandbox environment.

**Important**: A `201` response indicates the pay-in was accepted for processing; it does not mean the funds have settled. The transaction may still be rejected asynchronously, for example, due to a blocked account, financial crime screening holds, or compliance checks. Monitor webhooks for the final transaction status.

## Request body

- object
  - `walletId` WalletId, required (unresolved $ref)
  - `paymentReference` PaymentReference, required (unresolved $ref)
  - `paymentMethod` 'FASTER_PAYMENT' | 'SWIFT' | 'SEPA_CT' | 'SEPA_INST' | 'ACH' | 'ACH_SAME_DAY' | 'FEDWIRE' | 'CUBIX': Payment method to be utilised for transactions. Optional. If not provided, the logic will be based on other dynamically determined attributes and routed for the specific wallet. Use the following methods for each currency: - GBP: `FASTER_PAYMENT` - EUR: `SEPA_CT`, `SEPA_INST`, or `SWIFT` - USD: `ACH`, `ACH_SAME_DAY`, `FEDWIRE`, `CUBIX`, or `SWIFT`
  - `amount` Amount, required (unresolved $ref)
  - `originator` object, required
    - `name` string, required: Name of the sender of the pay-in.
    - `bankAccount` object, required
      - `accountNumber` string, required: Account number of the sender of the pay-in.
      - `accountNumberFormat` 'SCAN' | 'IBAN' | 'SWIFT' | 'ABA' | 'CUBIX': Format type of the bank account number. For example, `IBAN` can be used for SWIFT, and `ABA` for local USD rails.

## Response `201`

Accepted for processing. This does not indicate that the pay-in has settled. The transaction may still be rejected asynchronously due to account restrictions, financial crime screening holds, or compliance checks.

## Other responses

- `400`: Bad request

## Changes

- **2026-06-16** `97d6c0d2fe2e`: 2 breaking, 1 warning, 1 info
  - the `paymentReference` request property's maxLength was decreased to `34`
  - the `details/errors` response's property type changed from `object` to `array` for status `400`
  - removed the optional property `details/errors/requestBody` from the response with the `400` status
  - added the required property `traceId` to the response with the `400` status

[Operation history](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/changes/payment/v1/payins/simulate/post.md)

---

[API](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints.md) - [All operations](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/revisions/c386d436bf2c?raw)
