---
title: "Create BEP Authentication Intent"
method: POST
path: "/bep"
tags: ["BEP Authentication"]
---

# Create BEP Authentication Intent

`POST /bep`

## Request

- Base URL: `https://eu-west-1.api.silverflow.com/v1`
- URL: `https://eu-west-1.api.silverflow.com/v1/bep`
- Auth: one of:
  - HTTP basic
  - HTTP bearer
- TypeScript: <https://skmtc.dev/silverflow/apis/silverflow-api/docs/bep/post.ts> (a function with typed inputs; its response is checked against the schema)

Generate a unique BEP payment initiation and return a QR code and an app intent to be used 
by the Bancontact app.

Requires the `bep:Create` permission.

## Request body

- InitiateBEPRequest: Request to create new a BEP authentication intent
  - `merchantAcceptorResolver` union, required: Resolver used to pick what merchant acceptor will be used to create the charge. It can accept either a combination of merchantKey and an optional route, or a merchant acceptor key. If the optional property for route is not provided the default one generated when creating an acceptor will be used.
    - object: Used to select a merchant acceptor by key.
      - `merchantAcceptorKey` string, required: Uniquely identifies a merchant acceptor.
    - object: Used to select a merchant acceptor by merchant key and an optional route.
      - `merchantKey` string, required: Uniquely identifies a merchant.
      - `route` string: Route key used to uniquely reference an acceptor when used in combination with its card network and merchant key.
  - `webhook` string, required: A valid URL
  - `amount` SchemasAmount, required: An amount encoded as an object with a `value` in minor units and a `currency` code.
    - `value` integer, required: The amount in minor units. For example `$12.34` should be encoded as `1234`. Note that not all currencies have 2 minor units. Some have three or zero.
    - `currency` 'EUR', required: The three-letter ISO code of the currency. For Bancontact only transactions with currency code `EUR` are allowed.
  - `completionUrl` string: A valid URL
  - `description` string: An optional description to provide additional information to the cardholder in the payment approval screen of the Bancontact app.

## Response `201`

A BEP Intent

- InitiateBEPResponse: Response to be displayed to the payer to initiate BEP Authentication
  - `bepKey` string, required: Uniquely identifies a BEP authentication request flow.
  - `qrCode` string, uri, required: A URI which has to be encoded as a QR code to be scanned by the cardholder with the Bancontact app. The scanning of the QR code initiates the authentication process with the issuer. This is used when the cardholder shopping on a device which is not the same as the device which has their Bancontact app.
  - `bancontactIntent` string, uri, required: An app deep link which can be called in order to automatically open the Bancontact app on the cardholder's device. This is used when the cardholder is using the same device for shopping and payment.
  - `expires` string, iso-8601-date-time, required: The date and time this BEP authentication intent expires.
  - `created` string, iso-8601-date-time, required: The date and time this BEP authentication intent was created.
  - `version` integer, required: The version of this object

## Other responses

- `400`: Bad Request
- `401`: Authentication Required
- `403`: Forbidden
- `404`: Entity Not Found
- `409`: Conflict
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/silverflow/apis/silverflow-api.md) - [All operations](https://skmtc.dev/silverflow/apis/silverflow-api/llms.txt) - [OpenAPI document](https://skmtc.dev/silverflow/apis/silverflow-api/revisions/43ecbe4fd6ea?raw)
