zimpler-developers

Deposit for Germany

This part of the documentation describes the deposit flow for Germany. We currently do not support KYC for the German market.

# Flow

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": "DE",
  "site_display_name": "Best Website.com",
  "ref": "merchant-transaction-ref",
  "amount": "10.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": "de",
  "mobile_phone": "+49700000000",
  "payment_methods": ["bank"],
  "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": [],
}

# Authorized deposit

The deposit is complete and can now be approved.

{
    ...
    "id": "6a734480-a051-4a05-8405-ac2d8f49102f",
    "state": "authorized",
    "user_id": null,
    "kyc_info": null,
     //will be provided or partial provided depending on the information we receive. 
    "account_information": [
    {
      "type": "iban",
      "account_number": "XXX",
    },
    {
        "type": "bic",
        "bic": "DEUTDE"
    },
    {
        "type": "holder_name",
        "first_name": "John",
        "last_name": "Doe"
    }
  ]
}

# POST /v4/deposits/:id/approve

Note: amount has to be the same as provided in the POST /v4/deposits.

# 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.