ING Bank FR Unofficial API (ing.fr)
This project is a NodeJS application that provides functions to get and post data to the ING API used by the official ING web application. ING does not provide any support or documentation for this API as it should be only used by their mobile app and their website.
This project is the result of a long reverse-engineering work.
Use it at your own risks.
Clone the repository with ssh :
git clone git@github.com:GuillaumeKergreis/ing-fr-unofficial-api.git
or with https :
git clone https://github.com/GuillaumeKergreis/ing-fr-unofficial-api.git
Install the dependencies :
npm install
const ingApi = require('./IngApi');
const customerId = process.env.CUSTOMER_ID; // e.g. 0123456789
const birthdate = process.env.BIRTHDATE; // e.g. 01011970 (DDMMYYYY format)
const password = process.env.PASSWORD; // e.g. 123456
const ingApi = new IngApi(customerId, birthdate, password);
await ingApi.connect();
Get your accounts :
const accounts = await ingApi.getAccounts();
Get your transactions :
const accounts = await ingApi.getAccountTransactions('ACCOUNT_ID');
Make a transfer (a 2FA SMS validation is mandatory) :
await ingApi.makeTransfer('YOUR_DEBIT_ACCOUNT_ID', 'EXTERNAL_CREDIT_ACCOUNT_ID', 204.26, 'Transfer description');
Some sensitive operations must be confirmed by a 2FA, mainly by SMS.
You'll find in the app.js
file an endpoint example to post the code you received via SMS to validate the sensitive
operation.
Endpoint description :
POST localhost:8080/validation/sms
{
validation: {
operation: string,
code: string
}
}
Sensitives operations which need a 2FA :
- DISPLAY_TRANSACTIONS: Access to all the transactions of your account
- EXTERNAL_TRANSFER: Make an external wire transfer
- ADD_TRANSFER_BENEFICIARY: Add a new beneficiary
A mobile app is currently in development, this one will provide an easy way to validate an SMS.
The idea is to wait for the validation SMS, once received, the app extract the sensitive operation type and the validation code from the received SMS and post this information to the validation endpoint.
Another interesting feature will be to select the sensitive operations to perform automatically or not, giving you the ability to just accept or reject an operation through a button click instead of typing the code.