{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/groupe-bpce/main/json-schema/groupe-bpce-transfer-request-line-schema.json", "title": "TransferRequestLine", "description": "This resource stands for the detailed characteristics of a transfer request line. A transfer request line is the atomic part of the request that will be processed by a bank transfer.", "x-generated": "2026-10-09", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/groupe-bpce-open-finance-transfer-openapi.yml#/components/schemas/TransferRequestLine", "type": "object", "allOf": [ { "$ref": "#/$defs/TransferRequestLineSummary" }, { "type": "object", "properties": { "debitEntry": { "$ref": "#/$defs/DebitEntry" }, "executionDeadlineType": { "$ref": "#/$defs/ExecutionDeadlineType" }, "executionSettlement": { "$ref": "#/$defs/ExecutionSettlement" }, "reasonLabel": { "description": "Reason label in the transfer historic view in the bank web site", "type": "string", "maxLength": 35 }, "forecastedExecutionDate": { "description": "Execution date planned for the execution of the transfer (but not contractual)", "type": "string", "format": "date", "readOnly": true }, "allTheWayToRecipientInformation": { "$ref": "#/$defs/AllTheWayToRecipientInformation" }, "standingTransfer": { "$ref": "#/$defs/StandingTransfer" }, "economicReasonLabel": { "description": "Economic reason code (mandatory if very high amount)", "type": "string" }, "fee": { "$ref": "#/$defs/Amount" } }, "required": [ "executionDeadlineType", "executionSettlement" ] } ], "$defs": { "AccountIdentifier": { "description": "Identifier of an account.", "type": "string", "minLength": 1 }, "AllTheWayToRecipientInformation": { "description": "Additional data transmitted to the beneficiary bank, or even the beneficiary himself.", "type": "object", "properties": { "endToEndReference": { "description": "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.", "type": "string", "minLength": 1, "maxLength": 35 }, "categoryPurposeType": { "description": "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)", "type": "string", "minLength": 1, "maxLength": 4 } } }, "Amount": { "description": "Default objet which stands for an amount (number value + currency code).", "type": "object", "properties": { "value": { "description": "Value of the amount.", "type": "number", "format": "double" }, "currencyCode": { "description": "Alphabetical code of the currency code (ISO 4217)", "type": "string" } }, "required": [ "value", "currencyCode" ] }, "DebitEntry": { "description": "Information about the debit and the posting to the debited account.", "type": "object", "properties": { "amount": { "$ref": "#/$defs/Amount" }, "debitMode": { "$ref": "#/$defs/TransferRequestDebitMode" } }, "required": [ "amount", "debitMode" ], "readOnly": true }, "ExecutionDeadlineType": { "title": "ExecutionDeadlineType", "description": "Execution delay type.
Code Meaning
INSTANT Within the minute (instant payment).
ASAP =As soon as possible (today). The transfer request lines may be processed in the following days.
DELAYED For a date in the future.
", "type": "string", "enum": [ "INSTANT", "ASAP", "DELAYED" ] }, "ExecutionFrequency": { "title": "ExecutionFrequency", "description": "Indicates if a transfer will be processed only one time or if it is a standing transfer.
Code Meaning
ONESHOT The transfer will be processed only one time
STANDING The transfer will be processed several times in a periodic way
", "type": "string", "enum": [ "ONESHOT", "STANDING" ] }, "ExecutionSettlement": { "title": "Settlement", "description": "Type of transfer processing chain used.
Code Meaning
INTERNAL Between two internal accounts belonging to the subscriber and managed by the same BPCE bank establishment.
SEPA SCT Transfer using the SEPA scheme.
", "type": "string", "enum": [ "INTERNAL", "SEPA" ], "readOnly": true }, "ExecutionStatus": { "title": "ExecutionStatus", "description": "Transfer processing status (i.e. a transfer request line status).
Status Meaning
TO_VALIDATE Needs to be validated.
VALIDATED Validated by the subscriber or by an authorized validator.
WAITING_DECISION Waiting for a decision.
PENDING Waiting for execution.
REFUSED Refused.
CANCELED Canceled by the subscriber.
REJECTED Rejected by the system.
EXECUTED Executed.
REFUNDED Refunded.
TERMINATED Terminated.
REJECTED_BY_RECIPIENT_BANK_AND_REFUNDED Transfer that has been rejected by the beneficiary bank and so the transfer request line is refunded in an individual way.
", "type": "string", "enum": [ "TO_VALIDATE", "VALIDATED", "WAITING_DECISION", "PENDING", "REFUSED", "CANCELED", "REJECTED", "EXECUTED", "REFUNDED", "TERMINATED", "REJECTED_BY_RECIPIENT_BANK_AND_REFUNDED" ], "readOnly": true }, "FrequencyCode": { "title": "FrequencyCode", "description": "For a standing transfer, this code indicates the frequency of the transfers.
Code Meaning
WEEKLY Once every seven days.
EVERY_TWO_WEEKS Once every fifteen days.
MONTHLY Once every month.
EVERY_TWO_MONTHS Once every two months.
QUARTERLY Once every three months.
EVERY_SIX_MONTHS Once every six months.
ANNUALLY Once every year.
", "type": "string", "enum": [ "WEEKLY", "EVERY_TWO_WEEKS", "MONTHLY", "EVERY_TWO_MONTHS", "QUARTERLY", "EVERY_SIX_MONTHS", "ANNUALLY" ] }, "StandingTransfer": { "title": "StandingTransfer", "description": "Standing transfer", "type": "object", "properties": { "frequency": { "$ref": "#/$defs/FrequencyCode" }, "startDate": { "description": "The start date for a standing transfer.", "type": "string", "format": "date" }, "endDate": { "description": "The last theoretical date for the standing transfer.", "type": "string", "format": "date" }, "lastExecutionDate": { "description": "The last actual date a transfer was actually made as part of this standing transfer order. It may be adjusted for calendar reasons.", "type": "string", "format": "date", "readOnly": true } }, "required": [ "frequency", "startDate" ] }, "TransferRequestDebitMode": { "title": "TransferRequestDebitMode", "description": "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).
Code Meaning
GROUPED One global accounting entry with the global amount.
SINGLE One accounting entry for each transfer request line.
", "type": "string", "enum": [ "SINGLE", "GROUPED" ], "readOnly": true }, "TransferRequestLineSummary": { "description": "This resource stands for important characteristics of a transfer request line. The amount attribute is free of charge.", "type": "object", "properties": { "transferRequestLineId": { "description": "Identifier of a transfer request line.", "type": "string", "minLength": 1, "readOnly": true }, "transferRequestId": { "description": "Identifier of a transfer request within the transfer request line is embedded.", "type": "string", "minLength": 1, "readOnly": true }, "amount": { "$ref": "#/$defs/Amount" }, "creationDateTime": { "description": "Timestamp of transfer request creation", "type": "string", "format": "date-time", "readOnly": true }, "status": { "$ref": "#/$defs/ExecutionStatus" }, "frequencyType": { "$ref": "#/$defs/ExecutionFrequency" }, "requestedExecutionDate": { "description": "Requested execution date of the transfer. Significant if executionDeadlineType is DELAYED.", "type": "string", "format": "date", "writeOnly": true }, "executionDate": { "description": "Date of execution of the transfer.", "type": "string", "format": "date", "readOnly": true }, "remittanceInformation": { "description": "Reason for transfer, transmitted to the recipient", "type": "string", "maxLength": 140 }, "sourceAccount": { "$ref": "#/$defs/AccountIdentifier" }, "recipientAccount": { "$ref": "#/$defs/AccountIdentifier" } }, "required": [ "transferRequestLineId", "transferRequestId", "amount", "status", "frequencyType", "remittanceInformation", "sourceAccount", "recipientAccount" ] } } }