Skip to main content

Create transfer

POST https://wallet.paysera.com/transfer/rest/v1/transfers

Create transfer in the system. Created transfer is invisible and will be deleted if no more actions are performed.

Authorization​

This endpoint requires MAC (Message Authentication Code) authentication.

Authorization Header Format:

Authorization: MAC id="CLIENT_ID", ts="TIMESTAMP", nonce="RANDOM_STRING", mac="MAC_HASH", ext="body_hash=BODY_HASH"

Example:

Authorization: MAC id="a9b8c7d6e5f4g3h2", ts="1234567890", nonce="xyz123abc456def", mac="dGhpcyBpcyBhIHJhbmRvbSBtYWMgaGFzaCB2YWx1ZQ==", ext="body_hash=cmFuZG9tQm9keUhhc2hWYWx1ZQ%3D%3D"

For more details, see the Authentication section.

Request Body​

FieldTypeRequiredDescription
bank_keystringAn optional parameter that specifies the bank key to be used for routing the transfer. If provided, the transfer will only be created if the specified bank key matches an available routing option. This acts as a safeguard to ensure that transfers are executed through the correct banking route. If an incorrect or non-matching bank key is specified, the transfer request will be rejected. If the parameter is not provided, routing will proceed as normal without this additional validation.
amountobject✓Amount to transfer
beneficiaryobject✓Recipient details
payerobject✓Sender details
final_beneficiaryobjectThis is used where available (for example in SEPA transfers) to provide information about final beneficiary of transfered funds. Just ignore if it's not required in your case
perform_atintegerTimestamp when Transfer should be perfomed. Leave empty to perform as soon as possible
charge_typestringIt's used only for some bank transfers. It's used when banks could charge additional commissions in between payer and beneficiary bank or when beneficiary bank could charge additional commissions. SHA is shared, OUR is payer side. For OUR commission is greater but beneficiary should not be charged - whole specified amount should reach beneficiary. Unfortunatelly, this is still not the case for some rare conditions
urgencystringFor SEPA transfers, standard means that transfer is made from your IBAN, it's processed only in work days. urgent means that transfer is made from our IBAN and is faster to reach the beneficiary
notificationsobject
purposeobjectTransfer purpose and details
passwordobjectIt's used only for internal Paysera transfers. Ignore if not explicitly needed
cancelablebooleanIndicates if the transfer can be canceled. Defaults to true. When you set it to false always wait for the statuses ready, processing or done, as it's transfer statuses from which this parameter starts working.
auto_currency_convertbooleanIndicates if currency convert could be used. Defaults to false.
auto_charge_related_cardbooleanIndicates if related card can be charged. Defaults to false.
auto_process_to_donebooleanIndicates if the transfer should be processed automatically if possible. Defaults to true.
reserve_untilintegerOnly for internal Paysera transfers. Designates the time when, if not confirmed, transfer funds will return to sender. UNIX timestamp
callbackobjectWebhook configuration for receiving real-time transfer status updates.
validation_groupsarrayWhen simulating the transfer, you can specify validation groups to skip all other validations. Defaults to null.

Example​

Request​

POST https://wallet.paysera.com/transfer/rest/v1/transfers
Content-Type: application/json
Authorization: MAC id="CLIENT_ID", ts="TIMESTAMP", nonce="RANDOM_STRING", mac="MAC_HASH", ext="body_hash=BODY_HASH"
{
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"beneficiary": {
"type": "bank",
"name": "John Doe",
"bank_account": {
"iban": "LT123456789012345678"
}
},
"payer": {
"account_number": "EVP7654321"
},
"purpose": {
"details": "Payment for services"
}
}

Response​

{
"id": 12345678,
"hash": "abc123def456",
"status": "done",
"created_at": 1729425600,
"performed_at": 1729425660,
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"beneficiary": {
"type": "bank",
"name": "John Doe"
},
"payer": {
"account_number": "EVP7654321"
},
"commission": {
"amount": "0.50",
"currency": "EUR"
}
}

AUTHORIZATION: HTTP

REQUEST

Base URL
https://wallet.paysera.com
Body REQUIRED
{
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"beneficiary": {
"type": "bank",
"name": "John Doe",
"bank_account": {
"iban": "LT123456789012345678"
}
},
"payer": {
"account_number": "EVP7654321"
},
"purpose": {
"details": "Payment for services"
}
}

RESPONSE

Transfer created successfully
{
"id": 12345678,
"hash": "abc123def456",
"status": "done",
"created_at": 1729425600,
"performed_at": 1729425660,
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"beneficiary": {
"type": "bank",
"name": "John Doe"
},
"payer": {
"account_number": "EVP7654321"
},
"commission": {
"amount": "0.50",
"currency": "EUR"
}
}