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 :
Partner Services : Choose this type of service if you want to offer to our clients an integration between their account(s) and your application. Once created, your service will not be connected to any Banque Wormser Frères account. You will need to implements the OAuth 2.0 workflow for authentication (partner service authentication) to connect account(s) to your service.
Personal Services : Choose this type of service if you want to use the API for your own business. The authentication process is simpler than partner services, you only need your service's credentials (personal service authentication), but you can only access to your own Banque Wormser Frères account(s). Once validated, your service will be already connected to all of your account(s).
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:
- Authorization Code for partner services
- Client Credentials for personal services
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.
Then, he chooses the bank account to connect with your service.
And he authorizes your service.
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
Staging environment https://api.bwf.staging.manager.one/
Production environment https://api.banquewormser.com/
Connect
Staging environment https://connect.bwf.staging.manager.one
Production environment https://connect.banquewormser.com
TPP
Staging environment https://oauth.bwf.staging.manager.one
Production environment https://oauth.banquewormser.com
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
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 |
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 |
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 |
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
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
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 |
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
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:
A notifiable event occurs in our system.
We check if a webhook subscribed to this event exists for your service.
We send a POST HTTP request, containing a webhook event, to your specific webhook URL
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 :
an authorization is updated, for instance the status is set to
done
or the amount is updated. An operation can be updated until it reaches the final status. You can identify the operation updated with the fieldid
.a new operation linked to an authorization is created. In fact, a single authorization can be divided into multiple operations when the fund requests occurs. The field
parent_operation_id
links the operation with the authorization.
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 |
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 |
INSEE Legal form codes
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
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
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
- X-bwf-Account-ID is mandatory in request header
v.1.2.19 31/10/2023
- Introduce personal services.
v.1.2.18 16/10/2023
- The fields 'registration_type' and 'can_duplicate' have been added to model 'account'.
v.1.2.17 25/09/2023
- The fields
building_number_index
,building_number
,street_type
andstreet_name
have been added to Address. - The field 'details' has been removed from to Address.
- The field 'street' of Address is now DEPRECATED.
- Object
card order address
have been added to Card order address.
v.1.2.16 31/08/2023
- Add a new filter on list of operations. Now you can filter account operations by user_uuid.
v.1.2.15 30/08/2023
- Add 'status' field on Account
- Update refresh token duration
v.1.2.14 13/06/2023
- Add 'uuid' field on card operation event object on operation webhooks
v.1.2.13 05/05/2023
v.1.2.12 03/05/2023
- Add update operation endpoint
v.1.2.11 - 24/04/2023
- Add Operation Category documentation.
- Add index and view operation category endpoints.
v.1.2.10 03/04/2023
- Add scenario on GET /accounts to add a node of some last accounted operations in the response
v.1.2.9 - 08/02/2023
- Add annually limit period on card settings
- Add 'reject_reason' field on operation object and operation webhooks
2022
v.1.2.8 - 19/10/2022
- Add card activation endpoint
v.1.2.7 - 12/08/2022
- Operation
- Adds a
sub_category
field to operation model. This field can be used to get more details about the operation category. For example, when a transfer sent to a beneficiary has been rejected by his bank, a new operation will be credited on the account. You can use this field to identify this operation.
- Adds a
v.1.2.6 - 20/05/2022
- Improve the description of the access required for each endpoint
v.1.2.5 - 09/05/2022
- Add Incoming transfer webhook description
- Update Operation object
- Fields
value_date
,accounting_date
,mid
,assignments
,restaurant
andcard
have been added tooperation
model. - Fields
document
andnb_documents
have been removed fromoperation
model. - Fields
assignments
have been renamed toaffectations
onoperation
model. - The field
nights
,service
,charge_back
,fuel
,liters
,mileage
,half_board_included
andmetadata
have been added tooperation.detail
.
- Fields
- Add
operation
to Transfer object
v.1.2.4 - 02/05/2022
- Add Access object field on Account object
- Add operation document webhook event description
v.1.2.3 - 04/03/2022
- Changed Simulation endpoints return types to Operation
2021
v.1.2.2 - 31/12/2021
- Add operation
timeout
andcancellation_reason
fields - Add Card operation events
timeout
andcancellation_reason
fields - Changed periodic_transfer and transfer currency field, use object instead of string
- Add new simulate type
expired
to simulate an expiration of an authorization
v.1.2.1 - 20/09/2021
- Add operation settlement simulation endpoint
- Add fields
consumed_amount
&available_amount
on card object - Add field
details
on address object - Add field
renew_fresh_token
on refresh token request - Add the address of a merchant on card operations
- Add a filter
mid
on operation endpoint - Add GET
users
endpoint - Add
operation_id
on simulate card operation endpoint
v.1.2.0 - 01/07/2021
- Add simulate card operation endpoint
- Add card order endpoint
- Add card available expiration dates endpoint
v.1.2.0 - 16/04/2021
- Add card endpoints (list cards, retrieve card, update settings and block card).
v.1.1.1 - 24/02/2021
- Sign up api is deprecated
2019
v.1.1.0 - 07/10/2019
- Add Sign Up api
- Improved doc structure
v.1.0.2 - 06/09/2019
Operation:
Fields
attibutions
,employee_number
andassignments
have been added tooperation
model.The field
categories
, have been added tooperation.detail
.
v.1.0.1 - 25/02/2019
OAuth:
The field
grant_code
has been renamed toauthoriation code
to respect OAuth 2.0 specifications.The returned field
token
has been renamed toaccess_token
to respect OAuth 2.0 specifications.The returned field
url_callback
has been renamed toredirect_uri
to respect OAuth 2.0 specifications.The field
state
is now optional.Account:
The field
account.validation_details
has been added to handle double oauthPagination:
Pagination documentation has been added