---
title: "Upload a payment file"
method: POST
path: "/file-payment-consents/{ConsentId}/file"
tags: ["File payment"]
---

# Upload a payment file

`POST /file-payment-consents/{ConsentId}/file`

## Request

- Base URL: `https://oba-auth.revolut.com`
- URL: `https://oba-auth.revolut.com/file-payment-consents/{ConsentId}/file`
- Auth: API key in header `Authorization` and API key in header `x-jws-signature`

Use this endpoint to upload a file for the given file payment consent.

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

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

For more information, see [Tutorials: Create a file payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-a-file-payment#5-upload-the-csv-file).

## Path parameters

- `ConsentId` string, required

## Headers

- `x-fapi-financial-id` string, required
- `x-fapi-customer-last-logged-time` string
- `x-fapi-customer-ip-address` string
- `x-fapi-interaction-id` string
- `Authorization` string, required
- `x-idempotency-key` string, required
- `x-jws-signature` string, required
- `x-customer-user-agent` string

## Request body `text/csv`

- string: The CSV payments 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 payment 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 UK transfers| Must contain 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 SEPA transfers| Must contain valid IBAN if provided.| | **`BIC`** |For SEPA transfers| Must contain valid BIC if provided.| | **`Recipient bank country`** |Yes| Must contain valid [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code.| | **`Currency`** | Yes |Must contain valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.| | **`Amount`** |Yes| Must match the following pattern `[0-9]*(\.[0-9]*)?`.| | **`Payment reference`** |Yes| Can contain up to 100 characters.| | **`Recipient country`** |No |Must contain 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 `200`

File Payment CSV Uploaded

- EmptyBody, nullable: An empty JSON object (`{}`).

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `405`: Method Not Allowed
- `406`: Not Acceptable
- `415`: Unsupported Media Type
- `429`: Too Many Requests
- `500`: Internal Server 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)
