Transfers 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-
bank_key:
(string)
An optional parameter that specifies the bank key to be used for routing the transfer. If provided, the transfer will only be created if the specified bank key matches an available routing option. This acts as a safeguard to ensure that transfers are executed through the correct banking route. If an incorrect or non-matching bank key is specified, the transfer request will be rejected. If the parameter is not provided, routing will proceed as normal without this additional validation.
-
amount:
required (object)
Amount to transfer
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
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)
Should be provided one of country_code, address_line
-
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_title:
(string)
Bank title
-
bank_address:
(object)
Should be provided one of country_code, address_line
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
correspondent_bank:
(object)
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
Bank title
-
account_number:
(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)
-
privatbank_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
phone_number:
required (string)
Phone number of beneficiary
-
payout_type:
required (one of privatbank_iban, privatbank_card, privatbank_cash)
Type of transfer
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (ua_privatbank)
-
bank_account_number:
(string)
Required with payout type
privatbank_iban
andprivatbank_card
. Forprivatbank_iban
IBAN is required in this field. Forprivatbank_card
last 4 digits of card number is required.
-
first_name:
required (string)
-
single_window_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (one of ua_globus_bank, us_ria)
-
real_beneficiary:
required (boolean)
Indicates is the recipient a real beneficiary of the money? (should be true)
-
payout_type:
required (single_window_cash)
Type of transfer
-
payout_currency:
required (string)
Payout currency
Example:
EUR
-
destination_bank_id:
(integer)
Destination bank
-
birth_date:
required (string)
Example:
1999-07-05
-
country_code:
(UA)
Recipient country (where does he live; can be the same as transfer_country_code). Country codes are ISO 3166-2 standard.
-
city:
(string)
Recipient city
-
region:
(string)
Recipient state
-
first_name:
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)
Client identifier type of date and place of birth
-
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)
Client identifier type of other
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
-
payer:
required (object)
-
account_number:
required (string)
This is your account number in Paysera system
-
reference:
(string)
Only used for tax transfers
- first_name: (string)
- last_name: (string)
- mobile_phone_number: (string)
-
birth_date:
(string)
Example:
1999-07-05
-
country_code:
(string)
Example:
LT
- region: (string)
- city: (string)
- street: (string)
- house: (string)
- apartment: (string)
-
document:
(object)
- type: required (one of passport, identity_card, residence_permit)
- series: (string)
- number: (string)
-
issued_date:
(string)
Example:
2012-01-14
- issuer: (string)
-
birth_country_code:
(string)
Example:
UA
-
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)
-
_metadata:
required (object)
-
total:
required (integer)
Total count of items
-
offset:
required (integer)
Cursor position
-
limit:
(integer)
Max allowed results
-
order_direction:
(string)
Order direction
-
order_by:
(string)
Order results by some field
-
has_next:
(boolean)
When order_direction=asc, tells whether there are other records whose field referenced in order_by is greater. When order_direction=desc, tells whether there are other records whose field referenced in order_by is lower.
-
has_previous:
(boolean)
When order_direction=asc, tells whether there are other records whose field referenced in order_by is lower. When order_direction=desc, tells whether there are other records whose field referenced in order_by is greater.
-
cursors:
(object)
-
after:
(string)
When order_direction = asc, stores the greatest value of the order_by field. When order_direction = desc, stores the lowest value of the order_by field. In both order directions the client should use this value when retrieving the next page.
-
before:
(string)
When order_direction = asc, stores the lowest value of the order_by field. When order_direction = desc, stores the greatest value of the order_by field.
-
after:
(string)
-
total:
required (integer)
-
notifications:
(array of object)
Items: items
-
locale:
required (string)
ISO 639-1 2 letter code
-
email:
required (string)
Notification email
-
locale:
required (string)
-
_metadata:
required (object)
-
purpose:
(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. -
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
-
purpose_code:
(string)
Purpose code is to classify the nature of the transfer. See /public/transfer/rest/v1/purpose-codes for a list of codes. Optional unless required for specific destinations.
-
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 string - minItems: 1)
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 string - minItems: 1)
-
validation_groups:
(array of string)
When simulating the transfer, you can specify validation groups to skip all other validations. Defaults to null. List of available groups can be found in https://gitlab.paysera.net/paysera/lib-gateway-common/-/blob/master/src/BankTransfer/Enum/ValidationGroup.php.
Examples:
Paysera:
{
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"beneficiary": {
"type": "paysera",
"name": "Name Surname",
"paysera_account": {
"email": "example@example.com"
}
},
"payer": {
"name": "Name Surname",
"account_number": "EVP9210002477825"
},
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement"
},
"validation_groups": [
"Transfer",
"Beneficiary",
"beneficiary_bank_code",
"beneficiary_additional_information",
"payer_account_number",
"payer_birth_date"
]
}
Payza:
Can not resolve ../examples/transfer_create_payza.json
Webmoney:
{
"amount": {
"amount": "100.00",
"currency": "USD"
},
"beneficiary": {
"type": "webmoney",
"name": "Name Surname",
"webmoney_account": {
"purse": "Z984217345623"
}
},
"payer": {
"name": "Name Surname",
"account_number": "EVP9210002477825"
},
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement"
}
}
Privatbank:
Can not resolve ../examples/transfer_create_privatbank.json
SingleWindow:
Can not resolve ../examples/transfer_create_single_window.json
Tax:
{
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"beneficiary": {
"type": "tax",
"name": "Name Surname",
"tax_account": {
"identifier": "123"
}
},
"payer": {
"name": "Name Surname",
"account_number": "EVP9210002477825"
},
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement"
}
}
Bank:
{
"amount": {
"amount": "100.00",
"currency": "USD"
},
"beneficiary": {
"type": "bank",
"name": "Name Surname",
"bank_account": {
"account_number": "091000019",
"country_code": "US",
"bank_code": "123"
},
"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": {
"name": "Name Surname",
"account_number": "EVP9210002477825"
},
"urgency": "standard",
"purpose": {
"details": "Transfer details that will be seen in beneficiary statement"
},
"validation_groups": [
"Transfer",
"Beneficiary",
"beneficiary_bank_code",
"beneficiary_additional_information",
"payer_account_number",
"payer_birth_date"
]
}
Transfer with callback:
{
"amount": {
"amount": "100.00",
"currency": "EUR"
},
"beneficiary": {
"type": "bank",
"name": "Name Surname",
"bank_account": {
"iban": "LT873500010002284563"
}
},
"payer": {
"name": "Name Surname",
"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
-
hash:
required (string)
Transfer hash
-
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 -
common_status:
required (one of new, registered, signed, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Mapped to v2 version status
-
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
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)
Should be provided one of country_code, address_line
-
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_title:
(string)
Bank title
-
bank_address:
(object)
Should be provided one of country_code, address_line
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
correspondent_bank:
(object)
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
Bank title
-
account_number:
(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)
-
privatbank_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
phone_number:
required (string)
Phone number of beneficiary
-
payout_type:
required (one of privatbank_iban, privatbank_card, privatbank_cash)
Type of transfer
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (ua_privatbank)
-
bank_account_number:
(string)
Required with payout type
privatbank_iban
andprivatbank_card
. Forprivatbank_iban
IBAN is required in this field. Forprivatbank_card
last 4 digits of card number is required.
-
first_name:
required (string)
-
single_window_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (one of ua_globus_bank, us_ria)
-
real_beneficiary:
required (boolean)
Indicates is the recipient a real beneficiary of the money? (should be true)
-
payout_type:
required (single_window_cash)
Type of transfer
-
payout_currency:
required (string)
Payout currency
Example:
EUR
-
destination_bank_id:
(integer)
Destination bank
-
birth_date:
required (string)
Example:
1999-07-05
-
country_code:
(UA)
Recipient country (where does he live; can be the same as transfer_country_code). Country codes are ISO 3166-2 standard.
-
city:
(string)
Recipient city
-
region:
(string)
Recipient state
-
first_name:
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)
Client identifier type of date and place of birth
-
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)
Client identifier type of other
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
-
initiator:
required (object)
Should be provided one of user_id, client_id
-
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: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
original_out_commission:
(object)
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
max:
(object)
Maximum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
fix:
(object)
Fixed commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
percent:
(number)
-
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.
-
estimated_payout_amount:
(object)
Payout amount estimated by payment system. Currency conversion is carried out by the payment system at its internal rate.
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
is_internal_mobile_payment:
required (boolean)
The flag that indicates if the transfer is internal mobile payment.
-
internal_mobile_payment_status:
(one of new, informed, bank_transfer_pending, done, failed, canceled)
Internal mobile payment status.
-
transfer_inspection_status:
(one of rejected, accepted, complicate, pending_return, return, processed, needs_review, needs_audit, reject, needs_info, needs_retrospective_review, needs_retrospective_review_and_info)
Transfer inspection status.
Example:
Response:
{
"id": "123",
"hash": "abcd",
"status": "new",
"common_status": "new",
"bank_key": "lt_lb",
"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
},
"estimated_payout_amount": {
"amount": "101.00",
"currency": "EUR"
},
"is_internal_mobile_payment": true,
"transfer_inspection_status": "processed",
"internal_mobile_payment_status": "new"
}
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
-
operation_date_from:
(integer)
Timestamp when Transfer has to be executed from
Annotations
- datetime_timestamp
-
operation_date_to:
(integer)
Timestamp when Transfer has to be executed to
Annotations
- datetime_timestamp
-
credit_account_number:
(string)
Credit account number
-
debit_account_number:
(string)
Debit account number
-
statuses:
(array of string)
Transfers statuses
- currency: (string)
- 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: object
Properties-
_metadata:
required (object)
-
total:
required (integer)
Total count of items
-
offset:
required (integer)
Cursor position
-
limit:
(integer)
Max allowed results
-
order_direction:
(string)
Order direction
-
order_by:
(string)
Order results by some field
-
has_next:
(boolean)
When order_direction=asc, tells whether there are other records whose field referenced in order_by is greater. When order_direction=desc, tells whether there are other records whose field referenced in order_by is lower.
-
has_previous:
(boolean)
When order_direction=asc, tells whether there are other records whose field referenced in order_by is lower. When order_direction=desc, tells whether there are other records whose field referenced in order_by is greater.
-
cursors:
(object)
-
after:
(string)
When order_direction = asc, stores the greatest value of the order_by field. When order_direction = desc, stores the lowest value of the order_by field. In both order directions the client should use this value when retrieving the next page.
-
before:
(string)
When order_direction = asc, stores the lowest value of the order_by field. When order_direction = desc, stores the greatest value of the order_by field.
-
after:
(string)
-
total:
required (integer)
-
transfers:
(array of object)
Items: items
-
id:
required (string)
Transfer id
-
hash:
required (string)
Transfer hash
-
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 -
common_status:
required (one of new, registered, signed, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Mapped to v2 version status
-
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
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)
Should be provided one of country_code, address_line
-
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_title:
(string)
Bank title
-
bank_address:
(object)
Should be provided one of country_code, address_line
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
correspondent_bank:
(object)
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
Bank title
-
account_number:
(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)
-
privatbank_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
phone_number:
required (string)
Phone number of beneficiary
-
payout_type:
required (one of privatbank_iban, privatbank_card, privatbank_cash)
Type of transfer
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (ua_privatbank)
-
bank_account_number:
(string)
Required with payout type
privatbank_iban
andprivatbank_card
. Forprivatbank_iban
IBAN is required in this field. Forprivatbank_card
last 4 digits of card number is required.
-
first_name:
required (string)
-
single_window_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (one of ua_globus_bank, us_ria)
-
real_beneficiary:
required (boolean)
Indicates is the recipient a real beneficiary of the money? (should be true)
-
payout_type:
required (single_window_cash)
Type of transfer
-
payout_currency:
required (string)
Payout currency
Example:
EUR
-
destination_bank_id:
(integer)
Destination bank
-
birth_date:
required (string)
Example:
1999-07-05
-
country_code:
(UA)
Recipient country (where does he live; can be the same as transfer_country_code). Country codes are ISO 3166-2 standard.
-
city:
(string)
Recipient city
-
region:
(string)
Recipient state
-
first_name:
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)
Client identifier type of date and place of birth
-
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)
Client identifier type of other
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
-
initiator:
required (object)
Should be provided one of user_id, client_id
-
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: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
original_out_commission:
(object)
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
max:
(object)
Maximum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
fix:
(object)
Fixed commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
percent:
(number)
-
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.
-
estimated_payout_amount:
(object)
Payout amount estimated by payment system. Currency conversion is carried out by the payment system at its internal rate.
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
is_internal_mobile_payment:
required (boolean)
The flag that indicates if the transfer is internal mobile payment.
-
internal_mobile_payment_status:
(one of new, informed, bank_transfer_pending, done, failed, canceled)
Internal mobile payment status.
-
transfer_inspection_status:
(one of rejected, accepted, complicate, pending_return, return, processed, needs_review, needs_audit, reject, needs_info, needs_retrospective_review, needs_retrospective_review_and_info)
Transfer inspection status.
Example:
Response:
{ "id": "123", "hash": "abcd", "status": "new", "common_status": "new", "bank_key": "lt_lb", "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 }, "estimated_payout_amount": { "amount": "101.00", "currency": "EUR" }, "is_internal_mobile_payment": true, "transfer_inspection_status": "processed", "internal_mobile_payment_status": "new" }
-
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
-
hash:
required (string)
Transfer hash
-
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 -
common_status:
required (one of new, registered, signed, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Mapped to v2 version status
-
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
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)
Should be provided one of country_code, address_line
-
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_title:
(string)
Bank title
-
bank_address:
(object)
Should be provided one of country_code, address_line
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
correspondent_bank:
(object)
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
Bank title
-
account_number:
(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)
-
privatbank_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
phone_number:
required (string)
Phone number of beneficiary
-
payout_type:
required (one of privatbank_iban, privatbank_card, privatbank_cash)
Type of transfer
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (ua_privatbank)
-
bank_account_number:
(string)
Required with payout type
privatbank_iban
andprivatbank_card
. Forprivatbank_iban
IBAN is required in this field. Forprivatbank_card
last 4 digits of card number is required.
-
first_name:
required (string)
-
single_window_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (one of ua_globus_bank, us_ria)
-
real_beneficiary:
required (boolean)
Indicates is the recipient a real beneficiary of the money? (should be true)
-
payout_type:
required (single_window_cash)
Type of transfer
-
payout_currency:
required (string)
Payout currency
Example:
EUR
-
destination_bank_id:
(integer)
Destination bank
-
birth_date:
required (string)
Example:
1999-07-05
-
country_code:
(UA)
Recipient country (where does he live; can be the same as transfer_country_code). Country codes are ISO 3166-2 standard.
-
city:
(string)
Recipient city
-
region:
(string)
Recipient state
-
first_name:
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)
Client identifier type of date and place of birth
-
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)
Client identifier type of other
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
-
initiator:
required (object)
Should be provided one of user_id, client_id
-
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: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
original_out_commission:
(object)
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
max:
(object)
Maximum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
fix:
(object)
Fixed commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
percent:
(number)
-
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.
-
estimated_payout_amount:
(object)
Payout amount estimated by payment system. Currency conversion is carried out by the payment system at its internal rate.
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
is_internal_mobile_payment:
required (boolean)
The flag that indicates if the transfer is internal mobile payment.
-
internal_mobile_payment_status:
(one of new, informed, bank_transfer_pending, done, failed, canceled)
Internal mobile payment status.
-
transfer_inspection_status:
(one of rejected, accepted, complicate, pending_return, return, processed, needs_review, needs_audit, reject, needs_info, needs_retrospective_review, needs_retrospective_review_and_info)
Transfer inspection status.
Example:
Response:
{
"id": "123",
"hash": "abcd",
"status": "new",
"common_status": "new",
"bank_key": "lt_lb",
"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
},
"estimated_payout_amount": {
"amount": "101.00",
"currency": "EUR"
},
"is_internal_mobile_payment": true,
"transfer_inspection_status": "processed",
"internal_mobile_payment_status": "new"
}
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
-
hash:
required (string)
Transfer hash
-
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 -
common_status:
required (one of new, registered, signed, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Mapped to v2 version status
-
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
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)
Should be provided one of country_code, address_line
-
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_title:
(string)
Bank title
-
bank_address:
(object)
Should be provided one of country_code, address_line
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
correspondent_bank:
(object)
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
Bank title
-
account_number:
(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)
-
privatbank_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
phone_number:
required (string)
Phone number of beneficiary
-
payout_type:
required (one of privatbank_iban, privatbank_card, privatbank_cash)
Type of transfer
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (ua_privatbank)
-
bank_account_number:
(string)
Required with payout type
privatbank_iban
andprivatbank_card
. Forprivatbank_iban
IBAN is required in this field. Forprivatbank_card
last 4 digits of card number is required.
-
first_name:
required (string)
-
single_window_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (one of ua_globus_bank, us_ria)
-
real_beneficiary:
required (boolean)
Indicates is the recipient a real beneficiary of the money? (should be true)
-
payout_type:
required (single_window_cash)
Type of transfer
-
payout_currency:
required (string)
Payout currency
Example:
EUR
-
destination_bank_id:
(integer)
Destination bank
-
birth_date:
required (string)
Example:
1999-07-05
-
country_code:
(UA)
Recipient country (where does he live; can be the same as transfer_country_code). Country codes are ISO 3166-2 standard.
-
city:
(string)
Recipient city
-
region:
(string)
Recipient state
-
first_name:
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)
Client identifier type of date and place of birth
-
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)
Client identifier type of other
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
-
initiator:
required (object)
Should be provided one of user_id, client_id
-
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: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
original_out_commission:
(object)
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
max:
(object)
Maximum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
fix:
(object)
Fixed commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
percent:
(number)
-
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.
-
estimated_payout_amount:
(object)
Payout amount estimated by payment system. Currency conversion is carried out by the payment system at its internal rate.
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
is_internal_mobile_payment:
required (boolean)
The flag that indicates if the transfer is internal mobile payment.
-
internal_mobile_payment_status:
(one of new, informed, bank_transfer_pending, done, failed, canceled)
Internal mobile payment status.
-
transfer_inspection_status:
(one of rejected, accepted, complicate, pending_return, return, processed, needs_review, needs_audit, reject, needs_info, needs_retrospective_review, needs_retrospective_review_and_info)
Transfer inspection status.
Example:
Response:
{
"id": "123",
"hash": "abcd",
"status": "new",
"common_status": "new",
"bank_key": "lt_lb",
"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
},
"estimated_payout_amount": {
"amount": "101.00",
"currency": "EUR"
},
"is_internal_mobile_payment": true,
"transfer_inspection_status": "processed",
"internal_mobile_payment_status": "new"
}
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 object)
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)
To 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 -
device_os:
(string)
DEVICE OS
of the request client, not always available -
device_fingerprint:
(string)
DEVICE FINGERPRINT
of the request client, not always available -
paysera_app_used:
(boolean)
PAYSERA_APP_USED
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
-
hash:
required (string)
Transfer hash
-
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 -
common_status:
required (one of new, registered, signed, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Mapped to v2 version status
-
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
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)
Should be provided one of country_code, address_line
-
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_title:
(string)
Bank title
-
bank_address:
(object)
Should be provided one of country_code, address_line
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
correspondent_bank:
(object)
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
Bank title
-
account_number:
(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)
-
privatbank_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
phone_number:
required (string)
Phone number of beneficiary
-
payout_type:
required (one of privatbank_iban, privatbank_card, privatbank_cash)
Type of transfer
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (ua_privatbank)
-
bank_account_number:
(string)
Required with payout type
privatbank_iban
andprivatbank_card
. Forprivatbank_iban
IBAN is required in this field. Forprivatbank_card
last 4 digits of card number is required.
-
first_name:
required (string)
-
single_window_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (one of ua_globus_bank, us_ria)
-
real_beneficiary:
required (boolean)
Indicates is the recipient a real beneficiary of the money? (should be true)
-
payout_type:
required (single_window_cash)
Type of transfer
-
payout_currency:
required (string)
Payout currency
Example:
EUR
-
destination_bank_id:
(integer)
Destination bank
-
birth_date:
required (string)
Example:
1999-07-05
-
country_code:
(UA)
Recipient country (where does he live; can be the same as transfer_country_code). Country codes are ISO 3166-2 standard.
-
city:
(string)
Recipient city
-
region:
(string)
Recipient state
-
first_name:
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)
Client identifier type of date and place of birth
-
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)
Client identifier type of other
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
-
initiator:
required (object)
Should be provided one of user_id, client_id
-
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: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
original_out_commission:
(object)
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
max:
(object)
Maximum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
fix:
(object)
Fixed commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
percent:
(number)
-
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.
-
estimated_payout_amount:
(object)
Payout amount estimated by payment system. Currency conversion is carried out by the payment system at its internal rate.
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
is_internal_mobile_payment:
required (boolean)
The flag that indicates if the transfer is internal mobile payment.
-
internal_mobile_payment_status:
(one of new, informed, bank_transfer_pending, done, failed, canceled)
Internal mobile payment status.
-
transfer_inspection_status:
(one of rejected, accepted, complicate, pending_return, return, processed, needs_review, needs_audit, reject, needs_info, needs_retrospective_review, needs_retrospective_review_and_info)
Transfer inspection status.
Example:
Response:
{
"id": "123",
"hash": "abcd",
"status": "new",
"common_status": "new",
"bank_key": "lt_lb",
"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
},
"estimated_payout_amount": {
"amount": "101.00",
"currency": "EUR"
},
"is_internal_mobile_payment": true,
"transfer_inspection_status": "processed",
"internal_mobile_payment_status": "new"
}
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
-
hash:
required (string)
Transfer hash
-
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 -
common_status:
required (one of new, registered, signed, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Mapped to v2 version status
-
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
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)
Should be provided one of country_code, address_line
-
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_title:
(string)
Bank title
-
bank_address:
(object)
Should be provided one of country_code, address_line
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
correspondent_bank:
(object)
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
Bank title
-
account_number:
(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)
-
privatbank_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
phone_number:
required (string)
Phone number of beneficiary
-
payout_type:
required (one of privatbank_iban, privatbank_card, privatbank_cash)
Type of transfer
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (ua_privatbank)
-
bank_account_number:
(string)
Required with payout type
privatbank_iban
andprivatbank_card
. Forprivatbank_iban
IBAN is required in this field. Forprivatbank_card
last 4 digits of card number is required.
-
first_name:
required (string)
-
single_window_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (one of ua_globus_bank, us_ria)
-
real_beneficiary:
required (boolean)
Indicates is the recipient a real beneficiary of the money? (should be true)
-
payout_type:
required (single_window_cash)
Type of transfer
-
payout_currency:
required (string)
Payout currency
Example:
EUR
-
destination_bank_id:
(integer)
Destination bank
-
birth_date:
required (string)
Example:
1999-07-05
-
country_code:
(UA)
Recipient country (where does he live; can be the same as transfer_country_code). Country codes are ISO 3166-2 standard.
-
city:
(string)
Recipient city
-
region:
(string)
Recipient state
-
first_name:
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)
Client identifier type of date and place of birth
-
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)
Client identifier type of other
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
-
initiator:
required (object)
Should be provided one of user_id, client_id
-
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: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
original_out_commission:
(object)
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
max:
(object)
Maximum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
fix:
(object)
Fixed commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
percent:
(number)
-
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.
-
estimated_payout_amount:
(object)
Payout amount estimated by payment system. Currency conversion is carried out by the payment system at its internal rate.
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
is_internal_mobile_payment:
required (boolean)
The flag that indicates if the transfer is internal mobile payment.
-
internal_mobile_payment_status:
(one of new, informed, bank_transfer_pending, done, failed, canceled)
Internal mobile payment status.
-
transfer_inspection_status:
(one of rejected, accepted, complicate, pending_return, return, processed, needs_review, needs_audit, reject, needs_info, needs_retrospective_review, needs_retrospective_review_and_info)
Transfer inspection status.
Example:
Response:
{
"id": "123",
"hash": "abcd",
"status": "new",
"common_status": "new",
"bank_key": "lt_lb",
"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
},
"estimated_payout_amount": {
"amount": "101.00",
"currency": "EUR"
},
"is_internal_mobile_payment": true,
"transfer_inspection_status": "processed",
"internal_mobile_payment_status": "new"
}
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 object)
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)
To 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 -
device_os:
(string)
DEVICE OS
of the request client, not always available -
device_fingerprint:
(string)
DEVICE FINGERPRINT
of the request client, not always available -
paysera_app_used:
(boolean)
PAYSERA_APP_USED
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
-
hash:
required (string)
Transfer hash
-
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 -
common_status:
required (one of new, registered, signed, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Mapped to v2 version status
-
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
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)
Should be provided one of country_code, address_line
-
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_title:
(string)
Bank title
-
bank_address:
(object)
Should be provided one of country_code, address_line
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
correspondent_bank:
(object)
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
Bank title
-
account_number:
(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)
-
privatbank_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
phone_number:
required (string)
Phone number of beneficiary
-
payout_type:
required (one of privatbank_iban, privatbank_card, privatbank_cash)
Type of transfer
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (ua_privatbank)
-
bank_account_number:
(string)
Required with payout type
privatbank_iban
andprivatbank_card
. Forprivatbank_iban
IBAN is required in this field. Forprivatbank_card
last 4 digits of card number is required.
-
first_name:
required (string)
-
single_window_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (one of ua_globus_bank, us_ria)
-
real_beneficiary:
required (boolean)
Indicates is the recipient a real beneficiary of the money? (should be true)
-
payout_type:
required (single_window_cash)
Type of transfer
-
payout_currency:
required (string)
Payout currency
Example:
EUR
-
destination_bank_id:
(integer)
Destination bank
-
birth_date:
required (string)
Example:
1999-07-05
-
country_code:
(UA)
Recipient country (where does he live; can be the same as transfer_country_code). Country codes are ISO 3166-2 standard.
-
city:
(string)
Recipient city
-
region:
(string)
Recipient state
-
first_name:
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)
Client identifier type of date and place of birth
-
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)
Client identifier type of other
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
-
initiator:
required (object)
Should be provided one of user_id, client_id
-
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: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
original_out_commission:
(object)
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
max:
(object)
Maximum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
fix:
(object)
Fixed commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
percent:
(number)
-
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.
-
estimated_payout_amount:
(object)
Payout amount estimated by payment system. Currency conversion is carried out by the payment system at its internal rate.
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
is_internal_mobile_payment:
required (boolean)
The flag that indicates if the transfer is internal mobile payment.
-
internal_mobile_payment_status:
(one of new, informed, bank_transfer_pending, done, failed, canceled)
Internal mobile payment status.
-
transfer_inspection_status:
(one of rejected, accepted, complicate, pending_return, return, processed, needs_review, needs_audit, reject, needs_info, needs_retrospective_review, needs_retrospective_review_and_info)
Transfer inspection status.
Example:
Response:
{
"id": "123",
"hash": "abcd",
"status": "new",
"common_status": "new",
"bank_key": "lt_lb",
"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
},
"estimated_payout_amount": {
"amount": "101.00",
"currency": "EUR"
},
"is_internal_mobile_payment": true,
"transfer_inspection_status": "processed",
"internal_mobile_payment_status": "new"
}
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 object)
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)
To 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 -
device_os:
(string)
DEVICE OS
of the request client, not always available -
device_fingerprint:
(string)
DEVICE FINGERPRINT
of the request client, not always available -
paysera_app_used:
(boolean)
PAYSERA_APP_USED
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
-
hash:
required (string)
Transfer hash
-
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 -
common_status:
required (one of new, registered, signed, waiting_funds, waiting_registration, waiting_password, reserved, frozen, processing, done, rejected, revoked, failed)
Mapped to v2 version status
-
beneficiary:
required (object)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
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)
Should be provided one of country_code, address_line
-
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_title:
(string)
Bank title
-
bank_address:
(object)
Should be provided one of country_code, address_line
-
country_code:
(string)
Country code
-
address_line:
(string)
Address line
-
country_code:
(string)
-
correspondent_bank:
(object)
-
account_number:
(string)
Account number
-
bank_code:
(string)
Bank code
-
bank_title:
(string)
Bank title
-
account_number:
(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)
-
privatbank_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
phone_number:
required (string)
Phone number of beneficiary
-
payout_type:
required (one of privatbank_iban, privatbank_card, privatbank_cash)
Type of transfer
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (ua_privatbank)
-
bank_account_number:
(string)
Required with payout type
privatbank_iban
andprivatbank_card
. Forprivatbank_iban
IBAN is required in this field. Forprivatbank_card
last 4 digits of card number is required.
-
first_name:
required (string)
-
single_window_account:
(object)
-
first_name:
required (string)
First name of beneficiary
-
last_name:
required (string)
Last name of beneficiary
-
transfer_country_code:
required (UA)
Recipient country. Country codes are ISO 3166-2 standard.
- integration_bank_key: required (one of ua_globus_bank, us_ria)
-
real_beneficiary:
required (boolean)
Indicates is the recipient a real beneficiary of the money? (should be true)
-
payout_type:
required (single_window_cash)
Type of transfer
-
payout_currency:
required (string)
Payout currency
Example:
EUR
-
destination_bank_id:
(integer)
Destination bank
-
birth_date:
required (string)
Example:
1999-07-05
-
country_code:
(UA)
Recipient country (where does he live; can be the same as transfer_country_code). Country codes are ISO 3166-2 standard.
-
city:
(string)
Recipient city
-
region:
(string)
Recipient state
-
first_name:
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)
Client identifier type of date and place of birth
-
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)
Client identifier type of other
- document_type: required (string)
- document_number: required (string)
-
type:
required (one of paysera, payza, webmoney, tax, bank, privatbank, single_window)
-
initiator:
required (object)
Should be provided one of user_id, client_id
-
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: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
additional_information:
(object)
-
estimated_processing_date:
(integer)
Timestamp of estimated Transfer processing date
Annotations
- datetime_timestamp
-
original_out_commission:
(object)
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
correspondent_bank_fees_may_apply:
(boolean)
Indicated if correspondent bank fees may apply
-
out_commission_rule:
(object)
-
percent:
(number)
Commission percent
-
min:
(object)
Minimum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
max:
(object)
Maximum commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
fix:
(object)
Fixed commission
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
percent:
(number)
-
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.
-
estimated_payout_amount:
(object)
Payout amount estimated by payment system. Currency conversion is carried out by the payment system at its internal rate.
- amount: required (string)
- currency: required (string - minLength: 3 - maxLength: 3)
-
is_internal_mobile_payment:
required (boolean)
The flag that indicates if the transfer is internal mobile payment.
-
internal_mobile_payment_status:
(one of new, informed, bank_transfer_pending, done, failed, canceled)
Internal mobile payment status.
-
transfer_inspection_status:
(one of rejected, accepted, complicate, pending_return, return, processed, needs_review, needs_audit, reject, needs_info, needs_retrospective_review, needs_retrospective_review_and_info)
Transfer inspection status.
Example:
Response:
{
"id": "123",
"hash": "abcd",
"status": "new",
"common_status": "new",
"bank_key": "lt_lb",
"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
},
"estimated_payout_amount": {
"amount": "101.00",
"currency": "EUR"
},
"is_internal_mobile_payment": true,
"transfer_inspection_status": "processed",
"internal_mobile_payment_status": "new"
}
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 reference number for Single Window transfer
get /transfers/{id}/single-window-transfer-number
Get reference number for Single Window transfer
URI Parameters
- id: required (integer)
HTTP status code 200
Body
Media type: application/json
Type: object
Properties-
referenceNumber:
(string)
Single window transfer reference number
Example:
{
"referenceNumber": "12345678"
}
HTTP status code 400
Invalid Request
Body
Media type: application/json
Type: ApiError
Example:
{
"error": "invalid_parameters",
"error_description": "Some required parameter is missing or it's format is invalid"
}
HTTP status code 401
Unauthorized
Body
Media type: application/json
Type: ApiError
Example:
{
"error": "unauthorized",
"error_description": "You have not provided any credentials or they are invalid"
}
HTTP status code 403
Access Denied
Body
Media type: application/json
Type: ApiError
Example:
{
"error": "forbidden",
"error_description": "Access Denied"
}
HTTP status code 404
Not Found
Body
Media type: application/json
Type: ApiError
Example:
{
"error": "not_found",
"error_description": "Resource was not found"
}
Get human readable status of Single Window transfer
get /transfers/{id}/single-window-transfer-display-status
Get human readable status of Single Window transfer
URI Parameters
- id: required (integer)
HTTP status code 200
Body
Media type: application/json
Type: object
Properties-
status:
(string)
Single window transfer display status
Example:
{
"status": "globus_transfer_in_transitional_status"
}
HTTP status code 400
Invalid Request
Body
Media type: application/json
Type: ApiError
Example:
{
"error": "invalid_parameters",
"error_description": "Some required parameter is missing or it's format is invalid"
}
HTTP status code 401
Unauthorized
Body
Media type: application/json
Type: ApiError
Example:
{
"error": "unauthorized",
"error_description": "You have not provided any credentials or they are invalid"
}
HTTP status code 403
Access Denied
Body
Media type: application/json
Type: ApiError
Example:
{
"error": "forbidden",
"error_description": "Access Denied"
}
HTTP status code 404
Not Found
Body
Media type: application/json
Type: ApiError
Example:
{
"error": "not_found",
"error_description": "Resource was not found"
}
Get single window supported countries
get /transfers/single-window-countries
Get single window supported countries
Query Parameters
-
payer_country:
(string)
ISO code of payer's country of origination
Example:
LT
HTTP status code 200
Body
Media type: application/json
Type: object
Properties-
_metadata:
required (object)
-
total:
required (integer)
Total count of items
-
offset:
required (integer)
Cursor position
-
limit:
(integer)
Max allowed results
-
order_direction:
(string)
Order direction
-
order_by:
(string)
Order results by some field
-
has_next:
(boolean)
When order_direction=asc, tells whether there are other records whose field referenced in order_by is greater. When order_direction=desc, tells whether there are other records whose field referenced in order_by is lower.
-
has_previous:
(boolean)
When order_direction=asc, tells whether there are other records whose field referenced in order_by is lower. When order_direction=desc, tells whether there are other records whose field referenced in order_by is greater.
-
cursors:
(object)
-
after:
(string)
When order_direction = asc, stores the greatest value of the order_by field. When order_direction = desc, stores the lowest value of the order_by field. In both order directions the client should use this value when retrieving the next page.
-
before:
(string)
When order_direction = asc, stores the lowest value of the order_by field. When order_direction = desc, stores the greatest value of the order_by field.
-
after:
(string)
-
total:
required (integer)
- countries: required (array of string)
Example:
{
"countries": [
"AE",
"AG",
"AL",
"AM",
"AR",
"AT",
"AU",
"BA",
"BD",
"BE",
"BF",
"BG",
"BH",
"BJ",
"BO",
"BS",
"BT",
"CH",
"CI"
],
"_metadata": {
"total": 19,
"limit": null,
"offset": 0,
"has_next": false,
"has_previous": false
}
}
Get list of payment systems in specific country
get /transfers/single-window-countries/{countryCode}/payment-systems
Get list of payment systems in specific country
URI Parameters
- countryCode: required (string)
HTTP status code 200
Body
Media type: application/json
Type: object
Properties-
_metadata:
required (object)
-
total:
required (integer)
Total count of items
-
offset:
required (integer)
Cursor position
-
limit:
(integer)
Max allowed results
-
order_direction:
(string)
Order direction
-
order_by:
(string)
Order results by some field
-
has_next:
(boolean)
When order_direction=asc, tells whether there are other records whose field referenced in order_by is greater. When order_direction=desc, tells whether there are other records whose field referenced in order_by is lower.
-
has_previous:
(boolean)
When order_direction=asc, tells whether there are other records whose field referenced in order_by is lower. When order_direction=desc, tells whether there are other records whose field referenced in order_by is greater.
-
cursors:
(object)
-
after:
(string)
When order_direction = asc, stores the greatest value of the order_by field. When order_direction = desc, stores the lowest value of the order_by field. In both order directions the client should use this value when retrieving the next page.
-
before:
(string)
When order_direction = asc, stores the lowest value of the order_by field. When order_direction = desc, stores the greatest value of the order_by field.
-
after:
(string)
-
total:
required (integer)
- payment_systems: (array of string)
Example:
{
"payment_systems": [
"ua_globus_bank",
"us_ria"
],
"_metadata": {
"total": 2,
"limit": null,
"offset": 0
}
}
Get list of delivery options in specific country
get /transfers/single-window-countries/{countryCode}/delivery-options
Get list of delivery options in specific country
URI Parameters
- countryCode: required (string)
Query Parameters
-
payer_country:
(string)
ISO code of payer's country of origination
HTTP status code 200
Body
Media type: application/json
Type: object
Properties-
_metadata:
required (object)
-
total:
required (integer)
Total count of items
-
offset:
required (integer)
Cursor position
-
limit:
(integer)
Max allowed results
-
order_direction:
(string)
Order direction
-
order_by:
(string)
Order results by some field
-
has_next:
(boolean)
When order_direction=asc, tells whether there are other records whose field referenced in order_by is greater. When order_direction=desc, tells whether there are other records whose field referenced in order_by is lower.
-
has_previous:
(boolean)
When order_direction=asc, tells whether there are other records whose field referenced in order_by is lower. When order_direction=desc, tells whether there are other records whose field referenced in order_by is greater.
-
cursors:
(object)
-
after:
(string)
When order_direction = asc, stores the greatest value of the order_by field. When order_direction = desc, stores the lowest value of the order_by field. In both order directions the client should use this value when retrieving the next page.
-
before:
(string)
When order_direction = asc, stores the lowest value of the order_by field. When order_direction = desc, stores the greatest value of the order_by field.
-
after:
(string)
-
total:
required (integer)
-
items:
(array of object)
Items: items
-
payment_system_key:
required (string)
This is unique identifier of a payment system
-
code:
required (one of office_pickup, bank_deposit, home_delivery)
Code which describes transfer pickup type
-
country_code:
required (string)
Alpha-2 country ISO code
-
bank_id:
(string)
This is a unique identifier of the bank where the recipient should pick up the transfer
-
bank_name:
(string)
A name of the bank where the recipient should pick up the transfer
-
currency_channels:
required (array of object)
Possible combinations of sending and receiving currencies
Items: items
-
send_currency:
required (string)
transfer send currency
-
receive_currency:
required (string)
transfer receive currency
-
min_send_amount:
(string)
min transfer amount in send currency
-
max_send_amount:
(string)
max transfer amount in send currency
-
send_currency:
required (string)
-
payment_system_key:
required (string)
Example:
{
"items": [
{
"payment_system_key": "ua_globus_bank",
"code": "office_pickup",
"country_code": "UA",
"currency_channels": [
{
"send_currency": "EUR",
"receive_currency": "EUR"
},
{
"send_currency": "EUR",
"receive_currency": "UAH"
}
]
},
{
"payment_system_key": "us_ria",
"code": "office_pickup",
"country_code": "UA",
"bank_id": "84195911",
"bank_name": "Anywhere Payout Ukraine",
"currency_channels": [
{
"send_currency": "EUR",
"receive_currency": "EUR",
"max_send_amount": "5000.000000"
},
{
"send_currency": "EUR",
"receive_currency": "USD",
"max_send_amount": "5000.000000"
},
{
"send_currency": "USD",
"receive_currency": "EUR",
"max_send_amount": "5000.000000"
},
{
"send_currency": "USD",
"receive_currency": "USD",
"max_send_amount": "5000.000000"
}
]
},
{
"payment_system_key": "us_ria",
"code": "office_pickup",
"country_code": "UA",
"bank_id": "7924914",
"bank_name": "Credit Dnepr Bank PJSC",
"currency_channels": [
{
"send_currency": "EUR",
"receive_currency": "EUR",
"max_send_amount": "5000.000000"
},
{
"send_currency": "EUR",
"receive_currency": "USD",
"max_send_amount": "5000.000000"
},
{
"send_currency": "USD",
"receive_currency": "EUR",
"min_send_amount": "10.000000",
"max_send_amount": "25.000000"
},
{
"send_currency": "USD",
"receive_currency": "USD",
"max_send_amount": "5000.000000"
}
]
}
],
"_metadata": {
"total": 3,
"offset": 0,
"limit": null
}
}
Get list of states by payment system and country code
get /transfers/single-window-countries/{countryCode}/payment-systems/{paymentSystem}/states
Get list of states by payment system and country code
URI Parameters
- countryCode: required (string)
- paymentSystem: required (string)
HTTP status code 200
Body
Media type: application/json
Type: object
Properties-
_metadata:
required (object)
-
total:
required (integer)
Total count of items
-
offset:
required (integer)
Cursor position
-
limit:
(integer)
Max allowed results
-
order_direction:
(string)
Order direction
-
order_by:
(string)
Order results by some field
-
has_next:
(boolean)
When order_direction=asc, tells whether there are other records whose field referenced in order_by is greater. When order_direction=desc, tells whether there are other records whose field referenced in order_by is lower.
-
has_previous:
(boolean)
When order_direction=asc, tells whether there are other records whose field referenced in order_by is lower. When order_direction=desc, tells whether there are other records whose field referenced in order_by is greater.
-
cursors:
(object)
-
after:
(string)
When order_direction = asc, stores the greatest value of the order_by field. When order_direction = desc, stores the lowest value of the order_by field. In both order directions the client should use this value when retrieving the next page.
-
before:
(string)
When order_direction = asc, stores the lowest value of the order_by field. When order_direction = desc, stores the greatest value of the order_by field.
-
after:
(string)
-
total:
required (integer)
-
items:
required (array of object)
Items: items
-
code:
required (string)
Code of the state
-
name:
required (string)
Name of the state
-
code:
required (string)
Example:
{
"items": [
{
"code": "AL",
"name": "Alabama"
},
{
"code": "AK",
"name": "Alaska"
},
{
"code": "AZ",
"name": "Arizona"
},
{
"code": "AR",
"name": "Arkansas"
},
{
"code": "CA",
"name": "California"
},
{
"code": "CO",
"name": "Colorado"
},
{
"code": "CT",
"name": "Connecticut"
},
{
"code": "DE",
"name": "Delaware"
},
{
"code": "DC",
"name": "District of Columbia"
},
{
"code": "FL",
"name": "Florida"
},
{
"code": "GA",
"name": "Georgia"
},
{
"code": "HI",
"name": "Hawaii"
},
{
"code": "ID",
"name": "Idaho"
},
{
"code": "IL",
"name": "Illinois"
},
{
"code": "IN",
"name": "Indiana"
},
{
"code": "IA",
"name": "Iowa"
},
{
"code": "KS",
"name": "Kansas"
},
{
"code": "KY",
"name": "Kentucky"
},
{
"code": "LA",
"name": "Louisiana"
},
{
"code": "ME",
"name": "Maine"
},
{
"code": "MD",
"name": "Maryland"
},
{
"code": "MA",
"name": "Massachusetts"
},
{
"code": "MI",
"name": "Michigan"
},
{
"code": "MN",
"name": "Minnesota"
},
{
"code": "MS",
"name": "Mississippi"
},
{
"code": "MO",
"name": "Missouri"
},
{
"code": "MT",
"name": "Montana"
},
{
"code": "NE",
"name": "Nebraska"
},
{
"code": "NV",
"name": "Nevada"
},
{
"code": "NH",
"name": "New Hampshire"
},
{
"code": "NJ",
"name": "New Jersey"
},
{
"code": "NM",
"name": "New Mexico"
},
{
"code": "NY",
"name": "New York"
},
{
"code": "NC",
"name": "North Carolina"
},
{
"code": "ND",
"name": "North Dakota"
},
{
"code": "OH",
"name": "Ohio"
},
{
"code": "OK",
"name": "Oklahoma"
},
{
"code": "OR",
"name": "Oregon"
},
{
"code": "PA",
"name": "Pennsylvania"
},
{
"code": "RI",
"name": "Rhode Island"
},
{
"code": "SC",
"name": "South Carolina"
},
{
"code": "SD",
"name": "South Dakota"
},
{
"code": "TN",
"name": "Tennessee"
},
{
"code": "TX",
"name": "Texas"
},
{
"code": "UT",
"name": "Utah"
},
{
"code": "VT",
"name": "Vermont"
},
{
"code": "VA",
"name": "Virginia"
},
{
"code": "WA",
"name": "Washington"
},
{
"code": "WV",
"name": "West Virginia"
},
{
"code": "WI",
"name": "Wisconsin"
},
{
"code": "WY",
"name": "Wyoming"
}
],
"_metadata": {
"total": 51,
"limit": null,
"offset": 0,
"has_next": false,
"has_previous": false
}
}
Get single window transfer mandatory fields
get /transfers/single-window-transfer-mandatory-fields
Get single window transfer mandatory fields
Query Parameters
-
payer_country:
required (string)
ISO code of payer's country of origination
-
payment_system:
required (one of us_ria, ua_globus_bank)
Payment system
-
transfer_amount:
required (string)
Transfer amount
-
transfer_currency:
required (string)
Transfer currency
-
payout_amount:
(string)
Payout amount
-
payout_currency:
required (string)
Payout currency
-
destination_country_code:
required (string)
Destination country
-
delivery_option_code:
required (one of office_pickup, bank_deposit, home_delivery)
Destination country
-
destination_bank_id:
(string)
Destination bank (required if delivery_option_code=office_pickup)
HTTP status code 200
Body
Media type: application/json
Type: object
Properties-
_metadata:
required (object)
-
total:
required (integer)
Total count of items
-
offset:
required (integer)
Cursor position
-
limit:
(integer)
Max allowed results
-
order_direction:
(string)
Order direction
-
order_by:
(string)
Order results by some field
-
has_next:
(boolean)
When order_direction=asc, tells whether there are other records whose field referenced in order_by is greater. When order_direction=desc, tells whether there are other records whose field referenced in order_by is lower.
-
has_previous:
(boolean)
When order_direction=asc, tells whether there are other records whose field referenced in order_by is lower. When order_direction=desc, tells whether there are other records whose field referenced in order_by is greater.
-
cursors:
(object)
-
after:
(string)
When order_direction = asc, stores the greatest value of the order_by field. When order_direction = desc, stores the lowest value of the order_by field. In both order directions the client should use this value when retrieving the next page.
-
before:
(string)
When order_direction = asc, stores the lowest value of the order_by field. When order_direction = desc, stores the greatest value of the order_by field.
-
after:
(string)
-
total:
required (integer)
- mandatory_fields: required (array of string)
Example:
{
"mandatory_fields": [
"transfer_destination_bank_id",
"transfer_payout_currency",
"payer_residence_country",
"transfer_currency",
"payer_last_name",
"payer_first_name",
"payer_birth_date",
"payer_citizenship_country",
"payer_country",
"payer_city",
"payer_street",
"payer_house",
"payer_apartment",
"payer_birth_country",
"payer_document_type",
"payer_document_number",
"beneficiary_last_name",
"beneficiary_first_name",
"beneficiary_country",
"transfer_destination_country"
],
"_metadata": {
"total": 20,
"limit": null,
"offset": 0,
"has_next": false,
"has_previous": false
}
}
HTTP status code 400
Invalid Request
Body
Media type: application/json
Type: ApiError
Example:
{
"error": "invalid_parameters",
"error_description": "Some required parameter is missing or it's format is invalid"
}