zimpler-developers

Deposit for Germany

This part of the documentation describes the deposit flow for Germany. We currently do not suppot 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": "PlayerRef1234",
  "email": "bobben@example.com",
  "locale": "de",
  "mobile_phone": "+49700000000",
  "user_id": "f65191e4-3064-cc45-df68-8130e4a11197",
  "payment_methods": ["bank"]
}

# 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"
    }
  ]
}

# Failed deposit

When relevant failed deposits contain an extra events field containing extra information about the customer journey and potential causes for the failure. The events structure is described in in the API index

{
  ...
  "id": "6a734480-a051-4a05-8405-ac2d8f49102f",
  "state": "failed",
  "events": [
    {
        "extended_bank_id_needed": true
    }
  ]
}

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