NAV
Staging Environment

Getting Started

To use our API you need to create a "service". A service is the entity that represents you into our API.

We offers two types of services :

Fill this form to request a service.

Once submitted your request will be reviewed and if it is conform, you will receive three mails. An email with your client_id and client_secret for our production environment, an other one for our staging environment and a third one with an access to a Banque Wormser Frères account on our staging environment to test your developments.

Authentication

To use most of our endpoints you have to provide an access token in the Authorization header. This access token identifies the service which sends the request.

Our API implements OAuth 2.0 with two different flows to process authentication:

Partner Service Authentication

For partner services, we use the Authorisation Code flow.

This flow works in three steps :

1. Get a code
You redirect a user to our connection platform, he logs in and he chooses his bank account(s) to connect to your service, in exchange you get a code as a proof of his authorisation.

2. Get a token
With this code you can retrieve a token and use it to call the API endpoints. The token gives you access to the accounts that the user allowed. You will have one token per user connected to your account.

3. Refresh the token
After one hour the token expires, but you can refresh it without the user intervention by using your refresh token.

For more information about OAuth 2.0 Authorization code you can take a look at :

1. Get a code

Code samples

GET https://connect.bwf.staging.manager.one/login?response_type=code&client_id=8DA9CB08-3FB0-451A-98DC-274624E07054&redirect_uri=https://www.your-redirect_uri.com&state=86bb6c59e59093e2c3f228db6b01180d2fd10d

A Banque Wormser Frères user who want to connect his account to your service has to log in on our platform and allow your service to access to his account(s).

To do so, redirect the user to this url https://connect.bwf.staging.manager.one/login with the following parameters

URL Parameters

Parameter In Type Required Description
response_type query string true type of response expected: "code"
client_id query string true client_id of your service
redirect_uri query string true url callback of your service
state query string false string value used to maintain state between the request and the callback


This page retrieves your service information and the user can login with his Banque Wormser Frères account to authorize you service.

alt text

Then, he chooses the bank account to connect with your service.

alt text

And he authorizes your service.

alt text

Example response

OK

> www.your-redirect_uri.com?code=2q5YdC_SUyzO9WrmYY5EoPfyRNfwVZcb3JPEawMu&state=86bb6c59e59093e2c3f228db6b01180d2fd10d

Errors

> www.your-redirect_uri.com?error=response_type;state;

Access denied

> www.your-redirect_uri.com?error=access_denied

Once he approves the connection, the user will be redirected to your redirect_uri with the code and the state into query parameters.

You have 1 minute to retrieve a token with the code, after this delay it expires.

Errors

If there are some errors into the parameters that you have sent, an "error" field will be sent into the query parameter of your redirect uri.

Error Response
Invalid client_id or redirect_uri Displays a message 'Service not found' to the user
Others parameters are invalid The server will redirect the user to the redirect_uri with invalid fields in query parameters
The user denied the access The server will redirect the user to the redirect_uri with error=access_denied in query parameters

2. Get a token

Once you have the authorization code, you can use it to request an access token.

This endpoint provides you an access token to use the API with the account(s) of the user and a refresh token to retrieve a new access token when yours is expired.

The token gives you access to accounts authorized by the user. You will have one token & refresh_token per user connected to your account.

Example with authorization_code

POST https://api.bwf.staging.manager.one/oauth/token

Accept:application/json
Content-Type: application/json
{
  "client_id": "8DA9CB08-3FB0-451A-98DC-274624E07054",
  "client_secret": "89025ca4e1c4558b37ca9600143286dc0b5f5fa8607f003a184bf1c54a2e90f1",
  "grant_type": "authorization_code",
  "code": "gDydnOcy6bMc-vGeuIcRvdy2CA9g2zfRbpcLBdV0"
}

Response HTTP 200 :

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
  "token_type": "bearer",
  "expires_in": 3600,
  "refresh_token": "1uJROUJWGoaQGuSbD4Cd_J6tditdDFccy7eOY2w5",
  "refresh_token_expires_at": 1632147029
}

Request

POST /oauth/token

Parameters

Parameter In Type Required Description
client_id body string true The client_id of the service
client_secret body string true The client_secret of the service
grant_type body string true The type of (grant code requested), only authorization_code is accepted for partner services
code body string required The code that you retrieved

Response

Status Code 200

Name Type Description Validity
access_token string Access token 1 hour
token_type string always set as bearer -
expires_in int duration of the access token (1 hour) -
refresh_token string Token used to ask a new access token when it expired. Returned only if a code has been used or if renew_refresh_token is enabled. 90 days
refresh_token_expires_at int Timestamp of the refresh token expiration date. Returned only if refresh_token represented in the response. -

Errors

Status Meaning Description Schema
401 Unauthorized Unauthorized UnauthorizedHttpException
403 Forbidden Invalid client_did ForbiddenHttpException
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error, could not get the code ServerErrorHttpException

3. Refresh the token

When your token is expired, you can get a new one by using this endpoint without asking a new user approval.

Example with refresh_token

POST https://api.bwf.staging.manager.one/oauth/token

Accept:application/json
Content-Type: application/json
{
  "client_id": "8DA9CB08-3FB0-451A-98DC-274624E07054",
  "client_secret": "89025ca4e1c4558b37ca9600143286dc0b5f5fa8607f003a184bf1c54a2e90f1",
  "grant_type": "refresh_token",
  "refresh_token": "^[[C3t0kpNhhg0bFrlFpeGNsWjhdZe6RsP4MA-UUmkZF",
  "renew_refresh_token": true
}

Response HTTP 200 :

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
  "token_type": "bearer",
  "expires_in": 3600,
  "refresh_token": "1uJROUJWGoaQGuSbD4Cd_J6tditdDFccy7eOY2w5",
  "refresh_token_expires_at": 1632147029
}

Request

POST /oauth/token

Parameters

Parameter In Type Default Required Description
client_id body string null true The client_id of the service
client_secret body string null true The client_secret of the service
grant_type body string null true The type of grant code requested
code body string null required when the grant_type is "code" The code retrieved
refresh_token body string null required when the grant_type is "refresh_token" The refresh token
renew_refresh_token body boolean true false Invalidate the refresh token. Send false if you want to use the refresh token more than once.

Response

Status Code 200

Name Type Description Validity
access_token string Access token 1 hour
token_type string always set as bearer -
expires_in int duration of the access token (1 hour) -
refresh_token string Token used to ask a new access token when it expired. Returned only if a code has been used or if renew_refresh_token is enabled. 90 days
refresh_token_expires_at int Timestamp of the refresh token expiration date. Returned only if refresh_token represented in the response. -

Errors

Status Meaning Description Schema
401 Unauthorized Unauthorized UnauthorizedHttpException
403 Forbidden Invalid client_did ForbiddenHttpException
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error, could not get the code ServerErrorHttpException

Personal Service Authentication

Get a token

Authentication for personal services uses OAuth 2.0 client_credential flow. You can get an access token simply by using your client credentials. If you don't have any client credentials yet, start here.

An access token expires after one hour. Once it's expired, just make another call to this endpoint to get a new one.

Your service is already connected to all of your accounts, you can use the token to access to all of them.

Example with client_credentials

POST https://api.bwf.staging.manager.one/oauth/token

Accept:application/json
Content-Type: application/json
{
  "client_id": "8DA9CB08-3FB0-451A-98DC-274624E07054",
  "client_secret": "89025ca4e1c4558b37ca9600143286dc0b5f5fa8607f003a184bf1c54a2e90f1",
  "grant_type": "client_credentials"
}

Response HTTP 200 :

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
  "token_type": "bearer",
  "expires_in": 3600
}

Request

POST /oauth/token

Parameters

Parameter In Type Required Description
client_id body string true The client_id of the service
client_secret body string true The client_secret of the service
grant_type body string true The type of (grant code requested), only client_credentials is accepted for personal services

Response

Status Code 200

Name Type Description Validity
access_token string Access token 1 hour
token_type string always set as bearer -
expires_in int duration of the access token (1 hour) -

Errors

Status Meaning Description Schema
401 Unauthorized Unauthorized UnauthorizedHttpException
403 Forbidden Invalid client_did ForbiddenHttpException
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error, could not get the code ServerErrorHttpException

Grant Type

Parameter Description
authorization_code this grant type is used to retrieve a new api token for the partner service
client_credentials this grant type is used to retrieve a new api token for the personal service
refresh_token this grant type is used to refresh a api token for the partner service

Required Headers

Some headers are required in your request to use our API.

Example

curl -X GET https://api.bwf.staging.manager.one/operations \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'
Name Description Required Value
X-bwf-Account-ID ID of the Account you want to use. To see which accounts are connected to your service, you can call (get account). Required in all endpoints excepts the endpoints that are not account scoped (authentication, account, available expiration dates...). account ID
Content-type The media type of the resource returned. Required for the POST and PUT requests. application/json
Authorization The access token that you retrieved from the authentication workflow. Required in all endpoints excepts the authorization ones. Bearer ACCESS_TOKEN
Accept The content type of response that you expect. This header is not required, but if you provide it we support only "application/json". application/json

General information

Base URLs

API

Connect

TPP

Errors

The Banque Wormser Frères API throw an exception when a request fails.

The exception contains a HTTP response code that indicates the type of error.

Forbidden http exception

{
  "name": "Forbidden",
  "message": "You are not allowed to perform this action.",
  "code": 0,
  "status": 403
}
Name Type
name Forbidden
message string
code integer
status 403
type (only in staging environment) yii\web\ForbiddenHttpException

Unauthorized http exception

{
  "name": "Unauthorized",
  "message": "Ip not allowed.",
  "code": 0,
  "status": 401
}
Name Type
name Unauthorized
message string
code integer
status 401
type (only in staging environment) yii\web\UnauthorizedHttpException

Not Found http exception

{
  "name": "Not Found",
  "message": "Operation 1 not found",
  "code": 0,
  "status": 404
}
Name Type
name Not Found
message string
code integer
status 404
type (only in staging environment) yii\web\NotFoundHttpException

Server Error http exception

{
  "name": "Internal Server Error",
  "message": "An internal server error occurred.",
  "code": 0,
  "status": 500
}
Name Type
name Internal Server Error
message string
code integer
status 500
type (only in staging environment) yii\web\ServerErrorHttpException

Bad Request http exception

{
  "name": "Bad Request",
  "message": "The requests should contain a 'X-bwf-Account-ID' header or an 'account_id' parameter",
  "code": 0,
  "status": 400
}
Name Type
name string
message string
code integer
status 400
type (only in staging environment) yii\web\BadRequestHttpException

Fields Validation errors

[
  {
    "field": "amount",
    "message": "amount must be an integer."
  },
  {..}
]

This error is returned when there are errors on model attributes in the request.

The code HTTP returned is 422 Data Validation Failed

Name Type Description
field string Name of the attribute
message string Message of the error

Nested model Fields Validation errors

[
  {
    "field": "user",
    "errors": [
      {
          "field": "first_name",
          "message": "first_name must be a string."
      },
      {..}
    ]
  }
]

This error is returned when there are errors on a model nested in another one (ex: address of a user).

The code HTTP returned is 422 Data Validation Failed

Name Type Description
field string Name of the nested model
errors Array of fields validation errors Errors on the nested model

Model array Fields Validation errors

[
  [ 
    {
      "field": "stakeholders",
      "index": 0,
      "errors": [
        {
            "field": "is_company_officer",
            "message": "is_company_officer  must be either "{true}" or "{false}"."
        },
        {..}
      ]
    },
    {
      "field": "stakeholders",
      "index": 2,
      "errors": [
        {
          "field": "is_physical",
          "message": "is_physical must be either "{true}" or "{false}"."
        },
        {..}
      ]
    },
    {..}
  ]
]

This error is returned when there are errors on models in an array.

The code HTTP returned is 422 Data Validation Failed

Name Type Description
field string Name of the nested model
index integer Index of the model in the array, start at 0
errors Array of fields validation errors Errors on the nested model

Pagination

Example header response

  X-Pagination-Total-Count: 8
  X-Pagination-Page-Count: 1
  X-Pagination-Current-Page: 1
  X-Pagination-Per-Page: 50

All "list" endpoints use the same pagination system.

For instance, you can use this system with list of operations, list of transfers, of list of beneficiaries.

All the information about pagination are returned in the header of the response

Request

GET https://connect.bwf.staging.manager.one/XXXX?page=1

URL Parameters

Parameter In Type Required Description
page query integer false Page number

Account

Get account

Code samples

curl -X GET https://api.bwf.staging.manager.one/accounts \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'

Get the account logged.

Request

GET /accounts

Example response

200

[
   {
      "type": "transaction",
      "opening_date": "2004-04-13",
      "balance_real": 100000,
      "balance": 100000,
      "balance_date": "2021-11-01",
      "client_id": "802174",
      "currency": {
        "iso": "EUR",
        "label": "Euro",
        "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
        "fraction_digits": 2
      },
      "iban": "FR76 4414 9000 0108 0066 3001 944",
      "credit_cards": [],
      "credit_cards_settlements": [],
      "account_number": "00000925580",
      "uuid": "A825BE1F-EF40-44B4-BDCD-28B0BF77CF24",
      "label": "BRUNET SAUNIER ARCHITECTU",
      "open_at": 1081807200,
      "type_label": "Compte à vue",
      "group_type": "transactions_group",
      "group_type_label": "Compte à vue",
      "access": {
        "owner": true,
        "credits": false,
        "accounting": false,
        "approver": false,
        "employee_number": null,
        "role": null,
        "role_label": null,
        "beneficiary": null,
        "status": "active",
        "status_label": "Actif",
        "card_holder": false,
        "transfers": true,
        "dashboard": true,
        "debits": true,
        "operations": true,
        "statements": true,
        "checkbook_order": true
      },
      "permissions": [
        "dashboard.read",
        "checks.read",
        "checks.write",
        "debits.read",
        "statements.read",
        "operations.read",
        "operations.export",
        "accounts.read",
        "account.rib.read",
        "account.balance.read",
        "account.owner",
        "transfers.read",
        "beneficiaries.read",
        "beneficiary_lists.read",
        "transfers.write",
        "beneficiaries.write",
        "beneficiary_lists.write"
      ],
      "display_sections": [],
      "status": "valid",
      "status_label": "Validé",
      "status_group": "valid",
      "has_account_validation": true,
      "has_detail": false,
      "rib": {
        "display_rib": true,
        "iban": "FR7644149000010800663001944",
        "bic": "ESCBFRPP",
        "bank": "44149",
        "branch": "00001",
        "number": "00000925580",
        "checksum": "44",
        "establishment": "Wormser Frères Haussmann",
        "pdf_url": "https://app/accounts/rib"
      },
      "details": [],
      "deferred_account": null
   }
]

Response

Status Code 200 OK

Array of Accounts

Name Type Description
type string Account type
opening_date string Opening date
balance_real float Account balance
balance float Projected account balance
balance_date string Account balance date
client_id string Client number
currency Currency Object Account currency
iban string Account IBAN
credit_cards array Account credit cards
credit_cards_settlements array Credit cards settlements
account_number string Account number
uuid uuid Account UUID
label string Account label
open_at integer Opening timestamp
type_label string Account type label
group_type string Account group type
group_type_label string Account group type label
access Access Object Service access on the account
permissions array Service permissions on the account
display_sections array Sections displayed for the account
status string Account status
status_label string Account status label
status_group string Account status group
has_account_validation boolean Whether the account has validation
has_detail boolean Whether the account has additional details
rib Rib Object RIB of the account
details array Account additional details
deferred_account DeferredAccount Object Account deferred account

Account status

Value Description
blocked Account is blocked
closed Account is closed
closing Account being closed, statement access is enabled for 45 days from the date of the closure request
validating Account is awaiting approval
valid Account is valid

Services

Objects

The service object

NAME TYPE DESCRIPTION
created_at integer Creation timestamp
client_id uuid Client uuid
name string Service name
description string Service description
access Access Service access rights
is_multi_account boolean Service is connected to several accounts
logo Document Service logo

List of services

Retrieves a list of the services connected to the account

Request

GET /services

Code samples

curl -X GET https://api.bwf.staging.manager.one/services
-H 'Accept: application/json'
-H 'Authorization:Bearer ACCESS_TOKEN'
-H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Example response

200

[
  {
    "created_at": 1586354867,
    "client_id": "7a027a57-0acc-465a-b315-ff9709f261f8",
    "name": "test_service",
    "description": "service de test",
    "access": {
      "access_transfers": false,
      "card_client_access_token": false,
      "card_wallet": false,
      "create_users": false,
      "duplicate": false,
      "physical_cards": false,
      "read_operations": true,
      "read_statements": true,
      "read_users": false,
      "virtual_cards": false,
      "virtual_card_generation": false,
      "write_beneficiary": false,
      "write_doc_operation": false,
      "write_operation": false,
      "write_sepa_direct_debit": false
    },
    "is_multi_account": true,
    "logo": {
      "id": 4,
      "url": "https://api-bwf.docker.local/oauth/services/7a027a57-0acc-465a-b315-ff9709f261f8/logo",
      "created_at": 1275429716,
      "updated_at": 1676910044,
      "name": "0A990DC0-49BC-4771-A356-6DE5FA999FC9-avatar.png",
      "filename": "0A990DC0-49BC-4771-A356-6DE5FA999FC9-avatar.png",
      "mime_type": "image/png",
      "size": 6581
    }
  }
]

Response

Status Code 200 OK

Array of Services

Errors

STATUS MEANING DESCRIPTION SCHEMA
403 Forbidden Not authorized ForbiddenHttpException
500 Internal Server Error Unknown error ServerErrorHttpException

Operation

Objects

Details of operations resources

The operation object

Example response

200 Response

{
  "account_id": 1,
  "accounting_date": "string",
  "affectations": [],
  "amount": 10,
  "attributions": [],
  "status": "pending",
  "bank_status": "wait",
  "category": "transfer",
  "category_label": "Virement",
  "created_at": 1567692972,
  "currency": {
    "iso": "EUR",
    "label": "Euro",
    "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
    "fraction_digits": 2
  },
  "detail": {
    "categories": [
      {
        "id": 5,
        "label": "Transport",
        "name": "transport",
        "default": true
      }
    ]
  },
  "documents": [
    {
      "updated_at": 12345,
      "filename": "test.zip",
      "mime_type": "test.zip",
      "url": "string"
    },
    {
      ..
    }
  ],
  "nb_documents": 0,
  "executed_at": 1567693673,
  "uuid": "string",
  "label": "purchase of car parts",
  "operation_at": 1567693673,
  "sub_category": "return_rejected_transfer",
  "type": "debit",
  "type_label": "Débit",
  "updated_at": 1728856800,
  "reference": "E217630",
  "value_date": "2020-06-07",
  "is_marked": false
}



The Operation object

Fields Type Description
account_id integer Id of account of operation
accounting_date string Accounting date of the transfer (YYYY-MM-DD)
affectations array of Affectation List of affectations of the operation, can be the name of the related project for example
amount number(double) Amount of the operation
attributions array of Attribution List of users related to the operation
status string Status of the operation
bank_status string Bank status of the operation
category string Transfer/Withdraw/SEPA etc..
category_label string Category name translated
created_at integer Creation date timestamp
currency Currency Object Currency of the operation
detail OperationDetail Details of the operation
documents array of Document Documents linked with the operation (Invoice,...). Multiple documents.
nb_documents integer Number of documents linked with the operation
executed_at integer Execution date timestamp
uuid uuid UUID of the operation
label string User label
operation_at integer Operation date timestamp
sub_category string Sub_category example: return_rejected_transfer
type string debit (Debit) / credit (Credit)
type_label string Débit / Crédit
updated_at integer Last update timestamp
reference string Reference of the operation
value_date string Value date of the transfer (YYYY-MM-DD)
is_marked boolean Is operation marked

Enumerated Values

Parameter Values
category deposit_cash, deposit_check...
sub_category card_monthly_fee, card_unused_fee...
afb_code 1 (Payment check), 2 (Deposit check), 4 (Deposit cash)
- 5 (Transfer got (credit)), 6 (Transfer send (debit))
- 8 (Automatic debit), 11 (Card operation), 12 (Transfer rejected)
- 29 (Withdrawal), 33 (Fee operation), 91 (Generic Operation)

Operation category values

Value Description
deposit_cash Deposit cash
deposit_check Deposit check
fees Fees
other Other
payment_check Payment check
credit_card Credit card
redraw_atm Redraw Automated Banking Machine
refund Refund
prelevement Prelevement
change_letter Change letter
credit_card_deferred_levy Credit card deferred levy
credit_card_deferred_payment Credit card deferred payment
irregularities Irregularities
transfer Transfer

Operation sub category values

Value Description
card_monthly_fee Fees to be paid in each month for the credit card
card_unused_fee Fees to be paid in case of non-use of the credit card
incident_fee Fees for incidents or irregularities
interest_fee Interest fees
card Credit card
card_fx Credit card fees
delayed Delayed
extourne Extourne
month Monthly subscription
free Free monthly subscription
interchange Interchange
opt Option
subonmain Monthly subscription main account
tpe Payment terminal
transfer Transfer
withdrawal Withdrawal from an ATM
operating_fee Account operating costs
other Other
return_rejected_transfer Return of rejected transfer. When a transfer sent to a beneficiary has been rejected by his bank, a new operation will be credited on the account to refund the transfer.

Operations status

Value Final status Description
cancelled true Operation cancelled
done true Operation done
pending false Operation created, wait for processing
processing false Operation is processed by our system
rejected true Operation rejected
deleted true Operation deleted

The Attribution object

Field Type Description
uuid string uuid of the user
first_name string First name of the user
last_name string Last name of the user
employee_number string Employee number of the user

The Affectation object

Field Type Description
id integer Id of the affectation
label string Label of the affectation

The OperationDetail object

Field Type Description
categories array of OperationCategory Associated Categories

The OperationDetailVat object

Field Type Description
amount number(double) VAT amount of the operation, in cents
rate number(double) VAT rate of the operation, in percent

The Authorization object

Field Type Description
pos_terminal_id string Id of the payment terminal used to make the operation
is_preauthorization boolean Whether the operation is a pre-authorisation or not
name string Name of the merchant
address string Address of the merchant (if provided)
postal_code string Postal code of the merchant (if provided)
city string City of the merchant (if provided)
country_code string Country of the merchant (if provided)

Operation cancellation reasons

Value Description
authorization_expired The card authorization has expired
cancelled_by_bank_admin Operation has been cancelled by a bank admin
cancelled_by_merchant Card authorization has been cancelled by the merchant
cleared The operation has been cleared
transfer_cancelled The transfer linked to the operation has been cancelled
transfer_rejected The transfer linked to the operation has been rejected

Operation reject reason

Field Type Description
value RejectReasonValues Rejection reason value for of a card transaction
label string Rejection Label value for of a card transaction

Fuel values

Value Label
bioethanol-e85 Bioethanol (E85)
diesel-b7 Diesel (B7)
lpg LPG
new-diesel-b10 New diesel (B10)
sp95-e10 SP95 (E10)
sp95-e5 SP95 (E5)
sp98-e5 SP98 (E5)
synthetic-diesel-xtl Synthetic diesel (XTL)

Fuel object

Field Type Description
value Fuel values value of fuel type
label string Label value for of a fuel type

List of operations

Code samples

curl -X GET https://api.bwf.staging.manager.one/operations \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Get the account operations. You can search with free text through the 'search' parameter.

Request

GET /operations

Parameters

Parameter In Type Require Description
search query string false Text to search
type query string false Credit/Debit filter
category query string false Category of operation
sub_category query string false Sub category of the operation, give more details about the category of the operation
attachment query boolean false Filters out operations with attachment: set value to "1" to obtain operations with attachment, set value to "0" to obtain operations without attachment
card query boolean false Filters out card operations: set value to "1" to obtain operations linked to a card, set value to "0" to obtain all operations
card_uuid query string (36) false Uuid of the card attached to the operation
from query string (date) false From date (eq: 2017-01-01)
to query string (date) false To date (eq: 2017-01-31)
min query number (float) false Minimum amount to filter on
max query number (float) false Maximum amount to filter on
afb_code query integer false Afb code of the operation, works only if category and type parameters are not used
expand query string false Field to embed in the response
mid_list_id query integer false Id of the card mid-list attached to the operation
mid query string false Merchant ID of the operation
user_uuid query string (36) false Uuid of the user attached to the operation

Enumerated Values

type
Parameter Values
type credit
type debit
category
Parameter Values
category deposit_cash
category deposit_check
category fees
category other
category payment_check
category credit_card
category redraw_atm
category refund
category prelevement
category change_letter
category credit_card_deferred_levy
category credit_card_deferred_payment
category irregularities
category transfer
sub_category
Parameter Values
sub_category card_monthly_fee
sub_category card_unused_fee
sub_category incident_fee
sub_category interest_fee
sub_category card
sub_category card_fx
sub_category delayed
sub_category extourne
sub_category month
sub_category free
sub_category interchange
sub_category opt
sub_category subonmain
sub_category tpe
sub_category transfer
sub_category withdrawal
sub_category operating_fee
sub_category other
sub_category return_rejected_transfer
card
Parameter Values
card true
card false
expand
Parameter Values
expand service_webhook_events

Example response

200 Response

[
  {
    "account_id": 11732,
    "accounting_date": "2024-10-14",
    "affectations": [],
    "amount": 1138.93,
    "attributions": [],
    "status": "done",
    "bank_status": "wait",
    "category": "credit",
    "category_label": "Crédit",
    "created_at": 1729116000,
    "currency": {
      "iso": "EUR",
      "label": "Euro",
      "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
      "fraction_digits": 2
    },
    "detail": {
      "categories": []
    },
    "documents": [],
    "nb_documents": 0,
    "executed_at": 1729116000,
    "uuid": "BECD9593-6A93-3D7C-BE70-EA5DF5A2FFBE",
    "label": "RBT ECH.PRET REF. E217630 AU 14-OCT-2024",
    "operation_at": 1729116000,
    "sub_category": null,
    "type": "debit",
    "type_label": "Débit",
    "updated_at": 1728856800,
    "reference": "E217630",
    "value_date": "2024-10-14",
    "is_marked": null
  },
  {
    "account_id": 11732,
    "accounting_date": "2024-09-30",
    "affectations": [],
    "amount": 2420.46,
    "attributions": [],
    "status": "done",
    "bank_status": "wait",
    "category": "credit_card",
    "category_label": "Carte de crédit",
    "created_at": 1727647200,
    "currency": {
      "iso": "EUR",
      "label": "Euro",
      "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
      "fraction_digits": 2
    },
    "detail": {
      "categories": []
    },
    "documents": [],
    "nb_documents": 0,
    "executed_at": 1727647200,
    "uuid": "DB97DD56-5775-3FA2-B7E0-DE4DF87C6624",
    "label": "REGLEMENT MENSUEL DES OPERATIONS   CB2888   09 2024",
    "operation_at": 1727647200,
    "sub_category": null,
    "type": "debit",
    "type_label": "Débit",
    "updated_at": 1727647200,
    "reference": "G988908",
    "value_date": "2024-09-30",
    "is_marked": null
  }
]

Response

Status Code 200 OK

Array of Operations

Detail of an operation

Code samples

curl -X GET https://api.bwf.staging.manager.one/operations/{uuid}/{reference} \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Get all the details of an operation.

Request

GET /operations/{uuid}/{reference}

Parameters

Parameter In Type Required Description
uuid path string(UUID) true The operation UUID
reference path string true The operation reference
expand query string false Field to embed in the response

Example response

200 Response

Example response

200 Response

{
  "account_id": 1,
  "accounting_date": "string",
  "affectations": [],
  "amount": 10,
  "attributions": [],
  "status": "pending",
  "bank_status": "wait",
  "category": "transfer",
  "category_label": "Virement",
  "created_at": 1567692972,
  "currency": {
    "iso": "EUR",
    "label": "Euro",
    "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
    "fraction_digits": 2
  },
  "detail": {
    "categories": [
      {
        "id": 5,
        "label": "Transport",
        "name": "transport",
        "default": true
      }
    ]
  },
  "documents": [
    {
      "updated_at": 12345,
      "filename": "test.zip",
      "mime_type": "test.zip",
      "url": "string"
    },
    {
      ..
    }
  ],
  "nb_documents": 0,
  "executed_at": 1567693673,
  "uuid": "string",
  "label": "purchase of car parts",
  "operation_at": 1567693673,
  "sub_category": "return_rejected_transfer",
  "type": "debit",
  "type_label": "Débit",
  "updated_at": 1728856800,
  "reference": "E217630",
  "value_date": "2020-06-07",
  "is_marked": false
}



Response

The operation

Status Code 200 OK

Operation object

Errors

Status Meaning Description Schema
404 Not Found The operation doesn't exist NotFoundHttpException

Statement

List of statements

Code samples

curl -X GET https://api.bwf.staging.manager.one/statements \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

List of statements with an optional filter by year

Request

GET /statements

Parameters

Parameter In Type Required Description
year query integer(int32) false The year filter

Example response

200 Response

[
  {
    "id": "string",
    "period": "monthly",
    "type": "RELEVE",
    "closed_at": 123456789,
    "year": 2018,
    "month": 10,
    "document": {
      "mime_type": "application.pdf"
    }
  },
  {
    "id": "string",
    "period": null,
    "type": "BOREAL",
    "closed_at": 123456789,
    "year": 2018,
    "month": 11,
    "document": {
      "mime_type": "application.pdf"
    }
  }
]

Response

Status Code 200 OK

Array of statements

Name Type Description
id string Statement ID
period string Statement period
type string Statement type
closed_at integer Statement timestamp
year integer Statement year
month integer Statement month
document Document The statement
document.mime_type string MIME Type of the file

Download the statement PDF

Code samples

curl -X GET https://api.bwf.staging.manager.one/statements/{statementId}/document \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Download the statement PDF

Request

GET /statements/{statementId}/document

Parameters

Parameter In Type Required Description
statementId path string true The statement ID

Example response

200 Response

Responses

The statement

Status Code 200 OK

Errors

Status Meaning Description Schema
404 Not Found Not Found NotFoundHttpException

Transfer

List of transfers

Code samples

curl -X GET https://api.bwf.staging.manager.one/transfers \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

List of transfers

Request

GET /transfers

Parameters

Parameter In Type Required Description
search query string false Text to search
status query string false Status
from query string(date) false From date (eq: 2017-01-01)
to query string(date) false To date (eq: 2017-01-31)
min query number(double) false The minimum amount to looking for
max query number(double) false The maximum amount to looking for
cancelled query boolean false Including cancelled transfers

Example response

200 Response

[
  {
    "amount": 1319.32,
    "beneficiary": {
      "id": 1,
      "iban": "FR7630001007941234567890185",
      "label": "John",
      "bic": "SOGEFRPPXXX",
      "updatable": true,
      "social_security_number": "1500789151856",
      "short_tag": null,
      "account_number_formatted": "FR76 3000 1007 9412 3456 1890 185",
      "is_sepa": true,
      "phone_number": null,
      "email": "john@banquewormser.com",
      "comment": null,
      "address": {
        "street": "8, boulevard Charpentier",
        "zip": "71800",
        "city": "ST GERMAIN EN BRIONNAIS",
        "country": "FR",
        "building_number": "8",
        "building_number_index": null,
        "street_name": "Charpentier",
        "street_type": "boulevard"
      },
      "bank_data": {
        "bic": "BDFEFRPPCCT",
        "bank": "BANQUE DE FRANCE",
        "street": "",
        "zip": "",
        "city": "",
        "country": "FRANCE",
        "country_iso": "FR",
        "sepa": true
      },
      "rib": null
    },
    "created_at": 1542301427,
    "certificate": null,
    "comment": null,
    "execution_date": "2018-11-15",
    "currency": {
        "iso": "EUR",
        "label": "Euro",
        "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
        "fraction_digits": 2
    },
    "uuid": "string",
    "label": "PAYSLIP January 2018 John",
    "reference": "string",
    "similar_transfers": null,
    "send_notification": true,
    "status": "cancelled",
    "status_label": "Annulé",
    "type": "direct",
    "updatable": true,
    "validated_at": null,
    "validation_token": "408f8fa8c36324569ca4c4d7cd3c6715",
    "operation": {
      "account_id": 1,
      "accounting_date": "string",
      "affectations": [],
      "amount": 10,
      "attributions": [],
      "status": "pending",
      "bank_status": "wait",
      "category": "transfer",
      "category_label": "Virement",
      "created_at": 1567692972,
      "currency": {
        "iso": "EUR",
        "label": "Euro",
        "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
        "fraction_digits": 2
      },
      "detail": {
        "categories": [
          {
            "id": 5,
            "label": "Transport",
            "name": "transport",
            "default": true
          }
        ]
      },
      "documents": [
        {
          "updated_at": 12345,
          "filename": "test.zip",
          "mime_type": "test.zip",
          "url": "string"
        },
        {
          ..
        }
      ],
      "nb_documents": 0,
      "executed_at": 1567693673,
      "uuid": "string",
      "label": "purchase of car parts",
      "operation_at": 1567693673,
      "sub_category": "return_rejected_transfer",
      "type": "debit",
      "type_label": "Débit",
      "updated_at": 1728856800,
      "reference": "E217630",
      "value_date": "2020-06-07",
      "is_marked": false,
      "beneficiary": null
    }
  }
  {
    "amount": 456,
    "beneficiary": {
      "id": 1,
      "iban": "FR7630001007941234567890185",
      "label": "John",
      "bic": "SOGEFRPPXXX",
      "updatable": true,
      "social_security_number": "1500789151856",
      "short_tag": null,
      "account_number_formatted": "FR76 3000 1007 9412 3456 1890 185",
      "is_sepa": true,
      "phone_number": null,
      "email": "john@banquewormser.com",
      "comment": null,
      "address": {
        "street": "8, boulevard Charpentier",
        "zip": "71800",
        "city": "ST GERMAIN EN BRIONNAIS",
        "country": "FR",
        "building_number": "8",
        "building_number_index": null,
        "street_name": "Charpentier",
        "street_type": "boulevard"
      },
      "bank_data": {
        "bic": "BDFEFRPPCCT",
        "bank": "BANQUE DE FRANCE",
        "street": "",
        "zip": "",
        "city": "",
        "country": "FRANCE",
        "country_iso": "FR",
        "sepa": true
      },
      "rib": null
    },
    "created_at": 1542300827,
    "certificate": null,
    "comment": null,
    "execution_date": "2018-11-16",
    "currency": {
      "iso": "EUR",
      "label": "Euro",
      "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
      "fraction_digits": 2
    },
    "uuid": "string",
    "label": "string",
    "similar_transfers": null,
    "send_notification": false,
    "status": "pending",
    "status_label": "En attente",
    "type": "direct",
    "updatable": false,
    "validated_at": null,
    "validation_token": "389ee29fae55ccda35d5a5c5f412bfb2",
    "operation": {
        "account_id": 1,
        "accounting_date": null,
        "affectations": [],
        "amount": 123,
        "attributions": [],
        "status": "done",
        "bank_status": "done",
        "category": "transfer",
        "category_label": "Virement",
        "created_at": 1542300827,
        "currency": {
          "iso": "EUR",
          "label": "Euro",
          "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
          "fraction_digits": 2
        },
        "detail": {
          "categories": []
        },
        "documents": [],
        "nb_documents": 0,
        "executed_at": 1542386767,
        "uuid": "string",
        "label": "Basic transfer 3",
        "operation_at": 1567693673,
        "sub_category": "return_rejected_transfer",
        "type": "debit",
        "type_label": "Débit",
        "updated_at": 1728856800,
        "reference": "E217630",
        "value_date": "2018-11-15",
        "is_marked": false,
        "beneficiary": null
    }
  },
  {...}
]

Responses

Status Code 200

Array of transfers

Name Type Description
amount number(double) Amount of the transfer
beneficiary Beneficiary Beneficiary of the transfer
created_at integer Creation date
certificate null Certificate of the transfer
comment null User defined comment or reference
execution_date string(date) Date of execution
currency Currency Currency
uuid uuid UUID of transfer
label string User label
reference string Transfer reference
similar_transfers Transfer Similar transfers if exist
send_notification boolean Send a notification to the beneficiary
status string State of the transfer
status_label string State of the transfer translated
type string Type of transfer
updatable boolean Transfer can be updated
validated_at integer Validated at (when the transfer need validation)
validation_token string Validation token of the transfer (can be checked here https://www.banquewormser.com/fr/wirecheck)
operation Operation Operation associated to this transfer

Operation

This model is used whenever we are not in the context of a bank transfer. This means that we have less data on the spender and the transaction which is reflected in the data sent through the webhook.

Fields Type Description
account_id integer Id of account of operation
accounting_date string Accounting date of the transfer (YYYY-MM-DD)
affectations array of Affectation List of affectations of the operation, can be the name of the related project for example
amount number(double) Amount of the operation
attributions array of Attribution List of users related to the operation
status string Status of the operation
bank_status string Bank status of the operation
category string Transfer/Withdraw/SEPA etc..
category_label string Category name translated
created_at integer Creation date timestamp
currency Currency Object Currency of the operation
detail OperationDetail Details of the operation
documents array of Document Documents linked with the operation (Invoice,...). Multiple documents.
nb_documents integer Number of documents linked with the operation
executed_at integer Execution date timestamp
uuid uuid UUID of the operation
label string User label
operation_at integer Operation date timestamp
sub_category string Sub_category example: return_rejected_transfer
type string debit (Debit) / credit (Credit)
type_label string Débit / Crédit
updated_at integer Last update timestamp
reference string Reference of the operation
value_date string Value date of the transfer (YYYY-MM-DD)
is_marked boolean Is operation marked
beneficiary Beneficiary Beneficiary if the operation is a debit transfer

Enumerated Values

Property Value Description
status double_check Need validation of the bank (not SEPA)
status done Transfer done
status pending Transfer wait for processing
status processing Transfer in progress
status sent Transfer sent to the bank
status to_validate The transfer need the validation of the account owner
status wait_signature Wait for a signature of the bank (not SEPA)
status cancelled Transfer cancelled

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
500 Internal Server Error Unknown error ServerErrorHttpException

Creates a transfer

Code samples

curl -X POST https://api.bwf.staging.manager.one/transfers \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Creates a transfer using provided data

Request

POST /transfers

Body parameter

{
  "amount": 123,
  "currency": "EUR",
  "label": "transfer label",
  "type": "direct",
  "execution_date": "2018-11-15",
  "beneficiary_id": 1
}
document: file

Properties

Name In Type Required Description
amount body number(double) true Amount of the transfer
currency body string true EUR/USD etc..
label body string false Transfer label
type body string false Type of transfer
execution_date body string(date) false Date of execution
beneficiary_id body integer false ID of beneficiary

Enumerated Values

Property Value
type direct
type delayed
type periodic

Example response

201 Response

{
  "amount": 1319.32,
  "beneficiary": {
    "id": 1,
    "iban": "FR7630001007941234567890185",
    "label": "John",
    "bic": "SOGEFRPPXXX",
    "updatable": true,
    "social_security_number": "1500789151856",
    "short_tag": null,
    "account_number_formatted": "FR76 3000 1007 9412 3456 1890 185",
    "is_sepa": true,
    "phone_number": null,
    "email": "john@banquewormser.com",
    "comment": null,
    "address": {
      "street": "8, boulevard Charpentier",
      "zip": "71800",
      "city": "ST GERMAIN EN BRIONNAIS",
      "country": "FR",
      "building_number": "8",
      "building_number_index": null,
      "street_name": "Charpentier",
      "street_type": "boulevard"
    },
    "bank_data": {
      "bic": "BDFEFRPPCCT",
      "bank": "BANQUE DE FRANCE",
      "street": "",
      "zip": "",
      "city": "",
      "country": "FRANCE",
      "country_iso": "FR",
      "sepa": true
    },
    "rib": null
  },
  "created_at": 1542301427,
  "certificate": null,
  "comment": null,
  "execution_date": "2018-11-15",
  "currency": {
      "iso": "EUR",
      "label": "Euro",
      "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
      "fraction_digits": 2
  },
  "uuid": "string",
  "label": "PAYSLIP January 2018 John",
  "reference": "string",
  "similar_transfers": null,
  "send_notification": true,
  "status": "cancelled",
  "status_label": "Annulé",
  "type": "direct",
  "updatable": true,
  "validated_at": null,
  "validation_token": "408f8fa8c36324569ca4c4d7cd3c6715",
  "operation": {
    "account_id": 1,
    "accounting_date": "string",
    "affectations": [],
    "amount": 10,
    "attributions": [],
    "status": "pending",
    "bank_status": "wait",
    "category": "transfer",
    "category_label": "Virement",
    "created_at": 1567692972,
    "currency": {
      "iso": "EUR",
      "label": "Euro",
      "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
      "fraction_digits": 2
    },
    "detail": {
      "categories": [
        {
          "id": 5,
          "label": "Transport",
          "name": "transport",
          "default": true
        }
      ]
    },
    "documents": [
      {
        "updated_at": 12345,
        "filename": "test.zip",
        "mime_type": "test.zip",
        "url": "string"
      },
      {
        ..
      }
    ],
    "nb_documents": 0,
    "executed_at": 1567693673,
    "uuid": "string",
    "label": "purchase of car parts",
    "operation_at": 1567693673,
    "sub_category": "return_rejected_transfer",
    "type": "debit",
    "type_label": "Débit",
    "updated_at": 1728856800,
    "reference": "E217630",
    "value_date": "2020-06-07",
    "is_marked": false,
    "beneficiary": null
  }
}

Responses

Name Type Description
amount number(double) Amount of the transfer
beneficiary Beneficiary Beneficiary of the transfer
created_at integer Creation date
certificate null Certificate of the transfer
comment null User defined comment or reference
execution_date string(date) Date of execution
currency Currency Currency
uuid uuid UUID of transfer
label string User label
reference string Transfer reference
similar_transfers Transfer Similar transfers if exist
send_notification boolean Send a notification to the beneficiary
status string State of the transfer
status_label string State of the transfer translated
type string Type of transfer
updatable boolean Transfer can be updated
validated_at integer Validated at (when the transfer need validation)
validation_token string Validation token of the transfer (can be checked here https://www.banquewormser.com/fr/wirecheck)
operation Operation Operation associated to this transfer

Operation

This model is used whenever we are not in the context of a bank transfer. This means that we have less data on the spender and the transaction which is reflected in the data sent through the webhook.

Fields Type Description
account_id integer Id of account of operation
accounting_date string Accounting date of the transfer (YYYY-MM-DD)
affectations array of Affectation List of affectations of the operation, can be the name of the related project for example
amount number(double) Amount of the operation
attributions array of Attribution List of users related to the operation
status string Status of the operation
bank_status string Bank status of the operation
category string Transfer/Withdraw/SEPA etc..
category_label string Category name translated
created_at integer Creation date timestamp
currency Currency Object Currency of the operation
detail OperationDetail Details of the operation
documents array of Document Documents linked with the operation (Invoice,...). Multiple documents.
nb_documents integer Number of documents linked with the operation
executed_at integer Execution date timestamp
uuid uuid UUID of the operation
label string User label
operation_at integer Operation date timestamp
sub_category string Sub_category example: return_rejected_transfer
type string debit (Debit) / credit (Credit)
type_label string Débit / Crédit
updated_at integer Last update timestamp
reference string Reference of the operation
value_date string Value date of the transfer (YYYY-MM-DD)
is_marked boolean Is operation marked
beneficiary Beneficiary Beneficiary if the operation is a debit transfer

Enumerated Values

Property Value Description
status double_check Need validation of the bank (not SEPA)
status done Transfer done
status pending Transfer wait for processing
status processing Transfer in progress
status sent Transfer sent to the bank
status to_validate The transfer need the validation of the account owner
status wait_signature Wait for a signature of the bank (not SEPA)
status cancelled Transfer cancelled

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error ServerErrorHttpException

Get a transfer

Code samples

curl -X GET https://api.bwf.staging.manager.one/transfers/{uuid}/{reference} \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Return a transfer

Request

GET /transfers/{uuid}/{reference}

Parameters

Parameter In Type Required Description
uuid path string(UUID) true The transfer UUID
reference path string true The transfer reference

Example response

200 Response

Example response

200 Response

{
  "amount": 1319.32,
  "beneficiary": {
    "id": 1,
    "iban": "FR7630001007941234567890185",
    "label": "John",
    "bic": "SOGEFRPPXXX",
    "updatable": true,
    "social_security_number": "1500789151856",
    "short_tag": null,
    "account_number_formatted": "FR76 3000 1007 9412 3456 1890 185",
    "is_sepa": true,
    "phone_number": null,
    "email": "john@banquewormser.com",
    "comment": null,
    "address": {
      "street": "8, boulevard Charpentier",
      "zip": "71800",
      "city": "ST GERMAIN EN BRIONNAIS",
      "country": "FR",
      "building_number": "8",
      "building_number_index": null,
      "street_name": "Charpentier",
      "street_type": "boulevard"
    },
    "bank_data": {
      "bic": "BDFEFRPPCCT",
      "bank": "BANQUE DE FRANCE",
      "street": "",
      "zip": "",
      "city": "",
      "country": "FRANCE",
      "country_iso": "FR",
      "sepa": true
    },
    "rib": null
  },
  "created_at": 1542301427,
  "certificate": null,
  "comment": null,
  "execution_date": "2018-11-15",
  "currency": {
      "iso": "EUR",
      "label": "Euro",
      "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
      "fraction_digits": 2
  },
  "uuid": "string",
  "label": "PAYSLIP January 2018 John",
  "reference": "string",
  "similar_transfers": null,
  "send_notification": true,
  "status": "cancelled",
  "status_label": "Annulé",
  "type": "direct",
  "updatable": true,
  "validated_at": null,
  "validation_token": "408f8fa8c36324569ca4c4d7cd3c6715",
  "operation": {
    "account_id": 1,
    "accounting_date": "string",
    "affectations": [],
    "amount": 10,
    "attributions": [],
    "status": "pending",
    "bank_status": "wait",
    "category": "transfer",
    "category_label": "Virement",
    "created_at": 1567692972,
    "currency": {
      "iso": "EUR",
      "label": "Euro",
      "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
      "fraction_digits": 2
    },
    "detail": {
      "categories": [
        {
          "id": 5,
          "label": "Transport",
          "name": "transport",
          "default": true
        }
      ]
    },
    "documents": [
      {
        "updated_at": 12345,
        "filename": "test.zip",
        "mime_type": "test.zip",
        "url": "string"
      },
      {
        ..
      }
    ],
    "nb_documents": 0,
    "executed_at": 1567693673,
    "uuid": "string",
    "label": "purchase of car parts",
    "operation_at": 1567693673,
    "sub_category": "return_rejected_transfer",
    "type": "debit",
    "type_label": "Débit",
    "updated_at": 1728856800,
    "reference": "E217630",
    "value_date": "2020-06-07",
    "is_marked": false,
    "beneficiary": null
  }
}

Responses

Transfer

Name Type Description
amount number(double) Amount of the transfer
beneficiary Beneficiary Beneficiary of the transfer
created_at integer Creation date
certificate null Certificate of the transfer
comment null User defined comment or reference
execution_date string(date) Date of execution
currency Currency Currency
uuid uuid UUID of transfer
label string User label
reference string Transfer reference
similar_transfers Transfer Similar transfers if exist
send_notification boolean Send a notification to the beneficiary
status string State of the transfer
status_label string State of the transfer translated
type string Type of transfer
updatable boolean Transfer can be updated
validated_at integer Validated at (when the transfer need validation)
validation_token string Validation token of the transfer (can be checked here https://www.banquewormser.com/fr/wirecheck)
operation Operation Operation associated to this transfer

Operation

This model is used whenever we are not in the context of a bank transfer. This means that we have less data on the spender and the transaction which is reflected in the data sent through the webhook.

Fields Type Description
account_id integer Id of account of operation
accounting_date string Accounting date of the transfer (YYYY-MM-DD)
affectations array of Affectation List of affectations of the operation, can be the name of the related project for example
amount number(double) Amount of the operation
attributions array of Attribution List of users related to the operation
status string Status of the operation
bank_status string Bank status of the operation
category string Transfer/Withdraw/SEPA etc..
category_label string Category name translated
created_at integer Creation date timestamp
currency Currency Object Currency of the operation
detail OperationDetail Details of the operation
documents array of Document Documents linked with the operation (Invoice,...). Multiple documents.
nb_documents integer Number of documents linked with the operation
executed_at integer Execution date timestamp
uuid uuid UUID of the operation
label string User label
operation_at integer Operation date timestamp
sub_category string Sub_category example: return_rejected_transfer
type string debit (Debit) / credit (Credit)
type_label string Débit / Crédit
updated_at integer Last update timestamp
reference string Reference of the operation
value_date string Value date of the transfer (YYYY-MM-DD)
is_marked boolean Is operation marked
beneficiary Beneficiary Beneficiary if the operation is a debit transfer

Enumerated Values

Property Value Description
status double_check Need validation of the bank (not SEPA)
status done Transfer done
status pending Transfer wait for processing
status processing Transfer in progress
status sent Transfer sent to the bank
status to_validate The transfer need the validation of the account owner
status wait_signature Wait for a signature of the bank (not SEPA)
status cancelled Transfer cancelled

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
404 Not Found The transfer doesn't exist NotFoundHttpException
500 Internal Server Error Unknown error ServerErrorHttpException

Update a transfer

Code samples

curl -X PUT https://api.bwf.staging.manager.one/transfers/{uuid}/{reference} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Update a specific transfer

Request

PUT /transfers/{uuid}/{reference}

Body parameter

{
  "amount": "1319.32",
  "currency": "EUR",
  "execution_date": "2018-11-16",
}

Parameters

Parameter In Type Required Description
uuid path string(UUID) true The transfer UUID
reference path string true The transfer reference
amount body number(double) false Amount of the transfer
currency body string false Currency of the transfer
execution_date body string(date) false Date of execution

Example response

200 Response

{
  "amount": 1319.32,
  "beneficiary": {
    "id": 1,
    "iban": "FR7630001007941234567890185",
    "label": "John",
    "bic": "SOGEFRPPXXX",
    "updatable": true,
    "social_security_number": "1500789151856",
    "short_tag": null,
    "account_number_formatted": "FR76 3000 1007 9412 3456 1890 185",
    "is_sepa": true,
    "phone_number": null,
    "email": "john@banquewormser.com",
    "comment": null,
    "address": {
      "street": "8, boulevard Charpentier",
      "zip": "71800",
      "city": "ST GERMAIN EN BRIONNAIS",
      "country": "FR",
      "building_number": "8",
      "building_number_index": null,
      "street_name": "Charpentier",
      "street_type": "boulevard"
    },
    "bank_data": {
      "bic": "BDFEFRPPCCT",
      "bank": "BANQUE DE FRANCE",
      "street": "",
      "zip": "",
      "city": "",
      "country": "FRANCE",
      "country_iso": "FR",
      "sepa": true
    },
    "rib": null
  },
  "created_at": 1542301427,
  "certificate": null,
  "comment": null,
  "execution_date": "2018-11-15",
  "currency": {
      "iso": "EUR",
      "label": "Euro",
      "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
      "fraction_digits": 2
  },
  "uuid": "string",
  "label": "PAYSLIP January 2018 John",
  "reference": "string",
  "similar_transfers": null,
  "send_notification": true,
  "status": "cancelled",
  "status_label": "Annulé",
  "type": "direct",
  "updatable": true,
  "validated_at": null,
  "validation_token": "408f8fa8c36324569ca4c4d7cd3c6715",
  "operation": {
    "account_id": 1,
    "accounting_date": "string",
    "affectations": [],
    "amount": 10,
    "attributions": [],
    "status": "pending",
    "bank_status": "wait",
    "category": "transfer",
    "category_label": "Virement",
    "created_at": 1567692972,
    "currency": {
      "iso": "EUR",
      "label": "Euro",
      "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
      "fraction_digits": 2
    },
    "detail": {
      "categories": [
        {
          "id": 5,
          "label": "Transport",
          "name": "transport",
          "default": true
        }
      ]
    },
    "documents": [
      {
        "updated_at": 12345,
        "filename": "test.zip",
        "mime_type": "test.zip",
        "url": "string"
      },
      {
        ..
      }
    ],
    "nb_documents": 0,
    "executed_at": 1567693673,
    "uuid": "string",
    "label": "purchase of car parts",
    "operation_at": 1567693673,
    "sub_category": "return_rejected_transfer",
    "type": "debit",
    "type_label": "Débit",
    "updated_at": 1728856800,
    "reference": "E217630",
    "value_date": "2020-06-07",
    "is_marked": false,
    "beneficiary": null
  }
}

Responses

Status Code 200 OK

Transfer

Name Type Description
amount number(double) Amount of the transfer
beneficiary Beneficiary Beneficiary of the transfer
created_at integer Creation date
certificate null Certificate of the transfer
comment null User defined comment or reference
execution_date string(date) Date of execution
currency Currency Currency
uuid uuid UUID of transfer
label string User label
reference string Transfer reference
similar_transfers Transfer Similar transfers if exist
send_notification boolean Send a notification to the beneficiary
status string State of the transfer
status_label string State of the transfer translated
type string Type of transfer
updatable boolean Transfer can be updated
validated_at integer Validated at (when the transfer need validation)
validation_token string Validation token of the transfer (can be checked here https://www.banquewormser.com/fr/wirecheck)
operation Operation Operation associated to this transfer

Operation

This model is used whenever we are not in the context of a bank transfer. This means that we have less data on the spender and the transaction which is reflected in the data sent through the webhook.

Fields Type Description
account_id integer Id of account of operation
accounting_date string Accounting date of the transfer (YYYY-MM-DD)
affectations array of Affectation List of affectations of the operation, can be the name of the related project for example
amount number(double) Amount of the operation
attributions array of Attribution List of users related to the operation
status string Status of the operation
bank_status string Bank status of the operation
category string Transfer/Withdraw/SEPA etc..
category_label string Category name translated
created_at integer Creation date timestamp
currency Currency Object Currency of the operation
detail OperationDetail Details of the operation
documents array of Document Documents linked with the operation (Invoice,...). Multiple documents.
nb_documents integer Number of documents linked with the operation
executed_at integer Execution date timestamp
uuid uuid UUID of the operation
label string User label
operation_at integer Operation date timestamp
sub_category string Sub_category example: return_rejected_transfer
type string debit (Debit) / credit (Credit)
type_label string Débit / Crédit
updated_at integer Last update timestamp
reference string Reference of the operation
value_date string Value date of the transfer (YYYY-MM-DD)
is_marked boolean Is operation marked
beneficiary Beneficiary Beneficiary if the operation is a debit transfer

Enumerated Values

Property Value Description
status double_check Need validation of the bank (not SEPA)
status done Transfer done
status pending Transfer wait for processing
status processing Transfer in progress
status sent Transfer sent to the bank
status to_validate The transfer need the validation of the account owner
status wait_signature Wait for a signature of the bank (not SEPA)
status cancelled Transfer cancelled

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
404 Not Found The transfer doesn't exist NotFoundHttpException
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error ServerErrorHttpException

Cancel a transfer

Code samples

curl -X DELETE https://api.bwf.staging.manager.one/transfers/{uuid}/{reference} \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Cancel a specific transfer

Request

DELETE /transfers/{uuid}/{reference}

Parameters

Parameter In Type Required Description
uuid path string(UUID) true The transfer UUID
reference path string true The transfer reference

Example response

200 Response

{
  "amount": 1319.32,
  "beneficiary": {
    "id": 1,
    "iban": "FR7630001007941234567890185",
    "label": "John",
    "bic": "SOGEFRPPXXX",
    "updatable": true,
    "social_security_number": "1500789151856",
    "short_tag": null,
    "account_number_formatted": "FR76 3000 1007 9412 3456 1890 185",
    "is_sepa": true,
    "phone_number": null,
    "email": "john@banquewormser.com",
    "comment": null,
    "address": {
      "street": "8, boulevard Charpentier",
      "zip": "71800",
      "city": "ST GERMAIN EN BRIONNAIS",
      "country": "FR",
      "building_number": "8",
      "building_number_index": null,
      "street_name": "Charpentier",
      "street_type": "boulevard"
    },
    "bank_data": {
      "bic": "BDFEFRPPCCT",
      "bank": "BANQUE DE FRANCE",
      "street": "",
      "zip": "",
      "city": "",
      "country": "FRANCE",
      "country_iso": "FR",
      "sepa": true
    },
    "rib": null
  },
  "created_at": 1542301427,
  "certificate": null,
  "comment": null,
  "execution_date": "2018-11-15",
  "currency": {
      "iso": "EUR",
      "label": "Euro",
      "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
      "fraction_digits": 2
  },
  "uuid": "string",
  "label": "PAYSLIP January 2018 John",
  "reference": "string",
  "similar_transfers": null,
  "send_notification": true,
  "status": "cancelled",
  "status_label": "Annulé",
  "type": "direct",
  "updatable": true,
  "validated_at": null,
  "validation_token": "408f8fa8c36324569ca4c4d7cd3c6715",
  "operation": {
      "account_id": 1,
        "accounting_date": "string",
        "affectations": [],
        "amount": 10,
        "attributions": [],
        "status": "pending",
        "bank_status": "wait",
        "category": "transfer",
        "category_label": "Virement",
        "created_at": 1567692972,
        "currency": {
          "iso": "EUR",
          "label": "Euro",
          "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
          "fraction_digits": 2
        },
        "detail": {
          "categories": [
            {
              "id": 5,
              "label": "Transport",
              "name": "transport",
              "default": true
            }
          ]
        },
        "documents": [
          {
            "updated_at": 12345,
            "filename": "test.zip",
            "mime_type": "test.zip",
            "url": "string"
          },
          {
            ..
          }
        ],
        "nb_documents": 0,
        "executed_at": 1567693673,
        "uuid": "string",
        "label": "purchase of car parts",
        "operation_at": 1567693673,
        "sub_category": "return_rejected_transfer",
        "type": "debit",
        "type_label": "Débit",
        "updated_at": 1728856800,
        "reference": "E217630",
        "value_date": "2020-06-07",
        "is_marked": false,
      "beneficiary": null
    }
}

Responses

Status Code 200 OK

Transfer

Name Type Description
amount number(double) Amount of the transfer
beneficiary Beneficiary Beneficiary of the transfer
created_at integer Creation date
certificate null Certificate of the transfer
comment null User defined comment or reference
execution_date string(date) Date of execution
currency Currency Currency
uuid uuid UUID of transfer
label string User label
reference string Transfer reference
similar_transfers Transfer Similar transfers if exist
send_notification boolean Send a notification to the beneficiary
status string State of the transfer
status_label string State of the transfer translated
type string Type of transfer
updatable boolean Transfer can be updated
validated_at integer Validated at (when the transfer need validation)
validation_token string Validation token of the transfer (can be checked here https://www.banquewormser.com/fr/wirecheck)
operation Operation Operation associated to this transfer

Operation

This model is used whenever we are not in the context of a bank transfer. This means that we have less data on the spender and the transaction which is reflected in the data sent through the webhook.

Fields Type Description
account_id integer Id of account of operation
accounting_date string Accounting date of the transfer (YYYY-MM-DD)
affectations array of Affectation List of affectations of the operation, can be the name of the related project for example
amount number(double) Amount of the operation
attributions array of Attribution List of users related to the operation
status string Status of the operation
bank_status string Bank status of the operation
category string Transfer/Withdraw/SEPA etc..
category_label string Category name translated
created_at integer Creation date timestamp
currency Currency Object Currency of the operation
detail OperationDetail Details of the operation
documents array of Document Documents linked with the operation (Invoice,...). Multiple documents.
nb_documents integer Number of documents linked with the operation
executed_at integer Execution date timestamp
uuid uuid UUID of the operation
label string User label
operation_at integer Operation date timestamp
sub_category string Sub_category example: return_rejected_transfer
type string debit (Debit) / credit (Credit)
type_label string Débit / Crédit
updated_at integer Last update timestamp
reference string Reference of the operation
value_date string Value date of the transfer (YYYY-MM-DD)
is_marked boolean Is operation marked
beneficiary Beneficiary Beneficiary if the operation is a debit transfer

Enumerated Values

Property Value Description
status double_check Need validation of the bank (not SEPA)
status done Transfer done
status pending Transfer wait for processing
status processing Transfer in progress
status sent Transfer sent to the bank
status to_validate The transfer need the validation of the account owner
status wait_signature Wait for a signature of the bank (not SEPA)
status cancelled Transfer cancelled

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error ServerErrorHttpException

Beneficiary

Objects

The beneficiary object

Name Type Description
id integer Beneficiary ID
iban string IBAN
label string Name / social reason of the beneficiary
bic string BIC code
updatable boolean Updatable or not
social_security_number string Beneficiary social security number
short_tag string Associated code
account_number_formatted string Formatted Account number
is_sepa boolean SEPA or not
phone_number string Beneficiary phone number
email string(email) Beneficiary email
comment string Comment on the beneficiary
address Address Address of the beneficiary
bank_data Iban Bank data of the beneficiary
bank_data.bic string Bank Identifier Code
bank_data.bank string Bank of the beneficiary
bank_data.street string Street of the bank
bank_data.zip string Zip code of the bank
bank_data.city string City of the bank
bank_data.state string State of the bank
bank_data.country string Country of the bank
bank_data.country_iso string Country code
bank_data.sepa boolean SEPA or not
rib Document Rib of the beneficiary
rib.updated_at integer Date of update
rib.filename string filename of the document
rib.mime_type string MIME Type of the file
rib.url string URL to download the file if uploaded

The beneficiary address

Field Type Description
street deprecated string First line of the address
zip string zip code
city string City
country string ISO Alpha 2 code of the country
building_number_index string Index of building number such as bis or ter
building_number string Number of building
street_type string Type of street
street_name string Name of street

Beneficiaries

Code samples

curl -X GET https://api.bwf.staging.manager.one/beneficiaries?iban=FR7630001007941234561890185&expand=beneficiary_list,account \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

List of beneficiaries

Request

GET /beneficiaries

Parameters

Parameter In Type Required Description
iban query string false IBAN of beneficiaries to be returned
expand query string false Comma separated list of other fields to return

Enumerated Values

Parameter Value
expand beneficiary_list
expand account

Example response

200 Response

[
  {
    "id": 1,
    "iban": "FR7630001007941234567890185",
    "label": "John",
    "bic": "SOGEFRPPXXX",
    "updatable": true,
    "social_security_number": "1500789151856",
    "short_tag": null,
    "account_number_formatted": "FR76 3000 1007 9412 3456 1890 185",
    "is_sepa": true,
    "phone_number": null,
    "email": "john@banquewormser.com",
    "comment": null,
    "address": {
      "street": "8, boulevard Charpentier",
      "zip": "71800",
      "city": "ST GERMAIN EN BRIONNAIS",
      "country": "FR",
      "building_number": "8",
      "building_number_index": null,
      "street_name": "Charpentier",
      "street_type": "boulevard"
    },
    "bank_data": {
      "bic": "BDFEFRPPCCT",
      "bank": "BANQUE DE FRANCE",
      "street": "",
      "zip": "",
      "city": "",
      "country": "FRANCE",
      "country_iso": "FR",
      "sepa": true
    },
    "rib": null
  },
  {
    "id": 2,
    "iban": "FR7630001007941234567890185",
    "label": "Alison",
    "bic": "string",
    "updatable": true,
    "social_security_number": "123456789",
    "short_tag": "GOPR",
    "account_number_formatted": "FR76 3000 1007 9412 3456 1890 185",
    "is_sepa": true,
    "phone_number": "0591731935",
    "email": "alison@banquewormser.com",
    "comment": "string",
    "address": {
      "street": "56, boulevard Louise Maillet",
      "zip": "75002",
      "city": "PARIS 02",
      "country": "FR",
      "building_number": "56",
      "building_number_index": null,
      "street_name": "Louise Maillet",
      "street_type": "boulevard"
    },
    "bank_data": {
      "bic": "BOUSFRPPXXX",
      "bank": "BOURSORAMA",
      "street": "18 QUAI DU POINT DU JOUR",
      "zip": "92659",
      "city": "BOULOGNE BILLANCOURT",
      "state": "ILE-DE-FRANCE",
      "country": "FRANCE",
      "country_iso": "FR",
      "sepa": true
    },
    "rib": null
  }
]

Responses

Status Code 200 OK

Array of Beneficiaries

Errors

Status Meaning Description Schema
401 Unauthorized Not authorized UnauthorizedHttpException
403 Forbidden Not authorized ForbiddenHttpException
500 Internal Server Error Unknown error ServerErrorHttpException

Create a beneficiary

Code samples

curl -X POST https://api.bwf.staging.manager.one/beneficiaries \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Create a beneficiary

Request

POST /beneficiaries

Body parameter

{
  "label": "string",
  "short_tag": "GOPR",
  "iban": "FR7630001007941234567890185",
  "bic": "string",
  "phone_number": "0591731935",
  "email": "jean@banquewormser.com",
  "comment": "Somme comment",
  "beneficiary_list_id": 0,
  "is_sepa": true,
  "bank_data": {
    "bic": "BOUSFRPPXXX",
    "bank": "BOURSORAMA",
    "street": "18 QUAI DU POINT DU JOUR",
    "zip": "92659",
    "city": "BOULOGNE BILLANCOURT",
    "state": "ILE-DE-FRANCE",
    "country": "FRANCE",
    "country_iso": "FR",
    "sepa": true
  },
  "address": {
    "street": "48, Rue de la Vielle Ecole",
    "zip": "75116",
    "city": "Paris",
    "country": "France",
    "building_number": "48",
    "building_number_index": null,
    "street_name": "de la Vielle Ecole",
    "street_type": "rue"
  },
  "social_security_number": "123456789"
}

Parameters

Name Type Required Description
label string true Name / social reason of the beneficiary
short_tag string false Associated code
iban string true IBAN
bic string true BIC code
phone_number string false Beneficiary phone number
email string(email) false User email
comment string false Comment on the Beneficiary
beneficiary_list_id integer false Id of the beneficiary_list
is_sepa boolean false SEPA or not
bank_data Iban Only when not SEPA Bank data of the beneficiary
bank_data.bic string Only when not SEPA Bank Identifier Code
bank_data.bank string Only when not SEPA Bank of the beneficiary
bank_data.street string Only when not SEPA Street of the bank
bank_data.zip string Only when not SEPA Zip code of the bank
bank_data.city string Only when not SEPA City of the bank
bank_data.state string Only when not SEPA State of the bank
bank_data.country string Only when not SEPA Country of the bank
bank_data.country_iso string Only when not SEPA Country ISO 3166-1 alpha-2 of the bank
bank_data.sepa boolean Only when not SEPA SEPA or not
address Address Only when not SEPA Address of the beneficiary
social_security_number string false Beneficiary social security number
rib file false Rib attached to the beneficiary.

Example response

201 Response

{
  "id": 1,
  "iban": "FR7630001007941234567890185",
  "label": "string",
  "bic": "string",
  "updatable": true,
  "social_security_number": "123456789",
  "short_tag": "GOPR",
  "account_number_formatted": "FR76 3000 1007 9412 3456 7890 534",
  "is_sepa": true,
  "phone_number": "0591731935",
  "email": "jean@banquewormser.com",
  "comment": "string",
  "address": {
    "street": "48, Rue de la Vielle Ecole",
    "zip": "75116",
    "city": "Paris",
    "country": "France",
    "building_number": "48",
    "building_number_index": null,
    "street_name": "de la Vielle Ecole",
    "street_type": "rue"
  },
  "bank_data": {
    "bic": "BOUSFRPPXXX",
    "bank": "BOURSORAMA",
    "street": "18 QUAI DU POINT DU JOUR",
    "zip": "92659",
    "city": "BOULOGNE BILLANCOURT",
    "state": "ILE-DE-FRANCE",
    "country": "FRANCE",
    "country_iso": "FR",
    "sepa": true
  },
  "rib": null
}

Responses

Status Code 201 CREATED

Beneficiary

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error ServerErrorHttpException

View a beneficiary

Code samples

curl -X GET https://api.bwf.staging.manager.one/beneficiaries/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

View a beneficiary

Request

GET /beneficiaries/{id}

Parameters

Parameter In Type Required Description
id path integer(int32) true The beneficiary ID

Example response

201 Response

{
  "id": 1,
  "iban": "FR7630001007941234567890185",
  "label": "string",
  "bic": "string",
  "updatable": true,
  "social_security_number": "123456789",
  "short_tag": "GOPR",
  "account_number_formatted": "FR76 3000 1007 9412 3456 7890 534",
  "is_sepa": true,
  "phone_number": "0591731935",
  "email": "jean@banquewormser.com",
  "comment": "string",
  "address": {
    "street": "48, Rue de la Vielle Ecole",
    "zip": "75116",
    "city": "Paris",
    "country": "France",
    "building_number": "48",
    "building_number_index": null,
    "street_name": "de la Vielle Ecole",
    "street_type": "rue"
  },
  "bank_data": {
    "bic": "BOUSFRPPXXX",
    "bank": "BOURSORAMA",
    "street": "18 QUAI DU POINT DU JOUR",
    "zip": "92659",
    "city": "BOULOGNE BILLANCOURT",
    "state": "ILE-DE-FRANCE",
    "country": "FRANCE",
    "country_iso": "FR",
    "sepa": true
  },
  "rib": null
}

Responses

Status Code 200 OK

Beneficiary

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
404 Not Found The beneficiary doesn't exist None

Update a beneficiary

Code samples

curl -X PUT https://api.bwf.staging.manager.one/beneficiaries/{id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Update a beneficiary

Request

PUT /beneficiaries/{id}

Body parameter

{
  "short_tag": "bwf",
  "comment": "some comment",
  "address": {
     "street": "1 rue de Paris",
     "zip": "75000",
     "city": "Paris",
     "country": "France",
     "building_number": "1",
     "building_number_index": null,
     "street_name": "de Paris",
     "street_type": "rue"
  }
}

Parameters

Name In Type Required Description
label body string false Name / social reason of the beneficiary
short_tag body string false Associated code
phone_number body string false Beneficiary phone number
email body string(email) false User email
comment body string false Comment on the Beneficiary
beneficiary_list_id body integer false Id of the beneficiary_list
address body Address false Address of the beneficiary
social_security_number body string false Beneficiary social security number

Example response

200 Response

{
  "id": 1,
  "iban": "FR7630001007941234567890185",
  "label": "string",
  "bic": "string",
  "updatable": true,
  "social_security_number": "123456789",
  "short_tag": "bwf",
  "account_number_formatted": "FR76 3000 1007 9412 3456 7890 534",
  "is_sepa": true,
  "phone_number": "0591731935",
  "email": "jeanbanquewormser.com",
  "comment": "Somme comment",
  "address": {
    "street": "1 rue de Paris",
    "zip": "75000",
    "city": "Paris",
    "country": "France",
    "building_number": "1",
    "building_number_index": null,
    "street_name": "de Paris",
    "street_type": "rue"
  },
  "bank_data": {
    "bic": "BOUSFRPPXXX",
    "bank": "BOURSORAMA",
    "street": "18 QUAI DU POINT DU JOUR",
    "zip": "92659",
    "city": "BOULOGNE BILLANCOURT",
    "state": "ILE-DE-FRANCE",
    "country": "FRANCE",
    "country_iso": "FR",
    "sepa": true
  },
  "rib": null
}

Responses

Status Code 200 OK

Beneficiary

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error ServerErrorHttpException

Delete a beneficiary

Code samples

curl -X DELETE https://api.bwf.staging.manager.one/beneficiaries/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Delete a beneficiary

Request

DELETE /beneficiaries/{id}

Parameters

Parameter In Type Required Description
id path integer(int32) true The beneficiary ID

Example response

204 Response

Responses

Status Code 204 No Content

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
404 Not Found The beneficiary doesn't exist NotFoundHttpException
500 Internal Server Error Unknown error when deleting the beneficiary ServerErrorHttpException

Beneficiary List

List of beneficiary lists

Code samples

curl -X GET https://api.bwf.staging.manager.one/beneficiary-lists \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Get all beneficiary lists

Request

GET /beneficiary-lists

Parameters

Parameter In Type Required Description
expand query string false List of other fields to return

Enumerated Values

Parameter Value
expand beneficiaries

Example response

200 Response

[
  {
    "id": 1,
    "label": "string",
    "comment": "string",
    "nb_beneficiaries": 2,
    "list_type": {
     "id": 1,
     "name":"Suppliers",
     "label":"Fournisseurs"
    }
  },
  {
    "id": 2,
    "label": "string",
    "comment": "string",
    "nb_beneficiaries": 5,
    "list_type": {
     "id": 1,
     "name":"Suppliers",
     "label":"Fournisseurs"
    }
  },
  {
    "id": 3,
    "label": "string",
    "comment": "string",
    "nb_beneficiaries": 3,
    "list_type": {
      "id": null,
      "name":"custom",
      "label":"custom"
    }
  },
  {...}
]

Responses

Status Code 200 OK

Array of Beneficiary List

Name Type Description
id integer BeneficiaryList ID
label string Label of the list
comment string Comment about the list
nb_beneficiaries integer Number of beneficiaries
list_type BeneficiaryListType Type of list
list_type.id integer Type of list
list_type.name string Name of the type
list_type.label string Name of the type translated (Only for default types)

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
500 Internal Server Error Unknown error ServerErrorHttpException

Create a beneficiary list

Code samples

curl -X POST https://api.bwf.staging.manager.one/beneficiary-lists \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Create a beneficiary list

Request

POST /beneficiary-lists

Body parameter

{
  "label": "string",
  "list_type": {
    "name": "string"
  }, 
  "comment": "string"
}

Parameters

Parameter In Type Required Description
label body string true Label of the list
list_type_id body string false ID of the type of list, if it already exists
list_type body BeneficiaryListType false List Type, if it does not exist or does not have an id
list_type.name body string false Name of the type of list
comment body string false Comment about the list

Example response

201 Response

{
  "id": 5,
  "label": "Developer",
  "comment": null,
  "nb_beneficiaries": 0,
  "list_type": {
    "id": null,
    "name": "freelance",
    "label": "freelance"
  }
}

Responses

Status Code 201 CREATED

Name Type Description
id integer BeneficiaryList ID
label string Label of the list
comment string Comment about the list
nb_beneficiaries integer Number of beneficiaries
list_type BeneficiaryListType Type of list
list_type.id integer Type of list
list_type.name string Name of the type
list_type.label string Name of the type translated (Only for default types)

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error ServerErrorHttpException

View a beneficiary list

Code samples

curl -X GET https://api.bwf.staging.manager.one/beneficiary-lists/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

View a beneficiary list

Request

GET /beneficiary-lists/{id}

Parameters

Parameter In Type Required Description
id path integer(int32) true The beneficiary list ID
expand query array[string] false List of other fields to return

Enumerated Values

Parameter Value
expand beneficiaries

Example response

200 Response

{
  "id": 5,
  "label": "Developer",
  "comment": null,
  "nb_beneficiaries": 0,
  "list_type": {
    "id": null,
    "name": "freelance",
    "label": "freelance"
  }
}

Responses

Status Code 200 OK

Name Type Description
id integer BeneficiaryList ID
label string Label of the list
comment string Comment about the list
nb_beneficiaries integer Number of beneficiaries
list_type BeneficiaryListType Type of list
list_type.id integer Type of list
list_type.name string Name of the type
list_type.label string Name of the type translated (Only for default types)

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
404 Not Found The beneficiary list doesn't exist NotFoundHttpException
500 Internal Server Error Unknown error ServerErrorHttpException

Update a beneficiary list

Code samples

curl -X PUT https://api.bwf.staging.manager.one/beneficiary-lists/{id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Update a beneficiary list

Request

PUT /beneficiary-lists/{id}

Body parameter

{
  "label": "string",
  "list_type": {
    "name": "string"
  }, 
  "comment": "string"
}

Parameters

Parameter In Type Required Description
label body string true Label of the list
list_type_id body string false ID of the type of list, if it already exists
list_type body BeneficiaryListType false List Type, if it does not exist or does not have an id
list_type.name body string false Name of the type of list
comment body string false Comment about the list

Example response

200 Response

{
  "id": 5,
  "label": "Developer",
  "comment": null,
  "nb_beneficiaries": 0,
  "list_type": {
    "id": null,
    "name": "freelance",
    "label": "freelance"
  }
}

Responses

Status Code 200 OK

Name Type Description
id integer BeneficiaryList ID
label string Label of the list
comment string Comment about the list
nb_beneficiaries integer Number of beneficiaries
list_type BeneficiaryListType Type of list
list_type.id integer Type of list
list_type.name string Name of the type
list_type.label string Name of the type translated (Only for default types)

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
404 Not Found The beneficiary list doesn't exist NotFoundHttpException
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error ServerErrorHttpException

Delete a beneficiary list

Code samples

curl -X DELETE https://api.bwf.staging.manager.one/beneficiary-lists/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Delete a beneficiary list

Request

DELETE /beneficiary-lists/{id}

Parameters

Parameter In Type Required Description
id path integer(int32) true The beneficiary list ID

Example response

204 Response

Responses

Status Code 204 No Content

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
404 Not Found The beneficiary list doesn't exist NotFoundHttpException
500 Internal Server Error Unknown error when deleting the beneficiary list ServerErrorHttpException

Periodic Transfer

List of periodic transfers

Code samples

curl -X GET https://api.bwf.staging.manager.one/periodic-transfers \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Get list of periodic transfers

Request

GET /periodic-transfers

Parameters

Parameter In Type Required Description
search query string false Text to search
status query string false Status
from query string(date) false From date (eq: 2017-01-01)
to query string(date) false To date (eq: 2017-01-31)
min query number(double) false The minimum amount to looking for
max query number(double) false The maximum amount to looking for

Example response

200 Response

[
  {
    "id": 1,
    "uuid": "string",
    "created_at": 123456789,
    "updated_at": 123456789,
    "type": "periodic",
    "amount": 123,
    "currency": {
      "iso": "EUR",
      "label": "Euro",
      "flag_url": "https://static.bwf/flags/currency/EUR.png",
      "fraction_digits": 2
    },
    "label": "G Suite",
    "comment": null,
    "start_date": "2018-01-01",
    "end_date": "2018-12-31",
    "beneficiary": {
      "id": 1,
      "iban": "FR7630001007941234567890185",
      "label": "John",
      "bic": "SOGEFRPPXXX",
      "updatable": true,
      "social_security_number": "1500789151856",
      "short_tag": null,
      "account_number_formatted": "FR76 3000 1007 9412 3456 1890 185",
      "is_sepa": true,
      "phone_number": null,
      "email": "john@banquewormser.com",
      "comment": null,
      "address": {
        "street": "8, boulevard Charpentier",
        "zip": "71800",
        "city": "ST GERMAIN EN BRIONNAIS",
        "country": "FR",
        "building_number": "8",
        "building_number_index": null,
        "street_name": "Charpentier",
        "street_type": "boulevard"
      },
      "bank_data": {
        "bic": "BDFEFRPPCCT",
        "bank": "BANQUE DE FRANCE",
        "street": "",
        "zip": "",
        "city": "",
        "country": "FRANCE",
        "country_iso": "FR",
        "sepa": true
      },
      "rib": null
    },
    "user": null,
    "reference": "string",
    "o_auth_service": {
      "name": "test_service"
    },
    "status": "active",
    "status_label": "Actif",
    "statusLabel": "Actif",
    "period": "weekly",
    "send_notification": true,
    "updatable": true,
    "cancellable": true
  },
  {
    ...
  }
]

Response

Status Code 200 OK

List of periodic transfers

Name Type Description
id integer Permanent transfer id
uuid uuid Permanent transfer uuid
created_at integer Creation date
updated_at integer Date of update
type string Permanent transfer type
amount number(double) Amount value
currency Currency Currency
label string comment or reference
comment string Comment on the transfer
start_date string Date of update
end_date string Date of update
enabled boolean Current status
beneficiary Beneficiary Beneficiary of the transfer
user null User who created the transfer
reference string Reference of the transfer
o_auth_service OAuthService Service who create the service
o_auth_service.name string name of the service
status string State of the transfer
status_label string State of the transfer translated
period string Period of the transfer
send_notification boolean Send a notification to the beneficiary
updatable boolean Either periodic transfer is updatable or not
cancellable boolean Either periodic transfer is cancellable or not

Enumerated Values

Property Value Description
type periodic Periodic transfer
status active Transfer is enabled
status suspended Transfer has been suspended
period weekly Weekly Transfer
period monthly Monthly Transfer
period quarterly Quarterly Transfer
period biannual Biannual Transfer
period annual Annual Transfer

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
500 Internal Server Error Unknown error ServerErrorHttpException

Create a periodic transfer

Code samples

curl -X POST https://api.bwf.staging.manager.one/periodic-transfers \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Create a periodic transfer

Request

POST /periodic-transfers

Body parameter

{
  "amount": 100.54,
  "currency": "EUR",
  "label": "transfer label",
  "comment": "transfer comment",
  "beneficiary_id": 1,
  "start_date": "2018-01-01",
  "end_date": "2018-12-31",
  "period": "weekly",
  "send_notification": "true"
}

Parameters

Parameter In Type Required Description
amount body number(double) true Amount of the transfer
currency body string true EUR/USD etc..
label body string false Transfer label
comment body string false Comment or reference
beneficiary_id body integer true ID of beneficiary
start_date body ISO date/time true Date of the first transfer
end_date body ISO date/time true ID of beneficiary
period body string true Period of the transfer
send_notification body boolean false Send a notification to the beneficiary

Enumerated Values

Property Value Description
currency EUR Euro
currency USD Dollar
currency GBP Pound
period weekly Weekly Transfer
period monthly Monthly Transfer
period quarterly Quarterly Transfer
period biannual Biannual Transfer
period annual Annual Transfer

Example response

200 Response

{
  "id": 1,
  "uuid": "string",
  "created_at": 123456789,
  "updated_at": 123456789,
  "type": "periodic",
  "amount": 100.54,
  "currency": {
    "iso": "EUR",
    "label": "Euro",
    "flag_url": "https://static.bwf/flags/currency/EUR.png",
    "fraction_digits": 2
  },
  "label": "transfer label",
  "comment": "transfer comment",
  "start_date": "2018-01-01",
  "end_date": "2018-12-31",
  "beneficiary": {
    "id": 1,
    "iban": "FR7630001007941234567890185",
    "label": "John",
    "bic": "SOGEFRPPXXX",
    "updatable": true,
    "social_security_number": "1500789151856",
    "short_tag": null,
    "account_number_formatted": "FR76 3000 1007 9412 3456 1890 185",
    "is_sepa": true,
    "phone_number": null,
    "email": "john@banquewormser.com",
    "comment": null,
    "address": {
      "street": "8, boulevard Charpentier",
      "zip": "71800",
      "city": "ST GERMAIN EN BRIONNAIS",
      "country": "FR",
      "building_number": "8",
      "building_number_index": null,
      "street_name": "Charpentier",
      "street_type": "boulevard"
    },
    "bank_data": {
      "bic": "BDFEFRPPCCT",
      "bank": "BANQUE DE FRANCE",
      "street": "",
      "zip": "",
      "city": "",
      "country": "FRANCE",
      "country_iso": "FR",
      "sepa": true
    },
    "rib": null
  },
  "user": null,
  "reference": "string",
  "o_auth_service": {
    "name": "test_service"
  },
  "status": "active",
  "status_label": "Actif",
  "statusLabel": "Actif",
  "period": "weekly",
  "send_notification": true,
  "updatable": true,
  "cancellable": true
}

Responses

Status Code 200 OK

Periodic transfer

Name Type Description
id integer Permanent transfer id
uuid uuid Permanent transfer uuid
created_at integer Creation date
updated_at integer Date of update
type string Permanent transfer type
amount number(double) Amount value
currency Currency Currency
label string comment or reference
comment string Comment on the transfer
start_date string Date of update
end_date string Date of update
enabled boolean Current status
beneficiary Beneficiary Beneficiary of the transfer
user null User who created the transfer
reference string Reference of the transfer
o_auth_service OAuthService Service who create the service
o_auth_service.name string name of the service
status string State of the transfer
status_label string State of the transfer translated
period string Period of the transfer
send_notification boolean Send a notification to the beneficiary
updatable boolean Either periodic transfer is updatable or not
cancellable boolean Either periodic transfer is cancellable or not

Enumerated Values

Property Value Description
type periodic Periodic transfer
status active Transfer is enabled
status suspended Transfer has been suspended
period weekly Weekly Transfer
period monthly Monthly Transfer
period quarterly Quarterly Transfer
period biannual Biannual Transfer
period annual Annual Transfer

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error ServerErrorHttpException

Get a periodic transfer

Code samples

curl -X GET https://api.bwf.staging.manager.one/periodic-transfers/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Return a specific user periodic transfer

Request

GET /periodic-transfers/{id}

Parameters

Parameter In Type Required Description
id path integer(int32) true The periodic transfer ID

Example response

200 Response

{
  "id": 1,
  "uuid": "string",
  "created_at": 123456789,
  "updated_at": 123456789,
  "type": "periodic",
  "amount": 100.54,
  "currency": {
    "iso": "EUR",
    "label": "Euro",
    "flag_url": "https://static.bwf/flags/currency/EUR.png",
    "fraction_digits": 2
  },
  "label": "transfer label",
  "comment": "transfer comment",
  "start_date": "2018-01-01",
  "end_date": "2018-12-31",
  "beneficiary": {
    "id": 1,
    "iban": "FR7630001007941234567890185",
    "label": "John",
    "bic": "SOGEFRPPXXX",
    "updatable": true,
    "social_security_number": "1500789151856",
    "short_tag": null,
    "account_number_formatted": "FR76 3000 1007 9412 3456 1890 185",
    "is_sepa": true,
    "phone_number": null,
    "email": "john@banquewormser.com",
    "comment": null,
    "address": {
      "street": "8, boulevard Charpentier",
      "zip": "71800",
      "city": "ST GERMAIN EN BRIONNAIS",
      "country": "FR",
      "building_number": "8",
      "building_number_index": null,
      "street_name": "Charpentier",
      "street_type": "boulevard"
    },
    "bank_data": {
      "bic": "BDFEFRPPCCT",
      "bank": "BANQUE DE FRANCE",
      "street": "",
      "zip": "",
      "city": "",
      "country": "FRANCE",
      "country_iso": "FR",
      "sepa": true
    },
    "rib": null
  },
  "user": null,
  "reference": "string",
  "o_auth_service": {
    "name": "test_service"
  },
  "status": "active",
  "status_label": "Actif",
  "statusLabel": "Actif",
  "period": "weekly",
  "send_notification": true,
  "updatable": true,
  "cancellable": true
}

Responses

Status Code 200 OK

Periodic transfer

Name Type Description
id integer Permanent transfer id
uuid uuid Permanent transfer uuid
created_at integer Creation date
updated_at integer Date of update
type string Permanent transfer type
amount number(double) Amount value
currency Currency Currency
label string comment or reference
comment string Comment on the transfer
start_date string Date of update
end_date string Date of update
enabled boolean Current status
beneficiary Beneficiary Beneficiary of the transfer
user null User who created the transfer
reference string Reference of the transfer
o_auth_service OAuthService Service who create the service
o_auth_service.name string name of the service
status string State of the transfer
status_label string State of the transfer translated
period string Period of the transfer
send_notification boolean Send a notification to the beneficiary
updatable boolean Either periodic transfer is updatable or not
cancellable boolean Either periodic transfer is cancellable or not

Enumerated Values

Property Value Description
type periodic Periodic transfer
status active Transfer is enabled
status suspended Transfer has been suspended
period weekly Weekly Transfer
period monthly Monthly Transfer
period quarterly Quarterly Transfer
period biannual Biannual Transfer
period annual Annual Transfer

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
500 Internal Server Error Unknown error ServerErrorHttpException

Delete a periodic transfer

Code samples

curl -X DELETE https://api.bwf.staging.manager.one/periodic-transfers/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Delete a periodic transfer

Request

DELETE /periodic-transfers/{id}

Parameters

Parameter In Type Required Description
id path integer(int32) true The transfer ID

Example response

204 Response

Responses

Status Code 204 No Content

Errors

Status Meaning Description Schema
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error ServerErrorHttpException

Webhook

A webhook is used to notify a third party application that an event has occurred.

In this case, our app sends a POST HTTP request to the URL that you specified.

If you wish to create a webhook, please contact us at support@banquewormser.com

A webhook workflow is divided into 4 steps:

  1. A notifiable event occurs in our system.

  2. We check if a webhook subscribed to this event exists for your service.

  3. We send a POST HTTP request, containing a webhook event, to your specific webhook URL

  4. We wait for OK response from your system

Signature Verification

Webhook request example

POST https://your-webhook-url

Content-Length: 425
User-agent: banquewormser.com
Date: Fri, 16 Apr 2021 13:23:24 GMT
Content-Type: application/json
Host: api-banquewormser.com
Digest: SHA-256=uhq/549YGIpWZcbTZFdWZKkhgQdMxxBR6bilxXBnuBs=
Signature: keyId="secret", algorithm="hmac-sha256", headers="content-length user-agent content-type host (request-target) date digest", signature="pkLgUJmM5FixErazNavlwWizmDZdTDBcMZb9xY3ZUv8="
{
  "event":"after_credit_card_operation",
  "event_uuid":"F29908D0-F329-45B1-9939-FA7FDE3CEE4A",
  "id":11,
  "created_at":1675958350,
  "executed_at":null,
  "value_date":"2023-02-10",
  "accounting_date":null,
  "status":"rejected",
  "amount":100,
  "currency":"EUR",
  "fx_amount":100,
  "fx_currency":"EUR",
  "fx_rate":1,
  "fx_fees":0,
  "credit_card_mcc":"6411",
  "type":"debit",
  "label":"AUTH, Paris, 75018, FRA",
  "account_id":"1D76A945-CC04-4688-AF0A-C6F5515485A6",
  "card_id":40,
  "user_uuid":"66F1B52D-458D-4558-9B3E-65FBBB21888F",
  "user_email":"buck.danny@banquewormser.com",
  "timeout":false,
  "parent_operation_id":null,
  "category":"credit_card",
  "detail":{
      "authorization":{
        "card_acceptor":{
          "address":null,
          "city":"Paris",
          "country_code":"FRA",
          "name":"AUTH",
          "postal_code":"75018"
        },
      "is_preauthorization":false,
      "pos_terminal_id":"194E7D82",
      "device":{
        "location":null
      },
      "reject_reason":{
        "value":"PAYMENT_LIMIT_EXCEED",
        "label":"Le plafond de paiement mensuel de votre carte est d\\u00e9pass\\u00e9."
      }
    }
  }
}

To secure communications between the two systems, we use HTTP signature (draft) combined with Keyed-Hashing for Message Authentication mechanism (HMAC-SHA256).

You need to verify the signature in order to validate the integrity of the message (Verifying a signature).

HMAC signature algorithm is a message authentication code obtained by running a cryptographic hash function (SHA256 in our case) over the data and a shared secret key.

Card operation events

We support two types of card operation events :

After card operation

Event name : after_credit_card_operation

Just after a card transaction, a card operation is created and this event is triggered.

In the payment ecosystem this is called an authorization.

This operation is temporary, which means it can be updated or cancelled.

Clear card operation

Event name : clear_credit_card_operation

This is the process of finalizing an operation, when the merchant capture the funds.

In the payment ecosystem this is called a clearing.

This event is triggered when :


Most payments follow this process, the operation is created with an authorization and then a clearing updates the operation, but depending upon the payment method issuer, the fund requests can occur in a single event. In this case only the clear_credit_card_operation is triggered.

Card operation event object

Webhook request example

POST https://your-webhook-url

Content-Length: 425
User-agent: banquewormser.com
Date: Fri, 16 Apr 2021 13:23:24 GMT
Content-Type: application/json
Host: api-banquewormser.com
Digest: SHA-256=uhq/549YGIpWZcbTZFdWZKkhgQdMxxBR6bilxXBnuBs=
Signature: keyId="secret", algorithm="hmac-sha256", headers="content-length user-agent content-type host (request-target) date digest", signature="pkLgUJmM5FixErazNavlwWizmDZdTDBcMZb9xY3ZUv8="
{
  "event":"after_credit_card_operation",
  "event_uuid":"F29908D0-F329-45B1-9939-FA7FDE3CEE4A",
  "id":11,
  "created_at":1675958350,
  "executed_at":null,
  "value_date":"2023-02-10",
  "accounting_date":null,
  "status":"rejected",
  "amount":100,
  "currency":"EUR",
  "fx_amount":100,
  "fx_currency":"EUR",
  "fx_rate":1,
  "fx_fees":0,
  "credit_card_mcc":"6411",
  "type":"debit",
  "label":"AUTH, Paris, 75018, FRA",
  "account_id":"1D76A945-CC04-4688-AF0A-C6F5515485A6",
  "card_id":40,
  "user_uuid":"66F1B52D-458D-4558-9B3E-65FBBB21888F",
  "user_email":"buck.danny@banquewormser.com",
  "timeout":false,
  "parent_operation_id":null,
  "category":"credit_card",
  "detail":{
      "authorization":{
        "card_acceptor":{
          "address":null,
          "city":"Paris",
          "country_code":"FRA",
          "name":"AUTH",
          "postal_code":"75018"
        },
      "is_preauthorization":false,
      "pos_terminal_id":"194E7D82",
      "device":{
        "location":null
      },
      "reject_reason":{
        "value":"PAYMENT_LIMIT_EXCEED",
        "label":"Le plafond de paiement mensuel de votre carte est d\\u00e9pass\\u00e9."
      }
    }
  }
}

This is the object sent by our system when a card operation event occurs.

Parameter {card_id} is deprecated, use the parameter {card_uuid} instead.

All the events linked to an operation can be retrieved by calling operation endpoints.

Name Type Description
event string Card operation event name
event_uuid uuid Event uuid
id integer Operation id
created_at integer Operation creation date
executed_at integer Operation update date
status string Operation status
amount integer Operation amount
currency string Operation currency (account curreny)
fx_amount float Operation original amount
fx_currency string Operation original currency
fx_rate float Operation conversion rate
fx_fees float Operation fees
credit_card_mcc string Operation card mcc
type string Operation type
label string Operation label
card_id deprecated integer Card id
card_uuid string Unique identifier of the card
account_id uuid Operation account uuid
user_email string Operation user email
parent_operation_id integer Parent operation id
detail OperationDetail Details of the operation
detail.cancellation_reason string Only if the operation status is cancelled, indicates the cancellation reason of the operation.
detail.authorization Authorization Informations about authorization event
detail.authorization.reject_reason RejectReason Reason for rejection of a card transaction
timeout boolean Indicates if the authorization has timeout

Card operation event name

Property Value Description
event after_credit_card_operation Card operation authorization event
event clear_credit_card_operation Card operation clearing event

Operation document events

Operation documents are documents attached by a user or a service on an operation to justify the expense.
Be aware that if someone replaces the file of an operation document, it doesn't update the document. The previous operation document will be deleted and a new one will be created. Therefore, you will receive two webhooks events, an operation document deleted and an operation document uploaded event.

We support 3 types of operation document events :

Operation document uploaded

Event name : operation_document_uploaded

This event is triggered just after a document upload by a user or a service.

Operation document updated

Event name : operation_document_updated

This event is triggered just after a document update by a user or a service. Operation document update can be either an update of the document name, score but also validation or invalidation of the document justifying the expense.

Operation document deleted

Event name : operation_document_deleted

This event is triggered just after a document is deleted by a user or a service.

Operation document event object

Webhook request example

POST https://your-webhook-url

Content-Length: 425
User-agent: banquewormser.com
Date: Fri, 16 Apr 2021 13:23:24 GMT
Content-Type: application/json
Host: api-banquewormser.com
Digest: SHA-256=uhq/549YGIpWZcbTZFdWZKkhgQdMxxBR6bilxXBnuBs=
Signature: keyId="secret", algorithm="hmac-sha256", headers="content-length user-agent content-type host (request-target) date digest", signature="pkLgUJmM5FixErazNavlwWizmDZdTDBcMZb9xY3ZUv8="
{
  "event":"operation_document_uploaded",
  "event_uuid":"1650DECD-9F72-4873-AB39-01939C820F41",
  "operation_document":{
    "id":6,
    "updated_at":1650984823,
    "name":"justificatif.pdf",
    "filename":"justificatif.pdf",
    "mime_type":"application/pdf",
    "size":34390,
    "url":"https://api.bwf.staging.manager.one/operations/CAA974F3-FB15-4847-AE0A-BB62D43F651A/documents/6",
    "score":null,
    "valid":false,
    "user": {
      "uuid":"E118EF5B-7B0F-43FF-B5FB-8F470F879AC2",
      "gender_label":"Monsieur",
      "first_name":"Jerome",
      "last_name":"Lelouche",
      "email":"jerome.lelouhe@banquewormser.com",
      "phone":"+33623456789",
      "partner_id":null
    },
    "operation_id":3,
    "account_id":"a81fda14-9475-484a-b7a8-7b3ec24e0470"
  }
}

This is the object sent by our system when a document of an operation is created, updated or deleted.

Name Type Description
event string Operation document event name
event_uuid uuid Event uuid
operation_document OperationDocumentWebhook Object Operation document webhook object

Operation document webhook object

Name Type Description
id integer Id
updated_at integer Update date
name string Name
filename string Filename
mime_type string Mime type
size integer Size
url string Download url
score integer Score
valid boolean Validity
user User Object The user who last modified the document
operation_id integer Operation Id to which the document is attached
account_id uuid Account Id to which the document is attached

Operation document event name

Property Value Description
event operation_document_uploaded Operation document upload event
event operation_document_updated Operation document update event
event operation_document_deleted Operation document delete event

Incoming transfer event

Whenever we are receiving an incoming bank transfer, we will be firing a webhook event.
Be aware that this event will only be fired when we are getting confirmation that the transfer actually happened.

Webhook request example

POST https://your-webhook-url

Content-Length: 425
User-agent: banquewormser.com
Date: Fri, 16 Apr 2021 13:23:24 GMT
Content-Type: application/json
Host: api-banquewormser.com
Digest: SHA-256=uhq/549YGIpWZcbTZFdWZKkhgQdMxxBR6bilxXBnuBs=
Signature: keyId="secret", algorithm="hmac-sha256", headers="content-length user-agent content-type host (request-target) date digest", signature="pkLgUJmM5FixErazNavlwWizmDZdTDBcMZb9xY3ZUv8="
{
   "id":36,
   "created_at":1652173602,
   "executed_at":1652173602,
   "value_date":"2022-05-10",
   "accounting_date":"2022-05-10",
   "mid":null,
   "status":"done",
   "label":"Operation fees",
   "type":"debit",
   "category":"fees",
   "category_label":"Frais Bancaires",
   "afb_code":33,
   "amount":0.01,
   "currency":"EUR",
   "employee_number":null,
   "beneficiary":null,
   "comment":null,
   "documents":[
      {
         "id":10,
         "updated_at":1275429716,
         "name":"avatar",
         "filename":"avatar",
         "mime_type":"image/png",
         "size":null,
         "url":"http://api.bwf.staging.manager.one/operations/92A3F34C-4FF5-4F2F-BF2C-A9F3FDF2FD8F/documents/10",
         "score":null,
         "valid":false,
         "user":null
      }
   ],
   "bill":{
      "id":61,
      "url":"http://api.bwf.staging.manager.one/operations/36/bill",
      "created_at":1652177349,
      "updated_at":1652177349,
      "name":"Facture .pdf",
      "filename":"Facture .pdf",
      "mime_type":"text/plain",
      "size":1220
   },
   "detail":{
      "vat":{
         "amount":null,
         "rate":null
      },
      "categories":[

      ],
      "guest":null,
      "nights":null,
      "service":null,
      "charge_back":null,
      "fuel":{
         "value":null,
         "label":"Inconnu"
      },
      "liters":null,
      "mileage":null,
      "half_board_included":null,
      "authorization":{
         "card_acceptor":{
            "address":null,
            "city":null,
            "country_code":null,
            "name":null,
            "postal_code":null
         },
         "is_preauthorization":null,
         "pos_terminal_id":null
      },
      "metadata":null
   },
   "restaurant":false,
   "affectations":[

   ],
   "attributions":[

   ],
   "card":{
      "id":1,
      "reference":null,
      "label":null,
      "first_name":"Test",
      "last_name":"User",
      "last_digits":"1234",
      "user":{
         "uuid":"00000000-0000-1000-0000-000000000001",
         "gender":1,
         "gender_label":"Monsieur",
         "first_name":"Test",
         "last_name":"User",
         "email":"test@user.com",
         "phone":"+33123456789"
      }
   },
   "transaction_identifier":null,
   "timeout":false
}
Name Type Description
event string Incoming transfer event name
event_uuid uuid Event uuid
incoming_bank_operation Operation Object Incoming transfer webhook object

Incoming transfer webhook object

See Operation object.

Incoming Transfer event name

Property Value Description
event transfer_operation Incoming bank transfer event

Resources

Marital status

Marital status
Célibataire
Marié(e)
Concubinage
Pacsé(e)
Séparé(e)
Divorcé(e)
Veuf(ve)
Non communiqué


Rib object

Rib object

{
  "iban": "FR1420041010050500013M02606",
  "bic": "SOGEFRPP",
  "bank": "20041",
  "branch": "01005",
  "number": "0500013M026",
  "checksum": "06",
  "establishment": "Wormser Frères Haussmann",
  "pdf_url": "http://api.bwf.staging.manager.one//accounts/rib"
}
Field Type Description
iban string IBAN of the rib
bic string Bic code
bank string Bank Code
branch string Sort Code
number string Account number
checksum string RIB Key
establishment string Bank name
pdf_url string Url to download the RIB

Currency object

Currency object

{
  "iso": "EUR",
  "label": "Euro",
  "flag_url": "https://static.banquewormser.com/flags/currency/EUR.png",
  "fraction_digits": 2
}
Field Type Description
currency.iso string Currency iso label
currency.label string Currency label
currency.flag_url string Currency flag url
currency.fraction_digits integer Currency fraction digit

Access object

Access object

{
  "owner": true,
  "credits": false,
  "accounting": false,
  "approver": false,
  "employee_number": null,
  "role": null,
  "role_label": null,
  "beneficiary": null,
  "status": "active",
  "status_label": "Actif",
  "card_holder": false,
  "transfers": true,
  "dashboard": true,
  "debits": true,
  "operations": true,
  "statements": true,
  "checkbook_order": true
}
Name Type Description
access_transfers
boolean Access to transfers
card_client_access_token
boolean Access to PAN and CVV of virtual card
card_wallet
boolean Access to Apple Pay and Google Pay
create_users
boolean Access to user creation
duplicate
boolean Access to account and company duplication
physical_cards
boolean Access to physical cards
read_operations
boolean Access to read operations
read_statements
boolean Access to read statements
read_users
boolean Access to read users
virtual_cards
boolean Access to virtual cards
virtual_card_generation
boolean Access to virtual card generation
write_beneficiary
boolean Access to update and create beneficiaries
write_doc_operation
boolean Access to upload and edit operation documents
write_sepa_direct_debit
boolean Access to sepa direct debit creation
write_operation
boolean Access to edit operation

Job title

Title Label French label
DGE Director-General Directeur général
DIR Director Directeur
GER Managing director Gérant
MDJ Legal Representative Mandataire judiciaire
PRE President Président
RCT Representative of local authorities Représentant de collectivité territoriale
NON Corporate officer Non mandataire
ZAU Other Autre


Code Label Abbreviation
1100 Auto-Entrepreneur AE
5498 Entreprise unipersonnelle à responsabilité limitée EURL
1000 Entreprise individuelle à responsabilité limitée (01.01.2010) EIRL
5410 Société à responsabilité limitée SARL
5510 Société anonyme SA
5710 Société par actions simplifiée SAS
5720 Société par actions simplifiée unipersonnelle SASU
5785 Société d'exercice libéral SEL
6540 Société civile immobilièrer SCI
9220 Association AS
1000 Entreprise individuelle EI
6598 Entreprise agricole à responsabilité limitée EARL
6533 Groupement agricole d'exploitation en commun GAEC
6210 Groupement européen d'intérêt économique GEIE
6220 Groupement d'intérêt économique GIE
6599 Société civile SC
5308 Société en commandite par actions SCA
5460 Autre SARL coopérative COOP
6589 Société civile de moyens SCM
5458 Société coopérative ouvrière de production SCOP
6585 Société civile professionnelle SCP
5306 Société en commandite simple SCS
5585 Société d'exercice libéral à forme anonyme SELAFA
5485 Société d'exercice libéral à responsabilité limitée SELARL
5785 Société d'exercice libéral par actions simplifiée SELAS
5385 Société d'exercice libéral en commandite par actions SELCA
0 Société d'économie mixte SEM
0 Société d'économie mixte locale SEML
2310 Société en participation SEP
5632 Société d'intérêt collectif agricole SICA
5202 Société en nom collectif SNC
3120 Société commerciale étrangère immatriculée au RCS PMDEIRCS
3220 Société étrangère non immatriculée au RCS PMDENRCS

Country codes

Country Alpha-2 code
Afghanistan AF
Albania AL
Algeria DZ
American Samoa AS
Andorra AD
Angola AO
Anguilla AI
Antarctica AQ
Antigua and Barbuda AG
Argentina AR
Armenia AM
Aruba AW
Australia AU
Austria AT
Azerbaijan AZ
Bahamas (the) BS
Bahrain BH
Bangladesh BD
Barbados BB
Belarus BY
Belgium BE
Belize BZ
Benin BJ
Bermuda BM
Bhutan BT
Bolivia (Plurinational State of) BO
Bonaire, Sint Eustatius and Saba BQ
Bosnia and Herzegovina BA
Botswana BW
Bouvet Island BV
Brazil BR
British Indian Ocean Territory (the) IO
Brunei Darussalam BN
Bulgaria BG
Burkina Faso BF
Burundi BI
Cabo Verde CV
Cambodia KH
Cameroon CM
Canada CA
Cayman Islands (the) KY
Central African Republic (the) CF
Chad TD
Chile CL
China CN
Christmas Island CX
Cocos (Keeling) Islands (the) CC
Colombia CO
Comoros (the) KM
Congo (the Democratic Republic of the) CD
Congo (the) CG
Cook Islands (the) CK
Costa Rica CR
Croatia HR
Cuba CU
Curaçao CW
Cyprus CY
Czechia CZ
Côte d'Ivoire CI
Denmark DK
Djibouti DJ
Dominica DM
Dominican Republic (the) DO
Ecuador EC
Egypt EG
El Salvador SV
Equatorial Guinea GQ
Eritrea ER
Estonia EE
Eswatini SZ
Ethiopia ET
Falkland Islands (the) [Malvinas] FK
Faroe Islands (the) FO
Fiji FJ
Finland FI
France FR
French Guiana GF
French Polynesia PF
French Southern Territories (the) TF
Gabon GA
Gambia (the) GM
Georgia GE
Germany DE
Ghana GH
Gibraltar GI
Greece GR
Greenland GL
Grenada GD
Guadeloupe GP
Guam GU
Guatemala GT
Guernsey GG
Guinea GN
Guinea-Bissau GW
Guyana GY
Haiti HT
Heard Island and McDonald Islands HM
Holy See (the) VA
Honduras HN
Hong Kong HK
Hungary HU
Iceland IS
India IN
Indonesia ID
Iran (Islamic Republic of) IR
Iraq IQ
Ireland IE
Isle of Man IM
Israel IL
Italy IT
Jamaica JM
Japan JP
Jersey JE
Jordan JO
Kazakhstan KZ
Kenya KE
Kiribati KI
Korea (the Democratic People's Republic of) KP
Korea (the Republic of) KR
Kuwait KW
Kyrgyzstan KG
Lao People's Democratic Republic (the) LA
Latvia LV
Lebanon LB
Lesotho LS
Liberia LR
Libya LY
Liechtenstein LI
Lithuania LT
Luxembourg LU
Macao MO
Madagascar MG
Malawi MW
Malaysia MY
Maldives MV
Mali ML
Malta MT
Marshall Islands (the) MH
Martinique MQ
Mauritania MR
Mauritius MU
Mayotte YT
Mexico MX
Micronesia (Federated States of) FM
Moldova (the Republic of) MD
Monaco MC
Mongolia MN
Montenegro ME
Montserrat MS
Morocco MA
Mozambique MZ
Myanmar MM
Namibia NA
Nauru NR
Nepal NP
Netherlands (the) NL
New Caledonia NC
New Zealand NZ
Nicaragua NI
Niger (the) NE
Nigeria NG
Niue NU
Norfolk Island NF
Northern Mariana Islands (the) MP
Norway NO
Oman OM
Pakistan PK
Palau PW
Palestine, State of PS
Panama PA
Papua New Guinea PG
Paraguay PY
Peru PE
Philippines (the) PH
Pitcairn PN
Poland PL
Portugal PT
Puerto Rico PR
Qatar QA
Republic of North Macedonia MK
Romania RO
Russian Federation (the) RU
Rwanda RW
Réunion RE
Saint Barthélemy BL
Saint Helena, Ascension and Tristan da Cunha SH
Saint Kitts and Nevis KN
Saint Lucia LC
Saint Martin (French part) MF
Saint Pierre and Miquelon PM
Saint Vincent and the Grenadines VC
Samoa WS
San Marino SM
Sao Tome and Principe ST
Saudi Arabia SA
Senegal SN
Serbia RS
Seychelles SC
Sierra Leone SL
Singapore SG
Sint Maarten (Dutch part) SX
Slovakia SK
Slovenia SI
Solomon Islands SB
Somalia SO
South Africa ZA
South Georgia and the South Sandwich Islands GS
South Sudan SS
Spain ES
Sri Lanka LK
Sudan (the) SD
Suriname SR
Svalbard and Jan Mayen SJ
Sweden SE
Switzerland CH
Syrian Arab Republic SY
Taiwan (Province of China) TW
Tajikistan TJ
Tanzania, United Republic of TZ
Thailand TH
Timor-Leste TL
Togo TG
Tokelau TK
Tonga TO
Trinidad and Tobago TT
Tunisia TN
Turkey TR
Turkmenistan TM
Turks and Caicos Islands (the) TC
Tuvalu TV
Uganda UG
Ukraine UA
United Arab Emirates (the) AE
United Kingdom of Great Britain and Northern Ireland (the) GB
United States Minor Outlying Islands (the) UM
United States of America (the) US
Uruguay UY
Uzbekistan UZ
Vanuatu VU
Venezuela (Bolivarian Republic of) VE
Viet Nam VN
Virgin Islands (British) VG
Virgin Islands (U.S.) VI
Wallis and Futuna WF
Western Sahara EH
Yemen YE
Zambia ZM
Zimbabwe ZW
Åland Islands AX

Operation reject reason values

Operation reject reason values
ACCOUNT_NOT_FOUND
ACCOUNT_NOT_VALID_OR_BLOCKED
ACCOUNT_WITHDRAWAL_LIMIT_EXCEED
ATM_DISABLED
CARD_EXPIRED
CARD_NOT_ACTIVATED
CARD_SECURITY_CODE_INVALID
CARD_SUSPENDED
CARD_TERMINATED
COUNTRY_BLOCKED
CREDIT_CARD_LOCKED
CREDIT_CARD_LOCKED_PROOF
CREDIT_CARD_NOT_FOUND
CREDIT_CARD_NOT_SUFFICIENT_FUNDS
CREDIT_CARD_NOT_VALID
CURRENCY_DIFFERENT_FROM_ACCOUNT
CVV_ATTEMPT_EXCEEDED
CVV_INCORRECT
DUPLICATED_ENTRY
ECOMMERCE_DISABLED
EXPIRATION_MISMATCH
FOREIGN_CURRENCY_NOT_ALLOWED
FRAUD_DETECTION
KEYWORD_BLOCKED
MAG_STRIPE_DISABLE
MCC_NOT_ALLOWED
MERCHANT_NOT_AUTHORIZED
MID_NOT_ALLOWED
MOBILE_PAYMENT_DISABLED
NFC_CUMULATIVE_AMOUNT_EXCEEDED
NFC_DISABLE
NFC_TRX_AMOUNT_EXCEEDED
NFC_TRX_COUNT_EXCEEDED
NOT_SUFFICIENT_FUNDS
PAYMENT_LIMIT_EXCEED
PIN_INCORRECT
PIN_TRY_HARD
PUBLIC_HOLIDAY_BLOCKED
RANGE_NOT_AUTHORIZED
RANGE_NOT_ENABLED
SOFT_DECLINE
TRANSACTION_DATE_AFTER_END_DATE
TRANSACTION_LIMIT_EXCEED
UNKNOWN
WITHDRAWAL_LIMIT_EXCEED

Account accounted operation object

Accounted operation object

{
  "total-count": "1",
  "operations": [
    {
      "id": 37,
      "uuid": "912D40DB-0EB1-4B1B-B54C-1666B68B3419",
      "created_at": 1670930788,
      "executed_at": 1670930788,
      "value_date": "2022-12-13",
      "accounting_date": "2023-03-28",
      "expense_date": "2022-12-13",
      "label": "transfer",
      "type": "credit",
      "category": "refund",
      "category_label": "Remboursement",
      "sub_category": null,
      "amount": 43.21,
      "currency": "EUR"
    }
  ]
}

Testing

Test features are available only in staging environment to test differents behaviours of our application such as webhooks.

Simulate card operation

Code samples

curl -X POST https://api.bwf.staging.manager.one/simulate/operations/card
  -H 'Content-Type: application/json'
  -H 'Accept: application/json'
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Simulate a card operation

Request

POST /simulate/operations/card

Body parameter

{
  "card_id": 671,
  "type": "authorization",
  "amount": 11,
  "atm": false,
  "currency": "USD",
  "label": "Autorisation de paiement",
  "mcc": 6417,
  "mid": 234523452,
  "status": "pending"
}

Parameters

Parameter In Type Required Description
type Body String True Type of card operation
status Body String False Status of the card operation
card_id Body Integer True Card ID of the card operation
operation_id Body Integer False Used for clearing, reversal and expired transaction. Represent the ID of the authorization operation to be cleared or reverse
amount Body Number False Amount of the card operation
atm Body Boolean False If it is an atm operation
currency Body String False Currency of the card operation (code ISO 4217)
label Body String False Label of the card operation
mcc Body String False MCC of the card operation
mid Body Integer False MID of the card operation

Enumerated Values

Property Value Description
type authorization Funds hold due to card usage, temporary operation type which requires a clearing or reversal.
type clearing Final operation type which completes an authorization.
type refund Refunds a cardholder’s operation.
type reversal Reverses or drops an authorization.
type expired Cancel an operation for authorization expiration.
status pending Operation is waiting for clearing
status rejected Operation has been rejected
status cleared Operation has been cleared

Example response

201 Response

{
  "id": 8,
  "created_at": 1646323159,
  "executed_at": null,
  "value_date": "2022-03-03",
  "accounting_date": null,
  "mid": null,
  "status": "pending",
  "label": "Operation waiting for CBS confirmation",
  "type": "debit",
  "category": "credit_card",
  "category_label": "Carte bancaire",
  "afb_code": 11,
  "amount": 1,
  "currency": "EUR",
  "employee_number": null,
  "beneficiary": null,
  "comment": null,
  "documents": [],
  "bill": {
    "id": 57,
    "url": "http://app/api/simulate/operation/bill-send?id=8",
    "created_at": 1646324180,
    "updated_at": 1646324180,
    "name": "Facture .pdf",
    "filename": "Facture .pdf",
    "mime_type": "text/plain",
    "size": 1271
  },
  "detail": {
    "vat": {
      "amount": null,
      "rate": null
    },
    "categories": [],
    "guest": null,
    "nights": null,
    "service": null,
    "charge_back": null,
    "fuel": {
      "value": null,
      "label": "Inconnu"
    },
    "liters": null,
    "mileage": null,
    "half_board_included": null,
    "authorization": {
      "card_acceptor": {
        "address": null,
        "city": null,
        "country_code": null,
        "name": null,
        "postal_code": null
      },
      "is_preauthorization": null,
      "pos_terminal_id": null
    },
    "metadata": null
  },
  "restaurant": false,
  "affectations": [],
  "attributions": [],
  "card": {
    "id": 5,
    "reference": null,
    "label": null,
    "first_name": "Test",
    "last_name": "User",
    "last_digits": "1234",
    "user": {
      "uuid": "4F879631-87AD-4EC8-B70D-4792CE8E959C",
      "gender": 1,
      "gender_label": "Monsieur",
      "first_name": "Pirlouit",
      "last_name": "Lombard",
      "email": "pirlouit.lombard@banquewormser.com",
      "phone": "+33623456789"
    }
  },
  "transaction_identifier": null,
  "timeout": false
}

Responses

The operation

Operation object

Status Code 201 CREATED

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
404 Not Found Card not found NotFoundHttpException
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error ServerErrorHttpException

Simulate operation settlement

Code samples

curl -X POST https://api.bwf.staging.manager.one/simulate/operations/12/settlement
  -H 'Content-Type: application/json'
  -H 'Accept: application/json'
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Simulate an operation settlement

Request

POST /simulate/operations/{id}/settlement

Body parameter

{
  "accounting_at": 1631193607,
}

Parameters

Parameter In Type Required Description
accounting_at Body Integer False Operation settlement date

Example response

200 Response

{
  "id": 8,
  "created_at": 1646324250,
  "executed_at": 1646329778,
  "value_date": "2022-03-03",
  "accounting_date": "2022-03-03",
  "mid": null,
  "status": "done",
  "label": "Operation validated",
  "type": "debit",
  "category": "credit_card",
  "category_label": "Carte bancaire",
  "afb_code": 11,
  "amount": 1,
  "currency": "EUR",
  "employee_number": null,
  "beneficiary": null,
  "comment": null,
  "documents": [],
  "bill": {
    "id": 57,
    "url": "http://app/api/simulate/operation/bill-send?id=8",
    "created_at": 1646329783,
    "updated_at": 1646329784,
    "name": "Facture .pdf",
    "filename": "Facture .pdf",
    "mime_type": "text/plain",
    "size": 1271
  },
  "detail": {
    "vat": {
      "amount": null,
      "rate": null
    },
    "categories": [

    ],
    "guest": null,
    "nights": null,
    "service": null,
    "charge_back": null,
    "fuel": {
      "value": null,
      "label": "Inconnu"
    },
    "liters": null,
    "mileage": null,
    "half_board_included": null,
    "authorization": {
      "card_acceptor": {
        "address": null,
        "city": null,
        "country_code": null,
        "name": null,
        "postal_code": null
      },
      "is_preauthorization": null,
      "pos_terminal_id": null
    },
    "metadata": null
  },
  "restaurant": false,
  "affectations": [],
  "attributions": [],
  "card": {
    "id": 5,
    "reference": null,
    "label": null,
    "first_name": "Test",
    "last_name": "User",
    "last_digits": "1234",
    "user": {
      "uuid": "4F879631-87AD-4EC8-B70D-4792CE8E959C",
      "gender": 1,
      "gender_label": "Monsieur",
      "first_name": "Pirlouit",
      "last_name": "Lombard",
      "email": "pirlouit.lombard@banquewormser.com",
      "phone": "+33623456789"
    }
  },
  "transaction_identifier": null,
  "timeout": false
}

Responses

The operation

Status Code 200 OK

Operation object

Errors

Status Meaning Description Schema
403 Forbidden Not authorized ForbiddenHttpException
404 Not Found Operation not found NotFoundHttpException
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error ServerErrorHttpException

Simulate incoming transfers

Code samples

curl -X POST https://api.bwf.staging.manager.one/simulate/incoming-transfers
  -H 'Content-Type: application/json'
  -H 'Accept: application/json'
  -H 'Authorization:Bearer ACCESS_TOKEN'
  -H 'X-bwf-Account-ID: a81fda14-9475-484a-b7a8-7b3ec24e0470'

Simulate an incoming transfer

Request

POST /simulate/incoming-transfers

Body parameter

{
  "label": "Test virement entrant",
  "amount": 6.67,
  "debtorName": "Saga Corp",
  "debtorIban": "NL68ABNA3137597226",
  "debtorBankBic": "ABNANL2A"
}

Parameters

Parameter In Type Required Description
label body string true Incoming transfer label
amount body number false Amount of incoming transfer
debtorName body string false Name of debtor
debtorIban body string false IBAN number of debtor
debtorBankBic body string false Bank BIC of debtor

Example response

201 Response

{
  "label": "Test virement entrant",
  "amount": 6.67,
  "debtorName": "Saga Corp",
  "debtorIban": "NL68ABNA3137597226",
  "debtorBankBic": "ABNANL2A"
}

Responses

Status Code 201 Created

Parameter Type Description
label string Incoming transfer label
amount number Amount of incoming transfer
debtorName string Name of debtor
debtorIban string IBAN number of debtor
debtorBankBic string Bank BIC of debtor

Errors

Status Meaning Description Schema
404 Not Found The account doesn't exist NotFoundHttpException
422 Unprocessable Entity Validation error FieldsValidationErrors
500 Internal Server Error Unknown error ServerErrorHttpException

Changelog

2023

v.1.2.20 06/11/2023

v.1.2.19 31/10/2023

v.1.2.18 16/10/2023

v.1.2.17 25/09/2023

v.1.2.16 31/08/2023

v.1.2.15 30/08/2023

v.1.2.14 13/06/2023

v.1.2.13 05/05/2023

v.1.2.12 03/05/2023

v.1.2.11 - 24/04/2023

v.1.2.10 03/04/2023

v.1.2.9 - 08/02/2023

2022

v.1.2.8 - 19/10/2022

v.1.2.7 - 12/08/2022

v.1.2.6 - 20/05/2022

v.1.2.5 - 09/05/2022

v.1.2.4 - 02/05/2022

v.1.2.3 - 04/03/2022

2021

v.1.2.2 - 31/12/2021

v.1.2.1 - 20/09/2021

v.1.2.0 - 01/07/2021

v.1.2.0 - 16/04/2021

v.1.1.1 - 24/02/2021

2019

v.1.1.0 - 07/10/2019

v.1.0.2 - 06/09/2019

v.1.0.1 - 25/02/2019