---
title: "Trigger a bank transaction"
method: POST
path: "/tests/payments/transactions"
tags: ["Tests"]
---

# Trigger a bank transaction

`POST /tests/payments/transactions`

Trigger a bank transaction for testing purposes. This can be used to simulate a money transfer for various flows which need cash settlements on one of our bank accounts.

## Headers

- `idempotency-key` string, uuid, required

## Request body

- object
  - `account` object, required — The Upvest account identification
    - `iban` string, required — International Bank Account Number [IBAN](https://en.wikipedia.org/wiki/International_Bank_Account_Number).
  - `amount` string, required
  - `currency` 'EUR' | 'GBP' | 'USD' | 'JPY' | 'CHF', required — Alphabetic three-letter [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) currency code
  - `remittance_information` string — Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system, in an unstructured form.
  - `client_reference` string, required — Immutable reference to the API flow that initiated the order. For client initiated API flows, this is a client provided ID. For internal initiations, it is set to the ID of the related object.
  - `counterparty_name` string, required — The counterparty account owner
  - `counterparty_account` object, required — Unambiguous identification of the account of the counterparty of the bank transaction
    - `iban` string, required — International Bank Account Number [IBAN](https://en.wikipedia.org/wiki/International_Bank_Account_Number).
  - `counterparty_agent` object — Unambiguous identification of the agent of the counterparty of the bank transaction
    - `bic` string, required — Business Identifier Code (also known as SWIFT-BIC, BIC, SWIFT ID or SWIFT code) [ISO 9362](https://en.wikipedia.org/wiki/ISO_9362).
  - `virtual_bank_account_id` string, uuid — The ID of the virtual bank account to which you want to send the money.
  - `purpose_code` string — An optional parameter, which describes the purpose of the payment based on *ExternalPurpose1Code* from [ISO 20022](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets).

## Response `200`

Bank Transaction

- object
  - `id` string, uuid, required — Bank transaction unique identifier
  - `bank_reference` string, required — Bank reference of the bank transaction (created by the bank to unambiguously identify the bank transaction in the banks systems)

## Other responses

- `400` — Bad Request. The incoming request had a malformed parameter/object.
- `401` — Unauthorized. The caller has not been authenticated.
- `403` — Forbidden. The caller has been authenticated but is not allowed to take the requested action.
- `404` — Not Found. The requested resource could not be found.
- `406` — Not Acceptable. The resource does not have a current representation that would be acceptable to the user agent. "Accept" header defined unsupported value.
- `429` — Too Many Requests. The caller has exceeded their quota for the time period and has been throttled.
- `500` — Internal Server Error. The service encountered an unexpected error.
- `503` — Service Unavailable. The service handling for this request cannot be reached at this time.
- `504` — Gateway Timeout. The service gateway has reached its internal timeout.

---

[API](https://skmtc.net/upvest/apis/upvest-investment-api.md) · [All operations](https://skmtc.net/upvest/apis/upvest-investment-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/upvest/upvest-investment-api/revisions/2c6bc192bc09/schema)
