---
title: "Create a draft payment"
method: POST
path: "/draft-payments"
tags: ["Draft payment"]
---

# Create a draft payment

`POST /draft-payments`

## Request

- Base URL: `https://apis.revolut.com`
- URL: `https://apis.revolut.com/draft-payments`
- Auth: API key in header `Authorization`

Before you begin, ensure that you've got an access token.
For information about getting the access token, see [Tutorial: Create your first draft payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-your-first-draft-payment).
Then, you can use the `/draft_payments` endpoint to create a draft payment on behalf of a user, and the draft payment appears in the user account where they can approve or reject.

In addition, you can use this endpoint to make multiple draft payments by creating new rows for new drafts with the supported CSV format shown in the following tables.

For each draft payment request you make, ensure that the same currency is used.
Upon a successful request for multiple draft payments, you receive a `DraftPaymentID` that represents all the draft payments associated with this request.

Please note that the maximum number of rows in a CSV file is 50 and all the payments must be in the same currency.

:::note
Download an [example CSV file](https://assets.revolut.com/api-docs/oba-api/draft_payments.csv).
:::

For the format of the CSV file, check the request body details.

See also [Tutorials: Work with draft payments](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/work-with-draft-payments).

## Query parameters

- `scheduledDate` string, YYYY-MM-DD
- `title` string

## Headers

- `x-idempotency-key` string, UUID, required

## Request body `text/csv`

- string: The CSV payment file. Provided as CSV-formatted text representing file payments, or as the path to the CSV payments file preceded by `@`. For the format of the CSV file, check the details below. <details><summary>The format of the draft payment CSV file:</summary> |FIELD |REQUIRED|DESCRIPTION| |---|---|---| | **`Name`** |Yes|Can contain up to 80 characters. If `recipient type` is `INDIVIDUAL`, this field must contain a first and a last name, separated by a space.| | **`Recipient type`** |Yes| Can be either `INDIVIDUAL` or `COMPANY`.| | **`Account number`** |For non-IBAN accounts| Must contain a valid account number if provided.| | **`Sort code`** | For UK transfers| Must contain valid sort code if provided.| | **`Routing number`** | For US transfers| Must contain valid routing number if provided.| | **`IBAN`** |For IBAN accounts| Must contain a valid IBAN if provided.| | **`BIC`** |All the countries except for UK/US local| Must contain a valid BIC if provided.| | **`Recipient bank country`** |Yes| Must contain a valid [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code.| | **`Currency`** | Yes |Must contain a valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.| | **`Amount`** |Yes| Match the pattern: `[0-9]*(\\.[0-9]*)?`| | **`Payment reference`** |Yes| Can contain up to 100 characters.| | **`Recipient country`** |No |Must contain a valid [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code if provided.| | **`State or province`** | No| Can contain up to 50 characters.| | **`Address line 1`** |No| Can contain up to 50 characters.| | **`Address line 2`** | No |Can contain up to 50 characters.| | **`City`** |No| Can contain up to 50 characters.| | **`Postal code`** |No| Can contain up to 50 characters.| </details> <br/>

## Response `201`

Draft Payment Details

- DraftPaymentResponse
  - `DraftPaymentId` string, uuid, required: The ID of the draft payment.
  - `RequestedExecutionDate` string, YYYY-MM-DD: The execution date the draft payment is requested.
  - `Status` 'Awaiting' | 'Processed' | 'Approved' | 'Deleted', required: The status of the draft payment.
  - `Transfers` DraftPaymentTransfer[], required
    - `Id` string, uuid, required: The ID of the transfer.
    - `InstructedAmount` InstructedAmount, required
      - `Amount` string, required: The amount of money.
      - `Currency` string, required: [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.
    - `Reference` string, required: The reference of the draft payment.
    - `Status` 'Created' | 'Pending' | 'Completed' | 'Failed' | 'Deleted', required: The status of the draft payment.
    - `Index` integer: The row number the draft payment represents in the CSV file.
    - `FailedReason` string: The reason of the `failed` draft payment.
    - `FailedReasonCode` integer: The reason code for the `failed` draft payment.

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `429`: Too Many Requests
- `503`: Service Unavailable
- `default`: Unexpected error

---

[API](https://skmtc.dev/revolut/apis/open-banking-api.md) - [All operations](https://skmtc.dev/revolut/apis/open-banking-api/llms.txt) - [OpenAPI document](https://skmtc.dev/revolut/apis/open-banking-api/revisions/e2a5bcac7971?raw)
