Payment Initiation API documentation v1.0
https://{environment}.paysera.com/rest/v1/payment-initiation
-
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 its ID but is not processed or visible in UI. The ID should be saved in this state - if any errors would occur, such as networking, etc, you will be able to check transfer status afterward. - 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. After the transfer is created, you should redirect the user to the authentication page: https://bank.paysera.com/frontend/wallet/transfer-sign/
:transferId
?redirect_uri=:redirectUri
transferId
- id of the created transfer;redirectUrl
- redirect URI after successful payment.
/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 transferred funds. Just ignore if it's not required in your case
-
name:
(string)
Beneficiary name (required when transfer is made to other bank)
-
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 performed. 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. Unfortunately, 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)
Notification 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 used for cross-border transfers to classify the nature of transfer. It can vary according to bank, payment-integration like SEPA, etc. Optional unless explicitly required to fill
-
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 endpoint 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 successfully 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": "PAYSERA123",
"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
- limit: (integer - default: 20)
- offset: (integer)
HTTP status code 200
Success
Body
Media type: application/json
Type: object
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": "PAYSERA123", "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.
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 endpoint 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": "PAYSERA123",
"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