Initiate a SEPA transfer

POST /v2/transfers

This endpoint allows you to initiate a SEPA transfer from your account.

application/json

Body Required

  • amount integer(int64) Required

    Amount of the transfer, in cents. The currency is always EURO.

    Minimum value is 1.

  • Name of the beneficiary. Will be used to create the beneficiary if one doesn't already exist with the same beneficiary_iban, will be ignored otherwise. If you know the beneficiary exists, you don't need to provide a name here.

  • beneficiary_iban string Required

    IBAN of the beneficiary. Note that when you perform a transfer between your own accounts, you can't use a virtual IBAN.

    Format should match the following pattern: [A-Z]{2}[0-9]{2}[a-zA-Z0-9]{1,30}.

  • local_iban string Required

    Existing IBAN to be used as the source of the transfer. Can be the main IBAN of an account or a virtual IBAN. Note that when you perform a transfer between your own accounts, you can't use a virtual IBAN.

    Format should match the following pattern: [A-Z]{2}[0-9]{2}[a-zA-Z0-9]{1,30}.

  • Determines whether to use an instant transfer (available in a few seconds on the beneficiary account), or a standard transfer (1-3 business days). By default, use an instant transfer if available for the given beneficiary, use a standard transfer otherwise.

    Values are standard_only, instant_only, or instant_if_available. Default value is instant_if_available.

  • scheduled_date string(date)

    The ISO8601 formatted date on which the transfer will be executed. This date must not be in the past. If not set, the transfer is executed immediately. Setting this date is incompatible with instant_only strategy.

  • message string

    Message attached to this transfer, visible to all involved parties.

  • Unique identification to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the transaction.

    Minimum length is 1, maximum length is 35. Format should match the following pattern: [a-zA-Z0-9\-\?\:\(\)\.\,\'\+\ ]{1,35}.

  • Internal note attached to this transfer, visible only in your Memo Bank workspace.

  • Custom identifier that will be attached to the transaction resulting from this transfer. It will not be transmitted nor visible in your Memo Bank workspace. It can only be retrieved or used to search for transactions via Memo Bank API.

    Minimum length is 1, maximum length is 256.

  • Custom metadata that will be attached to the transaction resulting from this transfer. It will not be transmitted nor visible in your Memo Bank workspace and can only be retrieved via API.

    Minimum length is 1, maximum length is 2048.

Responses

  • 200 application/json

    OK

    Hide response attributes Show response attributes object
    • id string(uuid) Required

      ID of the transfer

    • reference string(uuid) Required

      Unique reference, can be used to correlate with the resulting Transaction.

    • amount integer(int64) Required

      Amount of the transfer, in cents.

    • currency string Required

      Currency of the amount, in ISO 4217 format.

    • local_iban string Required

      IBAN used as a source of the transfer. It can be the main IBAN of an account or a virtual IBAN.

    • account_id string(uuid)

      ID of the account this transfer belongs to, it can be missing while we process it according to the local IBAN.

    • beneficiary_iban string Required

      IBAN of the beneficiary.

    • Type of the transfer. If the type strategy is instant_if_available, it can be missing while we determine the appropriate type.

      Values are standard or instant.

    • type_strategy string Required

      Strategy used when creating the transfer.

      Values are standard_only, instant_only, or instant_if_available.

    • status string Required

      Current status of the transfer.

      Values are pending, scheduled, authorized, confirmed, canceled, or failed.

    • Code that represents the failure reason when the transfer has failed:

      • insufficient_funds: Not enough funds on your account to execute the transfer.
      • instant_transfer_not_available: The beneficiary can not receive instant transfers.
      • invalid_beneficiary_iban: The beneficiary's IBAN is invalid.
      • unreachable_beneficiary_iban: The beneficiary is unreachable for the given transfer type.
      • maximum_amount_exceeded: The transfer amount exceeds the limit.
      • beneficiary_bank_account_closed: The beneficiary's bank account is closed.
      • beneficiary_bank_error: The beneficiary's bank sent us an error.
      • beneficiary_bank_invalid_bank_details: The beneficiary's bank account does not exist or no longer exists.
      • beneficiary_bank_refusal: The beneficiary's bank has refused the transfer.
      • intermediary_system_error: The interbank network sent us an error.
      • memo_error: Something went wrong on our side.
      • memo_refusal: We had to reject the transfer.
      • execution_failure: Other or undefined pre-settlement execution failures.

      The following codes can only be present on transfers initiated as part of a bulk. When initiating a single transfer, those codes will be returned as an error response and the transfer won’t be created at all:

      • current_account_not_found: The provided local IBAN does not exist.
      • transfer_to_same_account: The transfer cannot credit the debtor account.
      • transfer_to_owned_account_with_virtual_iban: A virtual IBAN cannot be used to transfer between your accounts.
      • transfer_from_saving_account_to_external_beneficiary: You cannot transfer money to external beneficiaries from the Booster account.
      • missing_new_beneficiary_name: The beneficiary does not exist and the name was not provided.
      • new_beneficiary_is_owned_iban: The beneficiary does not exist and is one of your IBAN.

      Values are insufficient_funds, execution_failure, instant_transfer_not_available, invalid_beneficiary_iban, unreachable_beneficiary_iban, maximum_amount_exceeded, current_account_not_found, transfer_to_same_account, transfer_to_owned_account_with_virtual_iban, transfer_from_saving_account_to_external_beneficiary, missing_new_beneficiary_name, new_beneficiary_is_owned_iban, beneficiary_bank_account_closed, beneficiary_bank_error, beneficiary_bank_invalid_bank_details, beneficiary_bank_refusal, intermediary_system_error, memo_error, or memo_refusal.

    • scheduled_date string(date)

      Date on which the transfer was scheduled, if any.

    • message string

      Message attached to this transfer, visible to all involved parties.

    • Unique identification to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the transaction.

    • Internal note attached to this transfer, visible only in your Memo Bank workspace.

    • Custom identifier attached to the transaction resulting from this transfer. It is not transmitted nor visible in your Memo Bank workspace. It can only be retrieved or used to search for transactions via Memo Bank API.

    • Custom metadata attached to the transaction resulting from this transfer. It is not transmitted nor visible in your Memo Bank workspace and can only be retrieved via API.

POST /v2/transfers
curl \
 -X POST https://api.memo.bank/v2/transfers \
 -H "Content-Type: application/json" \
 -d '{"amount":500,"beneficiary_name":"John Doe","beneficiary_iban":"FR2512739000308553756377J95","local_iban":"FR6430003000509825397888D64","type_strategy":"instant_if_available","scheduled_date":"2022-12-05","message":"invoice no12345","end_to_end_id":"b0bfb42baa2642c2af0ca3e880fcd590","internal_note":"phone bill","custom_id":"637406efda8534de8c0e","custom_metadata":"This is some metadata"}'
Request examples
{
  "amount": 500,
  "beneficiary_name": "John Doe",
  "beneficiary_iban": "FR2512739000308553756377J95",
  "local_iban": "FR6430003000509825397888D64",
  "type_strategy": "instant_if_available",
  "scheduled_date": "2022-12-05",
  "message": "invoice no12345",
  "end_to_end_id": "b0bfb42baa2642c2af0ca3e880fcd590",
  "internal_note": "phone bill",
  "custom_id": "637406efda8534de8c0e",
  "custom_metadata": "This is some metadata"
}
Response examples (200)
{
  "id": "61b05c4f-3f72-4951-8c30-a2a9faaa5184",
  "reference": "ab004cfc-99fb-4ba9-bc9c-70982f853cb1",
  "amount": 500,
  "currency": "EUR",
  "local_iban": "FR6430003000509825397888D64",
  "account_id": "708683cb-60f6-464a-a62f-be2e339c34aa",
  "beneficiary_iban": "FR2512739000308553756377J95",
  "transfer_type": "standard",
  "type_strategy": "standard_only",
  "status": "failed",
  "failure_code": "insufficient_funds",
  "scheduled_date": "2024-05-04",
  "message": "invoice no12345",
  "end_to_end_id": "b0bfb42baa2642c2af0ca3e880fcd590",
  "internal_note": "phone bill",
  "custom_id": "637406efda8534de8c0e",
  "custom_metadata": "This is some metadata"
}