Withdrawal for Denmark
This part of the documentation describes the withdrawal flow for Denmark.
In order for us to authorize a withdrawal we will need to collect some mandatory information about the consumer as well as the bank account to be used for the withdrawal. Depending on what we already have stored on our side one out of the two below described flows will be triggered.
# Case 1: We need some extra info
This will be triggered when the consumer performs a transaction for the first time. The consumer will have to go through our UI.
The state of the withdrawal will be "pending"
after the first POST request.
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.
# Case 2: We have everything we need
In this case no UI involved! This will be the case after the first deposit or withdrawal.
The state of the withdrawal will be "authorized"
after the first POST request.
# POST /v4/withdrawals
# REQUEST
# DK withdrawals
For DK, one of national_identification_number
or user_id
is required
to initiate a withdrawal.
{
// required
"country_code": "DK",
"site_display_name": "Best Website.com",
"ref": "merchant-transaction-ref",
"amount": "100.00",
"currency": "DKK",
"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",
"user_ip":"123.456.78.90",
// optional
"payment_prefix":"A1B2C3",
"notification_url": "https://example.com/return_path/transaction_identifier",
"account_ref": "CustomerRefOnMerchantSide",
"email": "bobben@example.com",
"locale": "da",
"mobile_phone": "+452700000000"
// Sending in iban within your request needs to be discussed before being implemented.
"bank_account": {
"type": "iban",
"account_number": "DK89370400440532013000"
},
"prompt_bank_account": true
// one of user_id or national_identification_number is required for DK
"user_id": "f65191e4-3064-cc45-df68-8130e4a11197",
"national_identification_number": "1010203-1234"
}
# RESPONSES
All responses will include the full withdrawal object sent within your request. This is pointed out with the […] in below documentation.
# Authorized (will be sent in the notification)
The withdrawal is complete and can now be approved.
{
...
"id": "6a734480-a051-4a05-8405-ac2d8f49102f",
"state": "authorized",
"user_form_url": "https://toh.zimpler.net/v4/callbacks/5c2ce36d-cf4b-4b8b-9930/success",
"user_id": "9b9047da-175f-d29a-dae8-85b428488c2e",
"kyc_info": {
"country_code": "DK",
"user_id": "9b9047da-175f-d29a-dae8-85b428488c2e",
"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": "Copenhagen",
"country": "Denmark",
},
"bank_account": {
"type": "iban",
"account_number": "DK38xxx00"
}
}
}
# POST /v4/withdrawals/:id/approve
Note: Amount has to be the same as provided in the POST /v4/withdrawals
.
# REQUEST
{
// required
"amount": "100.00"
}
# RESPONSE
{
...
"state": "approved"
}
# POST /v4/withdrawals/:id/reject
# RESPONSE
{
...
"state": "rejected"
}
# GET /v4/withdrawals/:id
Will return the full transaction object with the current state.