Transfers API documentation version 1.1
https://{environment}.paysera.com/transfer/rest/v1
-
environment:
required (one of wallet, wallet-sandbox)
For the Production use
wallet
, for the Sandbox:wallet-sandbox
.
Basic method usage
- Create transfer object (
POST /transfers
). Basic validation is made, transfer gets it's ID, but is not processed or visible in UI. ID should be saved in this state - if any errors would occur, such as networking etc, you will be able to check transfer status afterwards. - Sign transfer (
PUT /transfers/{id}/sign
). This signs the transfer, so we may start processing it. - You should use
GET /transfers/{id}
to get status of the transfer - it can be stillreserved
,processing
,done
(this shows that transfer is sent to the bank successfully) orfailed
(if there was some error when making transfer in corresponding bank system). In working hours transfers are usually made in 15 minutes, so you could poll this information every 10 minutes.
/transfers
Create transfer in the system. Created transfer is invisible and will be deleted if no more actions are performed.
Get list of transfers by filter
post /transfers
Create transfer in the system. Created transfer is invisible and will be deleted if no more actions are performed.
Body
Media type: application/json
Type: object
Properties-
amount:
required (object)
Amount to transfer
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
Beneficiary type.
*_account
field must be provided for given type. For example, you must providebank_account
if type isbank
. No other*_account
can be provided in this case -
identifiers:
(object)
It's optional and should be provided if you know identifier (like company code, personal code etc.) of beneficiary. KPP and TAX code could be required in Russia
-
general:
(string)
General identifier
-
personal_code:
(string)
Personal code
-
legal_code:
(string)
Legal code
-
tax_code:
(string)
Tax code - VAT code or INN code
-
kpp_code:
(string)
KPP code
-
general:
(string)
-
name:
(string)
Beneficiary name (required when transfer is made to other bank)
-
person_type:
(one of natural, legal)
This is optional and designates whether beneficiary is legal entity or a person
-
address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_account:
(object)
-
iban:
(string)
IBAN number
-
account_number:
(string)
Account number
-
country_code:
(string)
We use ISO 3166-1 alpha-2 for country codes. This is not required if IBAN is specified
-
bic:
(string)
This should be SWIFT bank code, if available for that transfer
-
bank_code:
(string)
This is local bank code and depends on Country. It's not required if IBAN is provided
-
sort_code:
(string)
Sort code
-
bank_address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_title:
(string)
Bank title
-
correspondent_bank:
(object)
-
bank_title:
(string)
Bank title
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
-
iban:
(string)
-
tax_account:
(object)
-
identifier:
required (string)
Tax identifier
-
identifier:
required (string)
-
paysera_account:
(object)
Only one of identifiers is required, usually
account_number
should be used-
account_number:
(string)
Paysera account number
-
email:
(string)
Email
-
phone:
(string)
Phone
-
account_number:
(string)
-
payza_account:
(object)
-
email:
required (string)
Payza email
-
email:
required (string)
-
webmoney_account:
(object)
-
purse:
required (string)
Webmoney purse identificator
-
purse:
required (string)
-
additional_information:
(object)
Beneficiary additional information
-
type:
required (one of natural, legal)
Designates whether beneficiary is legal entity or a person.
-
city:
(string)
Beneficiary city
Example:
London
-
state:
(string)
Beneficiary state
-
country:
(string)
Use upper case ISO 3166-1 alpha-2 codes
Example:
US
-
postal_code:
(string)
Beneficiary postcode
-
bank_branch_code:
(string)
Bank branch code
-
type:
required (one of natural, legal)
-
client_identifier:
(object)
Beneficiary identification type - legal document that verifies the identity of the account. Only one identification type is allowed.
- personal_number: (string)
- customer_code: (string)
- tax_payer_code: (string)
- worker_identification_number: (string)
- passport_number: (string)
- social_security_number: (string)
- driver_license_number: (string)
- nonresident_registration_number: (string)
- company_code: (string)
-
date_and_place_of_birth:
(object)
-
date_of_birth:
required (string)
Beneficiary date of birth.
Example:
2017-03-31
-
city_of_birth:
required (string)
Beneficiary city of birth.
Example:
London
-
country_of_birth:
required (string)
The nationality of the individual beneficiary. Country codes are ISO 3166-2 standard.
Example:
GB
-
date_of_birth:
required (string)
-
other:
(object)
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
-
payer:
required (object)
-
account_number:
required (string)
This is your account number in Paysera system
-
reference:
(string)
Only used for tax transfers
-
account_number:
required (string)
-
final_beneficiary:
(object)
This 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
-
name:
(string)
Beneficiary name
-
identifiers:
(object)
It's optional and should be provided if you know identifier (like company code, personal code etc.) of beneficiary. KPP and TAX code could be required in Russia
-
general:
(string)
General identifier
-
personal_code:
(string)
Personal code
-
legal_code:
(string)
Legal code
-
tax_code:
(string)
Tax code - VAT code or INN code
-
kpp_code:
(string)
KPP code
-
general:
(string)
-
person_type:
(one of natural, legal)
Person type
-
name:
(string)
-
perform_at:
(integer)
Timestamp when Transfer should be perfomed. Leave empty to perform as soon as possible
Annotations
- datetime_timestamp
-
charge_type:
(one of SHA, OUR)
It'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. ForOUR
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 -
urgency:
(one of standard, urgent)
For 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 -
notifications:
(object)
-
done:
(object)
-
locale:
required (string)
ISO 639-1 2 letter code
-
email:
required (string)
Notifcation email
-
locale:
required (string)
-
done:
(object)
-
purpose:
required (object)
-
details:
(string)
Transfer purpose details. Always required, unless it's SEPA transfer and
reference
is specified. -
reference:
(string)
It's used only for SEPA transfers instead of
description
. You could always just provide the description field. -
purpose_code:
(string)
Purpose code is to classify the nature of the transfer. See 'https://accounts.paysera.com/public/transfer/rest/v1/purpose-codes' for a list of codes. Optional unless required for specific destinations.
-
vo_code:
(string)
VO code is used only for transfers to Russia
-
ocr_code:
(string)
OCR code is used for transfers to Norway, Sweden, Finland and Denmark
-
details_options:
(object)
-
preserve:
(boolean)
For some countries, like Great Britain, details can be really short. In such cases we usually put a link to our page where beneficiary could find all the details of the transfer. In some cases it's important that beneficiary would receive original details, as it could include reference number etc. This field controls this behaviour
-
preserve:
(boolean)
-
code:
(one of cash_in, cash_out, payment, app_transfer)
Transfer purpose code. Leave this one empty unless explicitly required to fill
-
details:
(string)
-
password:
(object)
It's used only for internal Paysera transfers. Ignore if not explicitly needed
-
value:
required (string)
Password value
-
value:
required (string)
-
cancelable:
(boolean)
Indicates if the transfer can be canceled. Defaults to true. When you set it to false always wait for the statuses
ready
,processing
ordone
, as it's transfer statuses from which this parameter starts working. -
auto_currency_convert:
(boolean)
Indicates if currency convert could be used. Defaults to false.
-
auto_charge_related_card:
(boolean)
Indicates if related card can be charged. Defaults to false.
-
auto_process_to_done:
(boolean)
Indicates if the transfer should be processed automatically if possible. Defaults to true.
-
reserve_until:
(integer)
Only for internal Paysera transfers. Designates the time when, if not confirmed, transfer funds will return to sender. UNIX timestamp
Annotations
- datetime_timestamp
-
callback:
(object)
-
statuses:
required (array of items)
What transfer status changes to listen for. Available statuses:
waiting_funds
waiting_registration
waiting_password
reserved
processing
rejected
revoked
failed
done
-
url:
required (string)
Url to call on status change
-
statuses:
required (array of items)
Examples:
Paysera:
{
"amount": {"amount": "100.00", "currency": "EUR"},
"beneficiary": {
"type": "paysera",
"name": "Name Surname",
"paysera_account": {
"email": "example@example.com"
}
},
"payer": {
"account_number": "EVP9210002477825"
},
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement"
}
}
Payza:
{
"amount": {"amount": "100.00", "currency": "EUR"},
"beneficiary": {
"type": "payza",
"name": "Name Surname",
"payza_account": {
"email": "example@example.com"
}
},
"payer": {
"account_number": "EVP9210002477825"
},
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement"
}
}
Webmoney:
{
"amount": {"amount": "100.00", "currency": "USD"},
"beneficiary": {
"type": "webmoney",
"name": "Name Surname",
"webmoney_account": {
"purse": "Z984217345623"
}
},
"payer": {
"account_number": "EVP9210002477825"
},
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement"
}
}
Tax:
{
"amount": {"amount": "100.00", "currency": "EUR"},
"beneficiary": {
"type": "tax",
"name": "Name Surname",
"tax_account": {
"identifier": "123"
}
},
"payer": {
"account_number": "EVP9210002477825"
},
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement"
}
}
Bank:
{
"amount": {"amount": "100.00", "currency": "EUR"},
"beneficiary": {
"type": "bank",
"name": "Name Surname",
"bank_account": {
"iban": "LT873500010002284563"
},
"additional_information": {
"type": "natural",
"city": "New York",
"state": "NY",
"country": "US",
"postal_code": "11235",
"bank_branch_code": "US46516"
},
"client_identifier": {
"date_and_place_of_birth": {
"date_of_birth": "1986-11-08",
"city_of_birth": "Vilnius",
"country_of_birth": "LT"
}
}
},
"payer": {
"account_number": "EVP9210002477825"
},
"urgency": "standard",
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement"
}
}
Transfer with callback:
{
"amount": {"amount": "100.00", "currency": "EUR"},
"beneficiary": {
"type": "bank",
"name": "Name Surname",
"bank_account": {
"iban": "LT873500010002284563"
}
},
"payer": {
"account_number": "EVP9210002477825"
},
"urgency": "standard",
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement"
},
"callback": {
"url": "http://www.dummy-domain.com/callback",
"statuses": [
"waiting_funds",
"waiting_registration",
"waiting_password"
]
}
}
HTTP status code 200
Success
Body
Media type: application/json
Type: object
Properties-
id:
required (string)
Transfer id
-
status:
required (one of new, registered, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Transfer is
new
when you create it. It must be registered or reserved for it to appear or be performed.new
is just a way to make initial validation and for you to get ID to save for future use. As money are not yet reserved, in this state you can safely save the ID and if any error occurs, fetch status of the transfer by it's ID.registered
is visible in UI, but not signed - it will need to be signed before processing.waiting_funds
is when there are not enough funds in Paysera account to process the transfer. If you use/reserve
endpoint (which you should), this should never be the case as the enpoint itself will return error code and notmove
transfer fromnew
.waiting_registration
,waiting_password
,frozen
- only for internal Paysera transfers.reserved
- money are reserved for the transfer.processing
- transfer has been began to process.done
- transfer successfuly sent from our partner bank or some other system. This does not guarantee that it will not be returned because of some errors in the future - we cannot guarantee this as we get successful status, too. failed is if transfer has failed when importing to our bank partner or some other system. In this casefailure_status
should provide more information -
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
Beneficiary type.
*_account
field must be provided for given type. For example, you must providebank_account
if type isbank
. No other*_account
can be provided in this case -
identifiers:
(object)
It's optional and should be provided if you know identifier (like company code, personal code etc.) of beneficiary. KPP and TAX code could be required in Russia
-
general:
(string)
General identifier
-
personal_code:
(string)
Personal code
-
legal_code:
(string)
Legal code
-
tax_code:
(string)
Tax code - VAT code or INN code
-
kpp_code:
(string)
KPP code
-
general:
(string)
-
name:
(string)
Beneficiary name (required when transfer is made to other bank)
-
person_type:
(one of natural, legal)
This is optional and designates whether beneficiary is legal entity or a person
-
address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_account:
(object)
-
iban:
(string)
IBAN number
-
account_number:
(string)
Account number
-
country_code:
(string)
We use ISO 3166-1 alpha-2 for country codes. This is not required if IBAN is specified
-
bic:
(string)
This should be SWIFT bank code, if available for that transfer
-
bank_code:
(string)
This is local bank code and depends on Country. It's not required if IBAN is provided
-
sort_code:
(string)
Sort code
-
bank_address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_title:
(string)
Bank title
-
correspondent_bank:
(object)
-
bank_title:
(string)
Bank title
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
-
iban:
(string)
-
tax_account:
(object)
-
identifier:
required (string)
Tax identifier
-
identifier:
required (string)
-
paysera_account:
(object)
Only one of identifiers is required, usually
account_number
should be used-
account_number:
(string)
Paysera account number
-
email:
(string)
Email
-
phone:
(string)
Phone
-
account_number:
(string)
-
payza_account:
(object)
-
email:
required (string)
Payza email
-
email:
required (string)
-
webmoney_account:
(object)
-
purse:
required (string)
Webmoney purse identificator
-
purse:
required (string)
-
additional_information:
(object)
Beneficiary additional information
-
type:
required (one of natural, legal)
Designates whether beneficiary is legal entity or a person.
-
city:
(string)
Beneficiary city
Example:
London
-
state:
(string)
Beneficiary state
-
country:
(string)
Use upper case ISO 3166-1 alpha-2 codes
Example:
US
-
postal_code:
(string)
Beneficiary postcode
-
bank_branch_code:
(string)
Bank branch code
-
type:
required (one of natural, legal)
-
client_identifier:
(object)
Beneficiary identification type - legal document that verifies the identity of the account. Only one identification type is allowed.
- personal_number: (string)
- customer_code: (string)
- tax_payer_code: (string)
- worker_identification_number: (string)
- passport_number: (string)
- social_security_number: (string)
- driver_license_number: (string)
- nonresident_registration_number: (string)
- company_code: (string)
-
date_and_place_of_birth:
(object)
-
date_of_birth:
required (string)
Beneficiary date of birth.
Example:
2017-03-31
-
city_of_birth:
required (string)
Beneficiary city of birth.
Example:
London
-
country_of_birth:
required (string)
The nationality of the individual beneficiary. Country codes are ISO 3166-2 standard.
Example:
GB
-
date_of_birth:
required (string)
-
other:
(object)
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
-
initiator:
required (object)
-
user_id:
(integer)
Initiator user id
-
client_id:
(integer)
Initiator client id
-
user_id:
(integer)
-
created_at:
required (integer)
Timestamp when Transfer was created
Annotations
- datetime_timestamp
-
performed_at:
(integer)
Timestamp when Transfer was performed
Annotations
- datetime_timestamp
-
failure_status:
(object)
-
code:
(string)
Status code
-
message:
(string)
Failure message
-
code:
(string)
-
out_commission:
(object)
Transfer out commission amount
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
max:
(object)
Maximum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
fix:
(object)
Fixed commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
percent:
(number)
-
original_out_commission:
(object)
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
estimated_processing_date:
(integer)
-
password:
(object)
It's used only for internal Paysera transfers. Ignore if not explicitly needed
-
status:
(one of pending, unlocked)
Password status
-
value:
required (string)
Password value
-
status:
(one of pending, unlocked)
-
allowed_to_cancel:
(boolean)
Readonly. Indicates whether transfer can be cancelled or not.
Example:
Response:
{
"id": "123",
"status": "new",
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"beneficiary": {
"type": "bank",
"name": "Name Surname",
"bank_account": {
"iban": "LT873500010002284563"
},
"additional_information": {
"type": "natural",
"city": "New York",
"state": "NY",
"country": "US",
"postal_code": "11235",
"bank_branch_code": "US46516"
},
"client_identifier": {
"date_and_place_of_birth": {
"date_of_birth": "1986-11-08",
"city_of_birth": "Vilnius",
"country_of_birth": "LT"
}
}
},
"payer": {
"account_number": "EVP9210002477825"
},
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement",
"details_options": {
"preserve": false
}
},
"cancelable": true,
"allowed_to_cancel": true,
"initiator": {
"user_id": 321
},
"created_at": 1489420006,
"perform_at": 1489420006,
"auto_currency_convert": false,
"auto_charge_related_card": false,
"out_commission": {
"amount": "0.29",
"currency": "EUR"
},
"additional_information": {
"estimated_processing_date": 1489420906,
"out_commission_rule": {
"percent": 0,
"fix": {
"amount": "0.29",
"currency": "EUR"
}
},
"original_out_commission": {
"amount": "0.29",
"currency": "EUR"
},
"correspondent_bank_fees_may_apply": false
}
}
HTTP status code 400
Bad Request. Basic status codes are described in Wallet API: https://developers.paysera.com/en/wallet/. If you get an error, you'll also receive a body with error details. You should always look at error
field. If some fields are missing or incorrect from the object provided in request body, we'll pass them in error_properties
field
Body
Media type: application/json
Type: object
Properties-
error:
required (one of limits_exceeded, not_enough_funds, invalid_payer_account, invalid_parameters, payment_to_same_account, invalid_password)
limits_exceeded
: Limits in the account was exceedednot_enough_funds
: There is not enough funds in your Paysera accountinvalid_payer_account
: If payer.account_number is incorrectinvalid_parameters
: Some of given parameters inside request object are not specified or incorrect. This usually means that there will beerror_properties
with fields and error descriptions for each fieldinvalid_password
: Provided password value does not match transfer password value. Internal transfers only
get /transfers
Get list of transfers by filter
Query Parameters
-
created_date_from:
(integer)
Timestamp when Transfer was created from
Annotations
- datetime_timestamp
-
created_date_to:
(integer)
Timestamp when Transfer was created to
Annotations
- datetime_timestamp
-
credit_account_number:
(string)
Credit account number
-
debit_account_number:
(string)
Debit account number
-
statuses:
(array of items)
Transfers statuses
- limit: (integer - default: 20)
- offset: (integer)
- order_by: (string - default: id)
- order_direction: (one of desc, asc)
- after: (string)
- before: (string)
HTTP status code 200
Success
Body
Media type: application/json
Type: Paysera.Result
Properties-
transfers:
(array of Transfer output)
Items: Transfer output
-
id:
required (string)
Transfer id
-
status:
required (one of new, registered, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Transfer is
new
when you create it. It must be registered or reserved for it to appear or be performed.new
is just a way to make initial validation and for you to get ID to save for future use. As money are not yet reserved, in this state you can safely save the ID and if any error occurs, fetch status of the transfer by it's ID.registered
is visible in UI, but not signed - it will need to be signed before processing.waiting_funds
is when there are not enough funds in Paysera account to process the transfer. If you use/reserve
endpoint (which you should), this should never be the case as the enpoint itself will return error code and notmove
transfer fromnew
.waiting_registration
,waiting_password
,frozen
- only for internal Paysera transfers.reserved
- money are reserved for the transfer.processing
- transfer has been began to process.done
- transfer successfuly sent from our partner bank or some other system. This does not guarantee that it will not be returned because of some errors in the future - we cannot guarantee this as we get successful status, too. failed is if transfer has failed when importing to our bank partner or some other system. In this casefailure_status
should provide more information -
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
Beneficiary type.
*_account
field must be provided for given type. For example, you must providebank_account
if type isbank
. No other*_account
can be provided in this case -
identifiers:
(object)
It's optional and should be provided if you know identifier (like company code, personal code etc.) of beneficiary. KPP and TAX code could be required in Russia
-
general:
(string)
General identifier
-
personal_code:
(string)
Personal code
-
legal_code:
(string)
Legal code
-
tax_code:
(string)
Tax code - VAT code or INN code
-
kpp_code:
(string)
KPP code
-
general:
(string)
-
name:
(string)
Beneficiary name (required when transfer is made to other bank)
-
person_type:
(one of natural, legal)
This is optional and designates whether beneficiary is legal entity or a person
-
address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_account:
(object)
-
iban:
(string)
IBAN number
-
account_number:
(string)
Account number
-
country_code:
(string)
We use ISO 3166-1 alpha-2 for country codes. This is not required if IBAN is specified
-
bic:
(string)
This should be SWIFT bank code, if available for that transfer
-
bank_code:
(string)
This is local bank code and depends on Country. It's not required if IBAN is provided
-
sort_code:
(string)
Sort code
-
bank_address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_title:
(string)
Bank title
-
correspondent_bank:
(object)
-
bank_title:
(string)
Bank title
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
-
iban:
(string)
-
tax_account:
(object)
-
identifier:
required (string)
Tax identifier
-
identifier:
required (string)
-
paysera_account:
(object)
Only one of identifiers is required, usually
account_number
should be used-
account_number:
(string)
Paysera account number
-
email:
(string)
Email
-
phone:
(string)
Phone
-
account_number:
(string)
-
payza_account:
(object)
-
email:
required (string)
Payza email
-
email:
required (string)
-
webmoney_account:
(object)
-
purse:
required (string)
Webmoney purse identificator
-
purse:
required (string)
-
additional_information:
(object)
Beneficiary additional information
-
type:
required (one of natural, legal)
Designates whether beneficiary is legal entity or a person.
-
city:
(string)
Beneficiary city
Example:
London
-
state:
(string)
Beneficiary state
-
country:
(string)
Use upper case ISO 3166-1 alpha-2 codes
Example:
US
-
postal_code:
(string)
Beneficiary postcode
-
bank_branch_code:
(string)
Bank branch code
-
type:
required (one of natural, legal)
-
client_identifier:
(object)
Beneficiary identification type - legal document that verifies the identity of the account. Only one identification type is allowed.
- personal_number: (string)
- customer_code: (string)
- tax_payer_code: (string)
- worker_identification_number: (string)
- passport_number: (string)
- social_security_number: (string)
- driver_license_number: (string)
- nonresident_registration_number: (string)
- company_code: (string)
-
date_and_place_of_birth:
(object)
-
date_of_birth:
required (string)
Beneficiary date of birth.
Example:
2017-03-31
-
city_of_birth:
required (string)
Beneficiary city of birth.
Example:
London
-
country_of_birth:
required (string)
The nationality of the individual beneficiary. Country codes are ISO 3166-2 standard.
Example:
GB
-
date_of_birth:
required (string)
-
other:
(object)
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
-
initiator:
required (object)
-
user_id:
(integer)
Initiator user id
-
client_id:
(integer)
Initiator client id
-
user_id:
(integer)
-
created_at:
required (integer)
Timestamp when Transfer was created
Annotations
- datetime_timestamp
-
performed_at:
(integer)
Timestamp when Transfer was performed
Annotations
- datetime_timestamp
-
failure_status:
(object)
-
code:
(string)
Status code
-
message:
(string)
Failure message
-
code:
(string)
-
out_commission:
(object)
Transfer out commission amount
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
max:
(object)
Maximum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
fix:
(object)
Fixed commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
percent:
(number)
-
original_out_commission:
(object)
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
estimated_processing_date:
(integer)
-
password:
(object)
It's used only for internal Paysera transfers. Ignore if not explicitly needed
-
status:
(one of pending, unlocked)
Password status
-
value:
required (string)
Password value
-
status:
(one of pending, unlocked)
-
allowed_to_cancel:
(boolean)
Readonly. Indicates whether transfer can be cancelled or not.
Example:
Response:
{ "id": "123", "status": "new", "amount": { "amount": "100.00", "currency": "EUR" }, "beneficiary": { "type": "bank", "name": "Name Surname", "bank_account": { "iban": "LT873500010002284563" }, "additional_information": { "type": "natural", "city": "New York", "state": "NY", "country": "US", "postal_code": "11235", "bank_branch_code": "US46516" }, "client_identifier": { "date_and_place_of_birth": { "date_of_birth": "1986-11-08", "city_of_birth": "Vilnius", "country_of_birth": "LT" } } }, "payer": { "account_number": "EVP9210002477825" }, "purpose": { "details": "Transfer details that will be seen in beneficiary statement", "details_options": { "preserve": false } }, "cancelable": true, "allowed_to_cancel": true, "initiator": { "user_id": 321 }, "created_at": 1489420006, "perform_at": 1489420006, "auto_currency_convert": false, "auto_charge_related_card": false, "out_commission": { "amount": "0.29", "currency": "EUR" }, "additional_information": { "estimated_processing_date": 1489420906, "out_commission_rule": { "percent": 0, "fix": { "amount": "0.29", "currency": "EUR" } }, "original_out_commission": { "amount": "0.29", "currency": "EUR" }, "correspondent_bank_fees_may_apply": false } }
-
id:
required (string)
Get transfer.
Revoke transfer.
get /transfers/{id}
Get transfer.
URI Parameters
- id: required (integer)
HTTP status code 200
Success
Body
Media type: application/json
Type: object
Properties-
id:
required (string)
Transfer id
-
status:
required (one of new, registered, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Transfer is
new
when you create it. It must be registered or reserved for it to appear or be performed.new
is just a way to make initial validation and for you to get ID to save for future use. As money are not yet reserved, in this state you can safely save the ID and if any error occurs, fetch status of the transfer by it's ID.registered
is visible in UI, but not signed - it will need to be signed before processing.waiting_funds
is when there are not enough funds in Paysera account to process the transfer. If you use/reserve
endpoint (which you should), this should never be the case as the enpoint itself will return error code and notmove
transfer fromnew
.waiting_registration
,waiting_password
,frozen
- only for internal Paysera transfers.reserved
- money are reserved for the transfer.processing
- transfer has been began to process.done
- transfer successfuly sent from our partner bank or some other system. This does not guarantee that it will not be returned because of some errors in the future - we cannot guarantee this as we get successful status, too. failed is if transfer has failed when importing to our bank partner or some other system. In this casefailure_status
should provide more information -
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
Beneficiary type.
*_account
field must be provided for given type. For example, you must providebank_account
if type isbank
. No other*_account
can be provided in this case -
identifiers:
(object)
It's optional and should be provided if you know identifier (like company code, personal code etc.) of beneficiary. KPP and TAX code could be required in Russia
-
general:
(string)
General identifier
-
personal_code:
(string)
Personal code
-
legal_code:
(string)
Legal code
-
tax_code:
(string)
Tax code - VAT code or INN code
-
kpp_code:
(string)
KPP code
-
general:
(string)
-
name:
(string)
Beneficiary name (required when transfer is made to other bank)
-
person_type:
(one of natural, legal)
This is optional and designates whether beneficiary is legal entity or a person
-
address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_account:
(object)
-
iban:
(string)
IBAN number
-
account_number:
(string)
Account number
-
country_code:
(string)
We use ISO 3166-1 alpha-2 for country codes. This is not required if IBAN is specified
-
bic:
(string)
This should be SWIFT bank code, if available for that transfer
-
bank_code:
(string)
This is local bank code and depends on Country. It's not required if IBAN is provided
-
sort_code:
(string)
Sort code
-
bank_address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_title:
(string)
Bank title
-
correspondent_bank:
(object)
-
bank_title:
(string)
Bank title
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
-
iban:
(string)
-
tax_account:
(object)
-
identifier:
required (string)
Tax identifier
-
identifier:
required (string)
-
paysera_account:
(object)
Only one of identifiers is required, usually
account_number
should be used-
account_number:
(string)
Paysera account number
-
email:
(string)
Email
-
phone:
(string)
Phone
-
account_number:
(string)
-
payza_account:
(object)
-
email:
required (string)
Payza email
-
email:
required (string)
-
webmoney_account:
(object)
-
purse:
required (string)
Webmoney purse identificator
-
purse:
required (string)
-
additional_information:
(object)
Beneficiary additional information
-
type:
required (one of natural, legal)
Designates whether beneficiary is legal entity or a person.
-
city:
(string)
Beneficiary city
Example:
London
-
state:
(string)
Beneficiary state
-
country:
(string)
Use upper case ISO 3166-1 alpha-2 codes
Example:
US
-
postal_code:
(string)
Beneficiary postcode
-
bank_branch_code:
(string)
Bank branch code
-
type:
required (one of natural, legal)
-
client_identifier:
(object)
Beneficiary identification type - legal document that verifies the identity of the account. Only one identification type is allowed.
- personal_number: (string)
- customer_code: (string)
- tax_payer_code: (string)
- worker_identification_number: (string)
- passport_number: (string)
- social_security_number: (string)
- driver_license_number: (string)
- nonresident_registration_number: (string)
- company_code: (string)
-
date_and_place_of_birth:
(object)
-
date_of_birth:
required (string)
Beneficiary date of birth.
Example:
2017-03-31
-
city_of_birth:
required (string)
Beneficiary city of birth.
Example:
London
-
country_of_birth:
required (string)
The nationality of the individual beneficiary. Country codes are ISO 3166-2 standard.
Example:
GB
-
date_of_birth:
required (string)
-
other:
(object)
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
-
initiator:
required (object)
-
user_id:
(integer)
Initiator user id
-
client_id:
(integer)
Initiator client id
-
user_id:
(integer)
-
created_at:
required (integer)
Timestamp when Transfer was created
Annotations
- datetime_timestamp
-
performed_at:
(integer)
Timestamp when Transfer was performed
Annotations
- datetime_timestamp
-
failure_status:
(object)
-
code:
(string)
Status code
-
message:
(string)
Failure message
-
code:
(string)
-
out_commission:
(object)
Transfer out commission amount
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
max:
(object)
Maximum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
fix:
(object)
Fixed commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
percent:
(number)
-
original_out_commission:
(object)
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
estimated_processing_date:
(integer)
-
password:
(object)
It's used only for internal Paysera transfers. Ignore if not explicitly needed
-
status:
(one of pending, unlocked)
Password status
-
value:
required (string)
Password value
-
status:
(one of pending, unlocked)
-
allowed_to_cancel:
(boolean)
Readonly. Indicates whether transfer can be cancelled or not.
Example:
Response:
{
"id": "123",
"status": "new",
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"beneficiary": {
"type": "bank",
"name": "Name Surname",
"bank_account": {
"iban": "LT873500010002284563"
},
"additional_information": {
"type": "natural",
"city": "New York",
"state": "NY",
"country": "US",
"postal_code": "11235",
"bank_branch_code": "US46516"
},
"client_identifier": {
"date_and_place_of_birth": {
"date_of_birth": "1986-11-08",
"city_of_birth": "Vilnius",
"country_of_birth": "LT"
}
}
},
"payer": {
"account_number": "EVP9210002477825"
},
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement",
"details_options": {
"preserve": false
}
},
"cancelable": true,
"allowed_to_cancel": true,
"initiator": {
"user_id": 321
},
"created_at": 1489420006,
"perform_at": 1489420006,
"auto_currency_convert": false,
"auto_charge_related_card": false,
"out_commission": {
"amount": "0.29",
"currency": "EUR"
},
"additional_information": {
"estimated_processing_date": 1489420906,
"out_commission_rule": {
"percent": 0,
"fix": {
"amount": "0.29",
"currency": "EUR"
}
},
"original_out_commission": {
"amount": "0.29",
"currency": "EUR"
},
"correspondent_bank_fees_may_apply": false
}
}
HTTP status code 400
Bad Request. Basic status codes are described in Wallet API: https://developers.paysera.com/en/wallet/. If you get an error, you'll also receive a body with error details. You should always look at error
field. If some fields are missing or incorrect from the object provided in request body, we'll pass them in error_properties
field
Body
Media type: application/json
Type: object
Properties-
error:
required (one of limits_exceeded, not_enough_funds, invalid_payer_account, invalid_parameters, payment_to_same_account, invalid_password)
limits_exceeded
: Limits in the account was exceedednot_enough_funds
: There is not enough funds in your Paysera accountinvalid_payer_account
: If payer.account_number is incorrectinvalid_parameters
: Some of given parameters inside request object are not specified or incorrect. This usually means that there will beerror_properties
with fields and error descriptions for each fieldinvalid_password
: Provided password value does not match transfer password value. Internal transfers only
delete /transfers/{id}
Revoke transfer.
URI Parameters
- id: required (integer)
HTTP status code 200
Success
Body
Media type: application/json
Type: object
Properties-
id:
required (string)
Transfer id
-
status:
required (one of new, registered, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Transfer is
new
when you create it. It must be registered or reserved for it to appear or be performed.new
is just a way to make initial validation and for you to get ID to save for future use. As money are not yet reserved, in this state you can safely save the ID and if any error occurs, fetch status of the transfer by it's ID.registered
is visible in UI, but not signed - it will need to be signed before processing.waiting_funds
is when there are not enough funds in Paysera account to process the transfer. If you use/reserve
endpoint (which you should), this should never be the case as the enpoint itself will return error code and notmove
transfer fromnew
.waiting_registration
,waiting_password
,frozen
- only for internal Paysera transfers.reserved
- money are reserved for the transfer.processing
- transfer has been began to process.done
- transfer successfuly sent from our partner bank or some other system. This does not guarantee that it will not be returned because of some errors in the future - we cannot guarantee this as we get successful status, too. failed is if transfer has failed when importing to our bank partner or some other system. In this casefailure_status
should provide more information -
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
Beneficiary type.
*_account
field must be provided for given type. For example, you must providebank_account
if type isbank
. No other*_account
can be provided in this case -
identifiers:
(object)
It's optional and should be provided if you know identifier (like company code, personal code etc.) of beneficiary. KPP and TAX code could be required in Russia
-
general:
(string)
General identifier
-
personal_code:
(string)
Personal code
-
legal_code:
(string)
Legal code
-
tax_code:
(string)
Tax code - VAT code or INN code
-
kpp_code:
(string)
KPP code
-
general:
(string)
-
name:
(string)
Beneficiary name (required when transfer is made to other bank)
-
person_type:
(one of natural, legal)
This is optional and designates whether beneficiary is legal entity or a person
-
address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_account:
(object)
-
iban:
(string)
IBAN number
-
account_number:
(string)
Account number
-
country_code:
(string)
We use ISO 3166-1 alpha-2 for country codes. This is not required if IBAN is specified
-
bic:
(string)
This should be SWIFT bank code, if available for that transfer
-
bank_code:
(string)
This is local bank code and depends on Country. It's not required if IBAN is provided
-
sort_code:
(string)
Sort code
-
bank_address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_title:
(string)
Bank title
-
correspondent_bank:
(object)
-
bank_title:
(string)
Bank title
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
-
iban:
(string)
-
tax_account:
(object)
-
identifier:
required (string)
Tax identifier
-
identifier:
required (string)
-
paysera_account:
(object)
Only one of identifiers is required, usually
account_number
should be used-
account_number:
(string)
Paysera account number
-
email:
(string)
Email
-
phone:
(string)
Phone
-
account_number:
(string)
-
payza_account:
(object)
-
email:
required (string)
Payza email
-
email:
required (string)
-
webmoney_account:
(object)
-
purse:
required (string)
Webmoney purse identificator
-
purse:
required (string)
-
additional_information:
(object)
Beneficiary additional information
-
type:
required (one of natural, legal)
Designates whether beneficiary is legal entity or a person.
-
city:
(string)
Beneficiary city
Example:
London
-
state:
(string)
Beneficiary state
-
country:
(string)
Use upper case ISO 3166-1 alpha-2 codes
Example:
US
-
postal_code:
(string)
Beneficiary postcode
-
bank_branch_code:
(string)
Bank branch code
-
type:
required (one of natural, legal)
-
client_identifier:
(object)
Beneficiary identification type - legal document that verifies the identity of the account. Only one identification type is allowed.
- personal_number: (string)
- customer_code: (string)
- tax_payer_code: (string)
- worker_identification_number: (string)
- passport_number: (string)
- social_security_number: (string)
- driver_license_number: (string)
- nonresident_registration_number: (string)
- company_code: (string)
-
date_and_place_of_birth:
(object)
-
date_of_birth:
required (string)
Beneficiary date of birth.
Example:
2017-03-31
-
city_of_birth:
required (string)
Beneficiary city of birth.
Example:
London
-
country_of_birth:
required (string)
The nationality of the individual beneficiary. Country codes are ISO 3166-2 standard.
Example:
GB
-
date_of_birth:
required (string)
-
other:
(object)
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
-
initiator:
required (object)
-
user_id:
(integer)
Initiator user id
-
client_id:
(integer)
Initiator client id
-
user_id:
(integer)
-
created_at:
required (integer)
Timestamp when Transfer was created
Annotations
- datetime_timestamp
-
performed_at:
(integer)
Timestamp when Transfer was performed
Annotations
- datetime_timestamp
-
failure_status:
(object)
-
code:
(string)
Status code
-
message:
(string)
Failure message
-
code:
(string)
-
out_commission:
(object)
Transfer out commission amount
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
max:
(object)
Maximum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
fix:
(object)
Fixed commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
percent:
(number)
-
original_out_commission:
(object)
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
estimated_processing_date:
(integer)
-
password:
(object)
It's used only for internal Paysera transfers. Ignore if not explicitly needed
-
status:
(one of pending, unlocked)
Password status
-
value:
required (string)
Password value
-
status:
(one of pending, unlocked)
-
allowed_to_cancel:
(boolean)
Readonly. Indicates whether transfer can be cancelled or not.
Example:
Response:
{
"id": "123",
"status": "new",
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"beneficiary": {
"type": "bank",
"name": "Name Surname",
"bank_account": {
"iban": "LT873500010002284563"
},
"additional_information": {
"type": "natural",
"city": "New York",
"state": "NY",
"country": "US",
"postal_code": "11235",
"bank_branch_code": "US46516"
},
"client_identifier": {
"date_and_place_of_birth": {
"date_of_birth": "1986-11-08",
"city_of_birth": "Vilnius",
"country_of_birth": "LT"
}
}
},
"payer": {
"account_number": "EVP9210002477825"
},
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement",
"details_options": {
"preserve": false
}
},
"cancelable": true,
"allowed_to_cancel": true,
"initiator": {
"user_id": 321
},
"created_at": 1489420006,
"perform_at": 1489420006,
"auto_currency_convert": false,
"auto_charge_related_card": false,
"out_commission": {
"amount": "0.29",
"currency": "EUR"
},
"additional_information": {
"estimated_processing_date": 1489420906,
"out_commission_rule": {
"percent": 0,
"fix": {
"amount": "0.29",
"currency": "EUR"
}
},
"original_out_commission": {
"amount": "0.29",
"currency": "EUR"
},
"correspondent_bank_fees_may_apply": false
}
}
HTTP status code 400
Bad Request. Basic status codes are described in Wallet API: https://developers.paysera.com/en/wallet/. If you get an error, you'll also receive a body with error details. You should always look at error
field. If some fields are missing or incorrect from the object provided in request body, we'll pass them in error_properties
field
Body
Media type: application/json
Type: object
Properties-
error:
required (one of limits_exceeded, not_enough_funds, invalid_payer_account, invalid_parameters, payment_to_same_account, invalid_password)
limits_exceeded
: Limits in the account was exceedednot_enough_funds
: There is not enough funds in your Paysera accountinvalid_payer_account
: If payer.account_number is incorrectinvalid_parameters
: Some of given parameters inside request object are not specified or incorrect. This usually means that there will beerror_properties
with fields and error descriptions for each fieldinvalid_password
: Provided password value does not match transfer password value. Internal transfers only
It reserves funds for transfer and makes it "reserved". It's enough for transfer to be processed. If there are not enough funds, any limits are reached etc., transfer will be still "new" and no action will take place. Returns error if no funds available.
put /transfers/{id}/reserve
It reserves funds for transfer and makes it "reserved". It's enough for transfer to be processed. If there are not enough funds, any limits are reached etc., transfer will be still "new" and no action will take place. Returns error if no funds available.
URI Parameters
- id: required (integer)
Body
Media type: application/json
Type: object
Properties-
convert_currency:
(array of items)
convert_currency
is optional when reserving the transfer. You can use other endpoint for currency conversion if you like. Passing currency convert object when reserving funds for transfer will guarantee that either both currency conversion and reserving the funds will be completed or neither of them. When converting currency, both currencies and one of from/to is required (never both of them). As currency rate could spike at some specific moment, there are fields to safeguard from unwanted currency rates -min_to_amount
andmax_from_amount
. For example, if you passfrom_amount
andmin_to_amount
, butto_amount
would be calculated smaller thanmin_to_amount
, conversion would not be made and you'd get an errorItems: items
-
from_currency:
required (string)
Currency to convert from
-
to_currency:
required (string)
Currency to convert to
-
to_amount:
(string)
From amount
-
from_amount:
(string)
From amount
-
min_to_amount:
(string)
Min to amount
-
max_from_amount:
(string)
Max from amount
-
account_number:
(string)
Account number
-
from_currency:
required (string)
-
user_ip:
(string)
IP
of the request client, not always available
HTTP status code 200
Success
Body
Media type: application/json
Type: object
Properties-
id:
required (string)
Transfer id
-
status:
required (one of new, registered, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Transfer is
new
when you create it. It must be registered or reserved for it to appear or be performed.new
is just a way to make initial validation and for you to get ID to save for future use. As money are not yet reserved, in this state you can safely save the ID and if any error occurs, fetch status of the transfer by it's ID.registered
is visible in UI, but not signed - it will need to be signed before processing.waiting_funds
is when there are not enough funds in Paysera account to process the transfer. If you use/reserve
endpoint (which you should), this should never be the case as the enpoint itself will return error code and notmove
transfer fromnew
.waiting_registration
,waiting_password
,frozen
- only for internal Paysera transfers.reserved
- money are reserved for the transfer.processing
- transfer has been began to process.done
- transfer successfuly sent from our partner bank or some other system. This does not guarantee that it will not be returned because of some errors in the future - we cannot guarantee this as we get successful status, too. failed is if transfer has failed when importing to our bank partner or some other system. In this casefailure_status
should provide more information -
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
Beneficiary type.
*_account
field must be provided for given type. For example, you must providebank_account
if type isbank
. No other*_account
can be provided in this case -
identifiers:
(object)
It's optional and should be provided if you know identifier (like company code, personal code etc.) of beneficiary. KPP and TAX code could be required in Russia
-
general:
(string)
General identifier
-
personal_code:
(string)
Personal code
-
legal_code:
(string)
Legal code
-
tax_code:
(string)
Tax code - VAT code or INN code
-
kpp_code:
(string)
KPP code
-
general:
(string)
-
name:
(string)
Beneficiary name (required when transfer is made to other bank)
-
person_type:
(one of natural, legal)
This is optional and designates whether beneficiary is legal entity or a person
-
address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_account:
(object)
-
iban:
(string)
IBAN number
-
account_number:
(string)
Account number
-
country_code:
(string)
We use ISO 3166-1 alpha-2 for country codes. This is not required if IBAN is specified
-
bic:
(string)
This should be SWIFT bank code, if available for that transfer
-
bank_code:
(string)
This is local bank code and depends on Country. It's not required if IBAN is provided
-
sort_code:
(string)
Sort code
-
bank_address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_title:
(string)
Bank title
-
correspondent_bank:
(object)
-
bank_title:
(string)
Bank title
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
-
iban:
(string)
-
tax_account:
(object)
-
identifier:
required (string)
Tax identifier
-
identifier:
required (string)
-
paysera_account:
(object)
Only one of identifiers is required, usually
account_number
should be used-
account_number:
(string)
Paysera account number
-
email:
(string)
Email
-
phone:
(string)
Phone
-
account_number:
(string)
-
payza_account:
(object)
-
email:
required (string)
Payza email
-
email:
required (string)
-
webmoney_account:
(object)
-
purse:
required (string)
Webmoney purse identificator
-
purse:
required (string)
-
additional_information:
(object)
Beneficiary additional information
-
type:
required (one of natural, legal)
Designates whether beneficiary is legal entity or a person.
-
city:
(string)
Beneficiary city
Example:
London
-
state:
(string)
Beneficiary state
-
country:
(string)
Use upper case ISO 3166-1 alpha-2 codes
Example:
US
-
postal_code:
(string)
Beneficiary postcode
-
bank_branch_code:
(string)
Bank branch code
-
type:
required (one of natural, legal)
-
client_identifier:
(object)
Beneficiary identification type - legal document that verifies the identity of the account. Only one identification type is allowed.
- personal_number: (string)
- customer_code: (string)
- tax_payer_code: (string)
- worker_identification_number: (string)
- passport_number: (string)
- social_security_number: (string)
- driver_license_number: (string)
- nonresident_registration_number: (string)
- company_code: (string)
-
date_and_place_of_birth:
(object)
-
date_of_birth:
required (string)
Beneficiary date of birth.
Example:
2017-03-31
-
city_of_birth:
required (string)
Beneficiary city of birth.
Example:
London
-
country_of_birth:
required (string)
The nationality of the individual beneficiary. Country codes are ISO 3166-2 standard.
Example:
GB
-
date_of_birth:
required (string)
-
other:
(object)
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
-
initiator:
required (object)
-
user_id:
(integer)
Initiator user id
-
client_id:
(integer)
Initiator client id
-
user_id:
(integer)
-
created_at:
required (integer)
Timestamp when Transfer was created
Annotations
- datetime_timestamp
-
performed_at:
(integer)
Timestamp when Transfer was performed
Annotations
- datetime_timestamp
-
failure_status:
(object)
-
code:
(string)
Status code
-
message:
(string)
Failure message
-
code:
(string)
-
out_commission:
(object)
Transfer out commission amount
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
max:
(object)
Maximum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
fix:
(object)
Fixed commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
percent:
(number)
-
original_out_commission:
(object)
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
estimated_processing_date:
(integer)
-
password:
(object)
It's used only for internal Paysera transfers. Ignore if not explicitly needed
-
status:
(one of pending, unlocked)
Password status
-
value:
required (string)
Password value
-
status:
(one of pending, unlocked)
-
allowed_to_cancel:
(boolean)
Readonly. Indicates whether transfer can be cancelled or not.
Example:
Response:
{
"id": "123",
"status": "new",
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"beneficiary": {
"type": "bank",
"name": "Name Surname",
"bank_account": {
"iban": "LT873500010002284563"
},
"additional_information": {
"type": "natural",
"city": "New York",
"state": "NY",
"country": "US",
"postal_code": "11235",
"bank_branch_code": "US46516"
},
"client_identifier": {
"date_and_place_of_birth": {
"date_of_birth": "1986-11-08",
"city_of_birth": "Vilnius",
"country_of_birth": "LT"
}
}
},
"payer": {
"account_number": "EVP9210002477825"
},
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement",
"details_options": {
"preserve": false
}
},
"cancelable": true,
"allowed_to_cancel": true,
"initiator": {
"user_id": 321
},
"created_at": 1489420006,
"perform_at": 1489420006,
"auto_currency_convert": false,
"auto_charge_related_card": false,
"out_commission": {
"amount": "0.29",
"currency": "EUR"
},
"additional_information": {
"estimated_processing_date": 1489420906,
"out_commission_rule": {
"percent": 0,
"fix": {
"amount": "0.29",
"currency": "EUR"
}
},
"original_out_commission": {
"amount": "0.29",
"currency": "EUR"
},
"correspondent_bank_fees_may_apply": false
}
}
HTTP status code 400
Bad Request. Basic status codes are described in Wallet API: https://developers.paysera.com/en/wallet/. If you get an error, you'll also receive a body with error details. You should always look at error
field. If some fields are missing or incorrect from the object provided in request body, we'll pass them in error_properties
field
Body
Media type: application/json
Type: object
Properties-
error:
required (one of limits_exceeded, not_enough_funds, invalid_payer_account, invalid_parameters, payment_to_same_account, invalid_password)
limits_exceeded
: Limits in the account was exceedednot_enough_funds
: There is not enough funds in your Paysera accountinvalid_payer_account
: If payer.account_number is incorrectinvalid_parameters
: Some of given parameters inside request object are not specified or incorrect. This usually means that there will beerror_properties
with fields and error descriptions for each fieldinvalid_password
: Provided password value does not match transfer password value. Internal transfers only
Provide password for transfer with status waiting_password
. If operation is successful, transfer status becomes done
. Available only for internal transfers. Returns error if password provided is invalid.
put /transfers/{id}/provide-password
Provide password for transfer with status waiting_password
. If operation is successful, transfer status becomes done
. Available only for internal transfers. Returns error if password provided is invalid.
URI Parameters
- id: required (integer)
Body
Media type: application/json
Type: object
Properties-
value:
required (string)
Password value
Example:
{
"value": "secr3t"
}
HTTP status code 200
Success
Body
Media type: application/json
Type: object
Properties-
id:
required (string)
Transfer id
-
status:
required (one of new, registered, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Transfer is
new
when you create it. It must be registered or reserved for it to appear or be performed.new
is just a way to make initial validation and for you to get ID to save for future use. As money are not yet reserved, in this state you can safely save the ID and if any error occurs, fetch status of the transfer by it's ID.registered
is visible in UI, but not signed - it will need to be signed before processing.waiting_funds
is when there are not enough funds in Paysera account to process the transfer. If you use/reserve
endpoint (which you should), this should never be the case as the enpoint itself will return error code and notmove
transfer fromnew
.waiting_registration
,waiting_password
,frozen
- only for internal Paysera transfers.reserved
- money are reserved for the transfer.processing
- transfer has been began to process.done
- transfer successfuly sent from our partner bank or some other system. This does not guarantee that it will not be returned because of some errors in the future - we cannot guarantee this as we get successful status, too. failed is if transfer has failed when importing to our bank partner or some other system. In this casefailure_status
should provide more information -
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
Beneficiary type.
*_account
field must be provided for given type. For example, you must providebank_account
if type isbank
. No other*_account
can be provided in this case -
identifiers:
(object)
It's optional and should be provided if you know identifier (like company code, personal code etc.) of beneficiary. KPP and TAX code could be required in Russia
-
general:
(string)
General identifier
-
personal_code:
(string)
Personal code
-
legal_code:
(string)
Legal code
-
tax_code:
(string)
Tax code - VAT code or INN code
-
kpp_code:
(string)
KPP code
-
general:
(string)
-
name:
(string)
Beneficiary name (required when transfer is made to other bank)
-
person_type:
(one of natural, legal)
This is optional and designates whether beneficiary is legal entity or a person
-
address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_account:
(object)
-
iban:
(string)
IBAN number
-
account_number:
(string)
Account number
-
country_code:
(string)
We use ISO 3166-1 alpha-2 for country codes. This is not required if IBAN is specified
-
bic:
(string)
This should be SWIFT bank code, if available for that transfer
-
bank_code:
(string)
This is local bank code and depends on Country. It's not required if IBAN is provided
-
sort_code:
(string)
Sort code
-
bank_address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_title:
(string)
Bank title
-
correspondent_bank:
(object)
-
bank_title:
(string)
Bank title
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
-
iban:
(string)
-
tax_account:
(object)
-
identifier:
required (string)
Tax identifier
-
identifier:
required (string)
-
paysera_account:
(object)
Only one of identifiers is required, usually
account_number
should be used-
account_number:
(string)
Paysera account number
-
email:
(string)
Email
-
phone:
(string)
Phone
-
account_number:
(string)
-
payza_account:
(object)
-
email:
required (string)
Payza email
-
email:
required (string)
-
webmoney_account:
(object)
-
purse:
required (string)
Webmoney purse identificator
-
purse:
required (string)
-
additional_information:
(object)
Beneficiary additional information
-
type:
required (one of natural, legal)
Designates whether beneficiary is legal entity or a person.
-
city:
(string)
Beneficiary city
Example:
London
-
state:
(string)
Beneficiary state
-
country:
(string)
Use upper case ISO 3166-1 alpha-2 codes
Example:
US
-
postal_code:
(string)
Beneficiary postcode
-
bank_branch_code:
(string)
Bank branch code
-
type:
required (one of natural, legal)
-
client_identifier:
(object)
Beneficiary identification type - legal document that verifies the identity of the account. Only one identification type is allowed.
- personal_number: (string)
- customer_code: (string)
- tax_payer_code: (string)
- worker_identification_number: (string)
- passport_number: (string)
- social_security_number: (string)
- driver_license_number: (string)
- nonresident_registration_number: (string)
- company_code: (string)
-
date_and_place_of_birth:
(object)
-
date_of_birth:
required (string)
Beneficiary date of birth.
Example:
2017-03-31
-
city_of_birth:
required (string)
Beneficiary city of birth.
Example:
London
-
country_of_birth:
required (string)
The nationality of the individual beneficiary. Country codes are ISO 3166-2 standard.
Example:
GB
-
date_of_birth:
required (string)
-
other:
(object)
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
-
initiator:
required (object)
-
user_id:
(integer)
Initiator user id
-
client_id:
(integer)
Initiator client id
-
user_id:
(integer)
-
created_at:
required (integer)
Timestamp when Transfer was created
Annotations
- datetime_timestamp
-
performed_at:
(integer)
Timestamp when Transfer was performed
Annotations
- datetime_timestamp
-
failure_status:
(object)
-
code:
(string)
Status code
-
message:
(string)
Failure message
-
code:
(string)
-
out_commission:
(object)
Transfer out commission amount
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
max:
(object)
Maximum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
fix:
(object)
Fixed commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
percent:
(number)
-
original_out_commission:
(object)
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
estimated_processing_date:
(integer)
-
password:
(object)
It's used only for internal Paysera transfers. Ignore if not explicitly needed
-
status:
(one of pending, unlocked)
Password status
-
value:
required (string)
Password value
-
status:
(one of pending, unlocked)
-
allowed_to_cancel:
(boolean)
Readonly. Indicates whether transfer can be cancelled or not.
Example:
Response:
{
"id": "123",
"status": "new",
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"beneficiary": {
"type": "bank",
"name": "Name Surname",
"bank_account": {
"iban": "LT873500010002284563"
},
"additional_information": {
"type": "natural",
"city": "New York",
"state": "NY",
"country": "US",
"postal_code": "11235",
"bank_branch_code": "US46516"
},
"client_identifier": {
"date_and_place_of_birth": {
"date_of_birth": "1986-11-08",
"city_of_birth": "Vilnius",
"country_of_birth": "LT"
}
}
},
"payer": {
"account_number": "EVP9210002477825"
},
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement",
"details_options": {
"preserve": false
}
},
"cancelable": true,
"allowed_to_cancel": true,
"initiator": {
"user_id": 321
},
"created_at": 1489420006,
"perform_at": 1489420006,
"auto_currency_convert": false,
"auto_charge_related_card": false,
"out_commission": {
"amount": "0.29",
"currency": "EUR"
},
"additional_information": {
"estimated_processing_date": 1489420906,
"out_commission_rule": {
"percent": 0,
"fix": {
"amount": "0.29",
"currency": "EUR"
}
},
"original_out_commission": {
"amount": "0.29",
"currency": "EUR"
},
"correspondent_bank_fees_may_apply": false
}
}
HTTP status code 400
Bad Request. Basic status codes are described in Wallet API: https://developers.paysera.com/en/wallet/. If you get an error, you'll also receive a body with error details. You should always look at error
field. If some fields are missing or incorrect from the object provided in request body, we'll pass them in error_properties
field
Body
Media type: application/json
Type: object
Properties-
error:
required (one of limits_exceeded, not_enough_funds, invalid_payer_account, invalid_parameters, payment_to_same_account, invalid_password)
limits_exceeded
: Limits in the account was exceedednot_enough_funds
: There is not enough funds in your Paysera accountinvalid_payer_account
: If payer.account_number is incorrectinvalid_parameters
: Some of given parameters inside request object are not specified or incorrect. This usually means that there will beerror_properties
with fields and error descriptions for each fieldinvalid_password
: Provided password value does not match transfer password value. Internal transfers only
Make transfer visible in frontend for signing. If currency convert operations are related to transfer, they are done when transfer becomes reserved
. If there are expectations in currency convert requests, transfer becomes failed
together with related conversion request(s) if those expectations fails. This only makes transfer "reserved", so it's visible in our Web UI for signing
put /transfers/{id}/register
Make transfer visible in frontend for signing. If currency convert operations are related to transfer, they are done when transfer becomes reserved
. If there are expectations in currency convert requests, transfer becomes failed
together with related conversion request(s) if those expectations fails. This only makes transfer "reserved", so it's visible in our Web UI for signing
URI Parameters
- id: required (integer)
Body
Media type: application/json
Type: object
Properties-
convert_currency:
(array of items)
convert_currency
is optional when reserving the transfer. You can use other endpoint for currency conversion if you like. Passing currency convert object when reserving funds for transfer will guarantee that either both currency conversion and reserving the funds will be completed or neither of them. When converting currency, both currencies and one of from/to is required (never both of them). As currency rate could spike at some specific moment, there are fields to safeguard from unwanted currency rates -min_to_amount
andmax_from_amount
. For example, if you passfrom_amount
andmin_to_amount
, butto_amount
would be calculated smaller thanmin_to_amount
, conversion would not be made and you'd get an errorItems: items
-
from_currency:
required (string)
Currency to convert from
-
to_currency:
required (string)
Currency to convert to
-
to_amount:
(string)
From amount
-
from_amount:
(string)
From amount
-
min_to_amount:
(string)
Min to amount
-
max_from_amount:
(string)
Max from amount
-
account_number:
(string)
Account number
-
from_currency:
required (string)
-
user_ip:
(string)
IP
of the request client, not always available
HTTP status code 200
Success
Body
Media type: application/json
Type: object
Properties-
id:
required (string)
Transfer id
-
status:
required (one of new, registered, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Transfer is
new
when you create it. It must be registered or reserved for it to appear or be performed.new
is just a way to make initial validation and for you to get ID to save for future use. As money are not yet reserved, in this state you can safely save the ID and if any error occurs, fetch status of the transfer by it's ID.registered
is visible in UI, but not signed - it will need to be signed before processing.waiting_funds
is when there are not enough funds in Paysera account to process the transfer. If you use/reserve
endpoint (which you should), this should never be the case as the enpoint itself will return error code and notmove
transfer fromnew
.waiting_registration
,waiting_password
,frozen
- only for internal Paysera transfers.reserved
- money are reserved for the transfer.processing
- transfer has been began to process.done
- transfer successfuly sent from our partner bank or some other system. This does not guarantee that it will not be returned because of some errors in the future - we cannot guarantee this as we get successful status, too. failed is if transfer has failed when importing to our bank partner or some other system. In this casefailure_status
should provide more information -
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
Beneficiary type.
*_account
field must be provided for given type. For example, you must providebank_account
if type isbank
. No other*_account
can be provided in this case -
identifiers:
(object)
It's optional and should be provided if you know identifier (like company code, personal code etc.) of beneficiary. KPP and TAX code could be required in Russia
-
general:
(string)
General identifier
-
personal_code:
(string)
Personal code
-
legal_code:
(string)
Legal code
-
tax_code:
(string)
Tax code - VAT code or INN code
-
kpp_code:
(string)
KPP code
-
general:
(string)
-
name:
(string)
Beneficiary name (required when transfer is made to other bank)
-
person_type:
(one of natural, legal)
This is optional and designates whether beneficiary is legal entity or a person
-
address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_account:
(object)
-
iban:
(string)
IBAN number
-
account_number:
(string)
Account number
-
country_code:
(string)
We use ISO 3166-1 alpha-2 for country codes. This is not required if IBAN is specified
-
bic:
(string)
This should be SWIFT bank code, if available for that transfer
-
bank_code:
(string)
This is local bank code and depends on Country. It's not required if IBAN is provided
-
sort_code:
(string)
Sort code
-
bank_address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_title:
(string)
Bank title
-
correspondent_bank:
(object)
-
bank_title:
(string)
Bank title
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
-
iban:
(string)
-
tax_account:
(object)
-
identifier:
required (string)
Tax identifier
-
identifier:
required (string)
-
paysera_account:
(object)
Only one of identifiers is required, usually
account_number
should be used-
account_number:
(string)
Paysera account number
-
email:
(string)
Email
-
phone:
(string)
Phone
-
account_number:
(string)
-
payza_account:
(object)
-
email:
required (string)
Payza email
-
email:
required (string)
-
webmoney_account:
(object)
-
purse:
required (string)
Webmoney purse identificator
-
purse:
required (string)
-
additional_information:
(object)
Beneficiary additional information
-
type:
required (one of natural, legal)
Designates whether beneficiary is legal entity or a person.
-
city:
(string)
Beneficiary city
Example:
London
-
state:
(string)
Beneficiary state
-
country:
(string)
Use upper case ISO 3166-1 alpha-2 codes
Example:
US
-
postal_code:
(string)
Beneficiary postcode
-
bank_branch_code:
(string)
Bank branch code
-
type:
required (one of natural, legal)
-
client_identifier:
(object)
Beneficiary identification type - legal document that verifies the identity of the account. Only one identification type is allowed.
- personal_number: (string)
- customer_code: (string)
- tax_payer_code: (string)
- worker_identification_number: (string)
- passport_number: (string)
- social_security_number: (string)
- driver_license_number: (string)
- nonresident_registration_number: (string)
- company_code: (string)
-
date_and_place_of_birth:
(object)
-
date_of_birth:
required (string)
Beneficiary date of birth.
Example:
2017-03-31
-
city_of_birth:
required (string)
Beneficiary city of birth.
Example:
London
-
country_of_birth:
required (string)
The nationality of the individual beneficiary. Country codes are ISO 3166-2 standard.
Example:
GB
-
date_of_birth:
required (string)
-
other:
(object)
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
-
initiator:
required (object)
-
user_id:
(integer)
Initiator user id
-
client_id:
(integer)
Initiator client id
-
user_id:
(integer)
-
created_at:
required (integer)
Timestamp when Transfer was created
Annotations
- datetime_timestamp
-
performed_at:
(integer)
Timestamp when Transfer was performed
Annotations
- datetime_timestamp
-
failure_status:
(object)
-
code:
(string)
Status code
-
message:
(string)
Failure message
-
code:
(string)
-
out_commission:
(object)
Transfer out commission amount
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
max:
(object)
Maximum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
fix:
(object)
Fixed commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
percent:
(number)
-
original_out_commission:
(object)
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
estimated_processing_date:
(integer)
-
password:
(object)
It's used only for internal Paysera transfers. Ignore if not explicitly needed
-
status:
(one of pending, unlocked)
Password status
-
value:
required (string)
Password value
-
status:
(one of pending, unlocked)
-
allowed_to_cancel:
(boolean)
Readonly. Indicates whether transfer can be cancelled or not.
Example:
Response:
{
"id": "123",
"status": "new",
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"beneficiary": {
"type": "bank",
"name": "Name Surname",
"bank_account": {
"iban": "LT873500010002284563"
},
"additional_information": {
"type": "natural",
"city": "New York",
"state": "NY",
"country": "US",
"postal_code": "11235",
"bank_branch_code": "US46516"
},
"client_identifier": {
"date_and_place_of_birth": {
"date_of_birth": "1986-11-08",
"city_of_birth": "Vilnius",
"country_of_birth": "LT"
}
}
},
"payer": {
"account_number": "EVP9210002477825"
},
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement",
"details_options": {
"preserve": false
}
},
"cancelable": true,
"allowed_to_cancel": true,
"initiator": {
"user_id": 321
},
"created_at": 1489420006,
"perform_at": 1489420006,
"auto_currency_convert": false,
"auto_charge_related_card": false,
"out_commission": {
"amount": "0.29",
"currency": "EUR"
},
"additional_information": {
"estimated_processing_date": 1489420906,
"out_commission_rule": {
"percent": 0,
"fix": {
"amount": "0.29",
"currency": "EUR"
}
},
"original_out_commission": {
"amount": "0.29",
"currency": "EUR"
},
"correspondent_bank_fees_may_apply": false
}
}
HTTP status code 400
Bad Request. Basic status codes are described in Wallet API: https://developers.paysera.com/en/wallet/. If you get an error, you'll also receive a body with error details. You should always look at error
field. If some fields are missing or incorrect from the object provided in request body, we'll pass them in error_properties
field
Body
Media type: application/json
Type: object
Properties-
error:
required (one of limits_exceeded, not_enough_funds, invalid_payer_account, invalid_parameters, payment_to_same_account, invalid_password)
limits_exceeded
: Limits in the account was exceedednot_enough_funds
: There is not enough funds in your Paysera accountinvalid_payer_account
: If payer.account_number is incorrectinvalid_parameters
: Some of given parameters inside request object are not specified or incorrect. This usually means that there will beerror_properties
with fields and error descriptions for each fieldinvalid_password
: Provided password value does not match transfer password value. Internal transfers only
Signs the transfer
put /transfers/{id}/sign
Signs the transfer
URI Parameters
- id: required (integer)
Body
Media type: application/json
Type: object
Properties-
convert_currency:
(array of items)
convert_currency
is optional when reserving the transfer. You can use other endpoint for currency conversion if you like. Passing currency convert object when reserving funds for transfer will guarantee that either both currency conversion and reserving the funds will be completed or neither of them. When converting currency, both currencies and one of from/to is required (never both of them). As currency rate could spike at some specific moment, there are fields to safeguard from unwanted currency rates -min_to_amount
andmax_from_amount
. For example, if you passfrom_amount
andmin_to_amount
, butto_amount
would be calculated smaller thanmin_to_amount
, conversion would not be made and you'd get an errorItems: items
-
from_currency:
required (string)
Currency to convert from
-
to_currency:
required (string)
Currency to convert to
-
to_amount:
(string)
From amount
-
from_amount:
(string)
From amount
-
min_to_amount:
(string)
Min to amount
-
max_from_amount:
(string)
Max from amount
-
account_number:
(string)
Account number
-
from_currency:
required (string)
-
user_ip:
(string)
IP
of the request client, not always available
HTTP status code 200
Success
Body
Media type: application/json
Type: object
Properties-
id:
required (string)
Transfer id
-
status:
required (one of new, registered, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Transfer is
new
when you create it. It must be registered or reserved for it to appear or be performed.new
is just a way to make initial validation and for you to get ID to save for future use. As money are not yet reserved, in this state you can safely save the ID and if any error occurs, fetch status of the transfer by it's ID.registered
is visible in UI, but not signed - it will need to be signed before processing.waiting_funds
is when there are not enough funds in Paysera account to process the transfer. If you use/reserve
endpoint (which you should), this should never be the case as the enpoint itself will return error code and notmove
transfer fromnew
.waiting_registration
,waiting_password
,frozen
- only for internal Paysera transfers.reserved
- money are reserved for the transfer.processing
- transfer has been began to process.done
- transfer successfuly sent from our partner bank or some other system. This does not guarantee that it will not be returned because of some errors in the future - we cannot guarantee this as we get successful status, too. failed is if transfer has failed when importing to our bank partner or some other system. In this casefailure_status
should provide more information -
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
Beneficiary type.
*_account
field must be provided for given type. For example, you must providebank_account
if type isbank
. No other*_account
can be provided in this case -
identifiers:
(object)
It's optional and should be provided if you know identifier (like company code, personal code etc.) of beneficiary. KPP and TAX code could be required in Russia
-
general:
(string)
General identifier
-
personal_code:
(string)
Personal code
-
legal_code:
(string)
Legal code
-
tax_code:
(string)
Tax code - VAT code or INN code
-
kpp_code:
(string)
KPP code
-
general:
(string)
-
name:
(string)
Beneficiary name (required when transfer is made to other bank)
-
person_type:
(one of natural, legal)
This is optional and designates whether beneficiary is legal entity or a person
-
address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_account:
(object)
-
iban:
(string)
IBAN number
-
account_number:
(string)
Account number
-
country_code:
(string)
We use ISO 3166-1 alpha-2 for country codes. This is not required if IBAN is specified
-
bic:
(string)
This should be SWIFT bank code, if available for that transfer
-
bank_code:
(string)
This is local bank code and depends on Country. It's not required if IBAN is provided
-
sort_code:
(string)
Sort code
-
bank_address:
(object)
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
bank_title:
(string)
Bank title
-
correspondent_bank:
(object)
-
bank_title:
(string)
Bank title
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
-
iban:
(string)
-
tax_account:
(object)
-
identifier:
required (string)
Tax identifier
-
identifier:
required (string)
-
paysera_account:
(object)
Only one of identifiers is required, usually
account_number
should be used-
account_number:
(string)
Paysera account number
-
email:
(string)
Email
-
phone:
(string)
Phone
-
account_number:
(string)
-
payza_account:
(object)
-
email:
required (string)
Payza email
-
email:
required (string)
-
webmoney_account:
(object)
-
purse:
required (string)
Webmoney purse identificator
-
purse:
required (string)
-
additional_information:
(object)
Beneficiary additional information
-
type:
required (one of natural, legal)
Designates whether beneficiary is legal entity or a person.
-
city:
(string)
Beneficiary city
Example:
London
-
state:
(string)
Beneficiary state
-
country:
(string)
Use upper case ISO 3166-1 alpha-2 codes
Example:
US
-
postal_code:
(string)
Beneficiary postcode
-
bank_branch_code:
(string)
Bank branch code
-
type:
required (one of natural, legal)
-
client_identifier:
(object)
Beneficiary identification type - legal document that verifies the identity of the account. Only one identification type is allowed.
- personal_number: (string)
- customer_code: (string)
- tax_payer_code: (string)
- worker_identification_number: (string)
- passport_number: (string)
- social_security_number: (string)
- driver_license_number: (string)
- nonresident_registration_number: (string)
- company_code: (string)
-
date_and_place_of_birth:
(object)
-
date_of_birth:
required (string)
Beneficiary date of birth.
Example:
2017-03-31
-
city_of_birth:
required (string)
Beneficiary city of birth.
Example:
London
-
country_of_birth:
required (string)
The nationality of the individual beneficiary. Country codes are ISO 3166-2 standard.
Example:
GB
-
date_of_birth:
required (string)
-
other:
(object)
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank)
-
initiator:
required (object)
-
user_id:
(integer)
Initiator user id
-
client_id:
(integer)
Initiator client id
-
user_id:
(integer)
-
created_at:
required (integer)
Timestamp when Transfer was created
Annotations
- datetime_timestamp
-
performed_at:
(integer)
Timestamp when Transfer was performed
Annotations
- datetime_timestamp
-
failure_status:
(object)
-
code:
(string)
Status code
-
message:
(string)
Failure message
-
code:
(string)
-
out_commission:
(object)
Transfer out commission amount
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
max:
(object)
Maximum commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
fix:
(object)
Fixed commission
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
percent:
(number)
-
original_out_commission:
(object)
-
amount:
(string)
In currency provided in
currency
field. String, use "10.12" with "EUR" to specify 10 Euros and 12 cents. Excluding commission - this amount will be sent to beneficiary if no charges would be applied in beneficiary bank or between the banks -
currency:
(string)
ISO 4217 Code. Any supported currency. Transfer will be made in this specified currency. Field requirements and commission depend on this currency specified here
-
amount:
(string)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
estimated_processing_date:
(integer)
-
password:
(object)
It's used only for internal Paysera transfers. Ignore if not explicitly needed
-
status:
(one of pending, unlocked)
Password status
-
value:
required (string)
Password value
-
status:
(one of pending, unlocked)
-
allowed_to_cancel:
(boolean)
Readonly. Indicates whether transfer can be cancelled or not.
Example:
Response:
{
"id": "123",
"status": "new",
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"beneficiary": {
"type": "bank",
"name": "Name Surname",
"bank_account": {
"iban": "LT873500010002284563"
},
"additional_information": {
"type": "natural",
"city": "New York",
"state": "NY",
"country": "US",
"postal_code": "11235",
"bank_branch_code": "US46516"
},
"client_identifier": {
"date_and_place_of_birth": {
"date_of_birth": "1986-11-08",
"city_of_birth": "Vilnius",
"country_of_birth": "LT"
}
}
},
"payer": {
"account_number": "EVP9210002477825"
},
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement",
"details_options": {
"preserve": false
}
},
"cancelable": true,
"allowed_to_cancel": true,
"initiator": {
"user_id": 321
},
"created_at": 1489420006,
"perform_at": 1489420006,
"auto_currency_convert": false,
"auto_charge_related_card": false,
"out_commission": {
"amount": "0.29",
"currency": "EUR"
},
"additional_information": {
"estimated_processing_date": 1489420906,
"out_commission_rule": {
"percent": 0,
"fix": {
"amount": "0.29",
"currency": "EUR"
}
},
"original_out_commission": {
"amount": "0.29",
"currency": "EUR"
},
"correspondent_bank_fees_may_apply": false
}
}
HTTP status code 400
Bad Request. Basic status codes are described in Wallet API: https://developers.paysera.com/en/wallet/. If you get an error, you'll also receive a body with error details. You should always look at error
field. If some fields are missing or incorrect from the object provided in request body, we'll pass them in error_properties
field
Body
Media type: application/json
Type: object
Properties-
error:
required (one of limits_exceeded, not_enough_funds, invalid_payer_account, invalid_parameters, payment_to_same_account, invalid_password)
limits_exceeded
: Limits in the account was exceedednot_enough_funds
: There is not enough funds in your Paysera accountinvalid_payer_account
: If payer.account_number is incorrectinvalid_parameters
: Some of given parameters inside request object are not specified or incorrect. This usually means that there will beerror_properties
with fields and error descriptions for each fieldinvalid_password
: Provided password value does not match transfer password value. Internal transfers only