---
title: "Create a transfer request"
method: POST
path: "/transferRequests"
tags: ["Transfers"]
---

# Create a transfer request

`POST /transferRequests`

## Request

- Base URL: `https://api.groupebpce.com/retail/moneyTransfer/v1`
- URL: `https://api.groupebpce.com/retail/moneyTransfer/v1/transferRequests`
- Auth: OAuth 2
  - Authorization code: `/api/oauth/authorize`
  - Token URL: `/api/oauth/token` scopes: `moneyTransfer.transferRequests:WRITE`

Create a transfer request. A transfer request contains one or several transfer request lines. Each transfer request line will be processed as a transfer.

## Request body

- TransferRequest: Summary of a transfer request. This resource includes only global information of the request. There is no information about the lines details here. The globalAmount property is a free of charge amount.
  - `transferRequestId` string, required: Identifier related to the transfer request
  - `globalAmount` Amount: Default objet which stands for an amount (number value + currency code).
    - `value` number, double, required: Value of the amount.
    - `currencyCode` string, required: Alphabetical code of the currency code (ISO 4217)
  - `transferRequestStatus` 'INITIALIZED' | 'CONFIRMABLE' | 'CONFIRMED' | 'REJECTED' | 'DELETED', required: State of the transfer request. This state is useful to follow and manage a transfer request only during the entry phase. Once confirmed, rejected or canceled, the transfer request is in a terminal state and will not change, so that it is the state of the transfer request line one must then examinate to know if a transfer have been well processed or not.<table><tr><td>Code</td> <td>Meaning</td></tr><tr><td>INITIALIZED</td> <td>The transfer request has been accepted but all transfer lines has not been processed so that the transfer request confirmation step is not yet available.</td></tr><tr><td>CONFIRMABLE</td> <td>The transfer request has been accepted and all transfer lines has been processed so that the transfer request confirmation step is available.</td></tr><tr><td>CONFIRMED</td> <td>The transfer request has been confirmed. One cannot add additional transfer lines to the transfer request anymore.</td></tr><tr><td>REJECTED</td> <td>The BPCE system has rejected all the lines (for a common cause).</td></tr><tr><td>DELETED</td> <td>The subscriber has canceled the transfer request (all lines are canceled).</td></tr></table>
  - `transfersCount` integer, required: Number of transfers included in this request.
  - `creationDateTime` string, date-time, required: Date and time of creation for the request.
  - `modificationDateTime` string, date-time: Date and time of modification for the request.
  - `requestedDebitMode` 'SINGLE' | 'GROUPED': Indicates how the caller wishes the set of transfer request lines to be debited from the source account ; that is if there should be only one global accounting entry with the global amount or alternatively there should be n single transfers (one accounting entry for one transfer request line). <table><tr><td>Code</td> <td>Meaning</td></tr><tr><td>GROUPED</td> <td>One global accounting entry with the global amount.</td></tr><tr><td>SINGLE</td> <td>One accounting entry for each transfer request line.</td></tr></table>
  - `globalFee` Amount: Default objet which stands for an amount (number value + currency code).
    - `value` number, double, required: Value of the amount.
    - `currencyCode` string, required: Alphabetical code of the currency code (ISO 4217)
  - `lines` TransferRequestLine[], required
    - `transferRequestLineId` string, required: Identifier of a transfer request line.
    - `transferRequestId` string, required: Identifier of a transfer request within the transfer request line is embedded.
    - `amount` Amount, required: Default objet which stands for an amount (number value + currency code).
      - `value` number, double, required: Value of the amount.
      - `currencyCode` string, required: Alphabetical code of the currency code (ISO 4217)
    - `creationDateTime` string, date-time: Timestamp of transfer request creation
    - `status` 'TO_VALIDATE' | 'VALIDATED' | 'WAITING_DECISION' | 'PENDING' | 'REFUSED' | 'CANCELED' | 'REJECTED' | 'EXECUTED' | 'REFUNDED' | 'TERMINATED' | 'REJECTED_BY_RECIPIENT_BANK_AND_REFUNDED', required: Transfer processing status (i.e. a transfer request line status).<table><tr><td> Status </td> <td> Meaning </td></tr> <tr><td>TO_VALIDATE</td> <td>Needs to be validated.</td></tr><tr><td>VALIDATED</td> <td>Validated by the subscriber or by an authorized validator.</td></tr><tr><td>WAITING_DECISION</td> <td>Waiting for a decision.</td></tr><tr><td>PENDING</td> <td>Waiting for execution.</td></tr><tr><td>REFUSED</td> <td>Refused.</td></tr><tr><td>CANCELED</td> <td>Canceled by the subscriber.</td></tr><tr><td>REJECTED</td> <td>Rejected by the system.</td></tr><tr><td>EXECUTED</td> <td>Executed.</td></tr><tr><td>REFUNDED</td> <td>Refunded.</td></tr><tr><td>TERMINATED</td> <td>Terminated.</td></tr><tr><td>REJECTED_BY_RECIPIENT_BANK_AND_REFUNDED</td> <td>Transfer that has been rejected by the beneficiary bank and so the transfer request line is refunded in an individual way.</td></tr></table>
    - `frequencyType` 'ONESHOT' | 'STANDING', required: Indicates if a transfer will be processed only one time or if it is a standing transfer.<table><tr><td>Code</td> <td>Meaning</td></tr><tr><td>ONESHOT</td> <td>The transfer will be processed only one time</td></tr><tr><td>STANDING</td> <td>The transfer will be processed several times in a periodic way</td></tr></table>
    - `requestedExecutionDate` string, date: Requested execution date of the transfer. Significant if executionDeadlineType is DELAYED.
    - `executionDate` string, date: Date of execution of the transfer.
    - `remittanceInformation` string, required: Reason for transfer, transmitted to the recipient
    - `sourceAccount` string, required: Identifier of an account.
    - `recipientAccount` string, required: Identifier of an account.
    - `debitEntry` DebitEntry: Information about the debit and the posting to the debited account.
      - `amount` Amount, required: Default objet which stands for an amount (number value + currency code).
        - `value` number, double, required: Value of the amount.
        - `currencyCode` string, required: Alphabetical code of the currency code (ISO 4217)
      - `debitMode` 'SINGLE' | 'GROUPED', required: Indicates how the set of transfer request lines are debited from the source account ; that is if there is only one global accounting entry with the global amount or alternatively there are n single transfers (one accounting entry for one transfer request line). <table><tr><td>Code</td> <td>Meaning</td></tr><tr><td>GROUPED</td> <td>One global accounting entry with the global amount.</td></tr><tr><td>SINGLE</td> <td>One accounting entry for each transfer request line.</td></tr></table>
    - `executionDeadlineType` 'INSTANT' | 'ASAP' | 'DELAYED', required: Execution delay type. <table><tr><td>Code</td> <td>Meaning</td></tr><tr><td>INSTANT</td> <td>Within the minute (instant payment).</td></tr><tr><td>ASAP</td> <td>=As soon as possible (today). The transfer request lines may be processed in the following days.</td></tr><tr><td>DELAYED</td> <td>For a date in the future.</td></tr></table>
    - `executionSettlement` 'INTERNAL' | 'SEPA', required: Type of transfer processing chain used.<table><tr><td>Code</td> <td>Meaning</td></tr><tr><td>INTERNAL</td> <td>Between two internal accounts belonging to the subscriber and managed by the same BPCE bank establishment.</td></tr><tr><td>SEPA</td> <td>SCT Transfer using the SEPA scheme.</td></tr></table>
    - `reasonLabel` string: Reason label in the transfer historic view in the bank web site
    - `forecastedExecutionDate` string, date: Execution date planned for the execution of the transfer (but not contractual)
    - `allTheWayToRecipientInformation` AllTheWayToRecipientInformation: Additional data transmitted to the beneficiary bank, or even the beneficiary himself.
      - `endToEndReference` string: Transfer end-to-end reference, transmited from the sender to the recipient. Corresponds to the EndToEndIdentification field within the meaning of the ISO 20022 standard.
      - `categoryPurposeType` string: Indicates the purpose of the SEPA transfer. Must correspond to the ISO20022 standard (see https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets)
    - `standingTransfer` StandingTransfer: Standing transfer
      - `frequency` 'WEEKLY' | 'EVERY_TWO_WEEKS' | 'MONTHLY' | 'EVERY_TWO_MONTHS' | 'QUARTERLY' | 'EVERY_SIX_MONTHS' | 'ANNUALLY', required: For a standing transfer, this code indicates the frequency of the transfers. <table><tr><td>Code</td> <td>Meaning</td></tr><tr><td>WEEKLY</td> <td>Once every seven days.</td></tr><tr><td>EVERY_TWO_WEEKS</td> <td>Once every fifteen days.</td></tr><tr><td>MONTHLY</td> <td>Once every month.</td></tr><tr><td>EVERY_TWO_MONTHS</td> <td>Once every two months.</td></tr><tr><td>QUARTERLY</td> <td>Once every three months.</td></tr><tr><td>EVERY_SIX_MONTHS</td> <td>Once every six months.</td></tr><tr><td>ANNUALLY</td> <td>Once every year.</td></tr></table>
      - `startDate` string, date, required: The start date for a standing transfer.
      - `endDate` string, date: The last theoretical date for the standing transfer.
      - `lastExecutionDate` string, date: The last actual date a transfer was actually made as part of this standing transfer order. It may be adjusted for calendar reasons.
    - `economicReasonLabel` string: Economic reason code (mandatory if very high amount)
    - `fee` Amount: Default objet which stands for an amount (number value + currency code).
      - `value` number, double, required: Value of the amount.
      - `currencyCode` string, required: Alphabetical code of the currency code (ISO 4217)

## Response `201`

Created. The entry phase is completed and the status of the transfer request can go directly to CONFIRMABLE state.

- TransferRequestSummary: Summary of a transfer request. This resource includes only global information of the request. There is no information about the lines details here. The globalAmount property is a free of charge amount.
  - `transferRequestId` string, required: Identifier related to the transfer request
  - `globalAmount` Amount: Default objet which stands for an amount (number value + currency code).
    - `value` number, double, required: Value of the amount.
    - `currencyCode` string, required: Alphabetical code of the currency code (ISO 4217)
  - `transferRequestStatus` 'INITIALIZED' | 'CONFIRMABLE' | 'CONFIRMED' | 'REJECTED' | 'DELETED', required: State of the transfer request. This state is useful to follow and manage a transfer request only during the entry phase. Once confirmed, rejected or canceled, the transfer request is in a terminal state and will not change, so that it is the state of the transfer request line one must then examinate to know if a transfer have been well processed or not.<table><tr><td>Code</td> <td>Meaning</td></tr><tr><td>INITIALIZED</td> <td>The transfer request has been accepted but all transfer lines has not been processed so that the transfer request confirmation step is not yet available.</td></tr><tr><td>CONFIRMABLE</td> <td>The transfer request has been accepted and all transfer lines has been processed so that the transfer request confirmation step is available.</td></tr><tr><td>CONFIRMED</td> <td>The transfer request has been confirmed. One cannot add additional transfer lines to the transfer request anymore.</td></tr><tr><td>REJECTED</td> <td>The BPCE system has rejected all the lines (for a common cause).</td></tr><tr><td>DELETED</td> <td>The subscriber has canceled the transfer request (all lines are canceled).</td></tr></table>
  - `transfersCount` integer, required: Number of transfers included in this request.
  - `creationDateTime` string, date-time, required: Date and time of creation for the request.
  - `modificationDateTime` string, date-time: Date and time of modification for the request.
  - `requestedDebitMode` 'SINGLE' | 'GROUPED': Indicates how the caller wishes the set of transfer request lines to be debited from the source account ; that is if there should be only one global accounting entry with the global amount or alternatively there should be n single transfers (one accounting entry for one transfer request line). <table><tr><td>Code</td> <td>Meaning</td></tr><tr><td>GROUPED</td> <td>One global accounting entry with the global amount.</td></tr><tr><td>SINGLE</td> <td>One accounting entry for each transfer request line.</td></tr></table>
  - `globalFee` Amount: Default objet which stands for an amount (number value + currency code).
    - `value` number, double, required: Value of the amount.
    - `currencyCode` string, required: Alphabetical code of the currency code (ISO 4217)

## Other responses

- `202`: Accepted - The Transfer Request has been accepted for further processing and will be handled later.
- `400`: Bad Request - HTTP 400
- `401`: Unauthorized - HTTP 401
- `403`: Forbidden - HTTP 403
- `500`: Internal Server Error - HTTP 500.
- `503`: Service Unavailable - HTTP 503.

---

[API](https://skmtc.dev/groupebpce/apis/bpce-open-finance-transfer.md) - [All operations](https://skmtc.dev/groupebpce/apis/bpce-open-finance-transfer/llms.txt) - [OpenAPI document](https://skmtc.dev/groupebpce/apis/bpce-open-finance-transfer/revisions/b85ff7120f49?raw)
