Deposit for Estonia
This part of the documentation describes the deposit flow Estonia.
# Flow
Note: Make sure to load the user_form_url
in a redirect or popup on
mobile, loading user_form_url
in an iframe on mobile will cause
issues.
# POST /v4/deposits
# REQUEST
{
// required
"country_code": "EE",
"site_display_name": "Best Website.com",
"ref": "merchant-transaction-ref",
"amount": "100.00",
"currency": "EUR",
"site": "example.com",
"success_url": "https://example.com/return_path/transaction_identifier",
"failure_url": "https://example.com/return_path/transaction_identifier",
"close_url": "https://example.com/return_path/transaction_identifier",
// optional
"notification_url": "https://example.com/return_path/transaction_identifier",
"account_ref": "CustomerRefOnMerchantSide",
"email": "bobben@example.com",
"locale": "et",
"mobile_phone": "+372700000000",
"user_id": "f65191e4-3064-cc45-df68-8130e4a11197",
"national_identification_number": "XXXXXXXXXXX",
"kyc_callback_url": "https://www.example.com/kyc_callback_url",
"payment_methods": ["bank"],
"bank_account": {
"type": "bic",
"bic": "XXXXXXXXXXX"
},
"payment_prefix": "A1B2C3"
}
# RESPONSES
All responses will include the full deposit object sent within your request. This is pointed out with the […] in below documentation.
# Pending deposit
The user should be redirected to the user_form_url
so they can start the deposit.
{
...
"id": "6a734480-a051-4a05-8405-ac2d8f49102f",
"state": "pending",
"user_form_url": "https://account-sandbox.zimpler.com?code=6a734480-a051-4a05-8405-ac2d8f49102f",
"user_id": null,
"kyc_info": null,
"account_information": [],
}
# KYC callback
After we have KYC:ed the customer, we will call the kyc_callback_url
if
provided.
The payload sent to the kyc_callback_url
is the full deposit object including
kyc_info
.
When called, the callback must return the updated amount given the KYC information you’ve received.
Same amount as in the first request:
{
// required
"amount": "100.00"
}
It is also possible to lower the amount of the transaction:
{
// required
"amount": "10.00"
}
Decline the transaction:
{
// required
"amount": "0.00"
}
# Authorized (will be sent in the notification)
The deposit is complete and can now be approved.
{
...
"id": "6a734480-a051-4a05-8405-ac2d8f49102f",
"state": "authorized",
"user_id": "9b9047da-175f-d29a-dae8-85b428488c2e",
"kyc_info": {
"country_code": "EE",
"user_id": "9b9047da-175f-d29a-dae8-85b428488c2e",
"national_identification_number": "19810101-0000",
"first_name": "Henrik Testperson",
"last_name": "Testson",
"date_of_birth": "1981-01-01",
"pep": false,
"address": {
"line_1": "Address 1529",
"line_2": null,
"postcode": "10121",
"city": "Tallinn",
"country": "Estonia",
}
},
//will be provided or partial provided depending on the information we receive.
"account_information": [
{
"type": "iban",
"account_number": "XXX",
},
{
"type": "bic",
"bic": "XXXXXXXXXXX"
}
],
}
# POST /v4/deposits/:id/approve
Note: amount has to be the same as either provided in the POST /v4/deposits
or returned by your handler for the kyc_callback_url
.
# REQUEST
{
// required
"amount": "100.00"
}
# RESPONSE
{
...
"state": "approved"
}
# POST /v4/deposits/:id/reject
# RESPONSE
{
...
"state": "rejected"
}
# GET /v4/deposits/:id
Will return the full transaction object with the current state.