Skip to content

Stancer

DSP2

Introduction

Here will be documented the DSP2 functionalities of the Iliad78 API.

Code examples are displayed in each section; tabs available in the menu allow you to switch them to various programming languages.

Info

For simplicity, Python code will be written using type hinting (PEP484) implemented in 3.5.


Banks

The bank object is structured as follows:

1
2
3
4
5
6
7
8
{
  "front_name": "Crédit Agricole",
  "front_subbank": "CAM Alsace Vosges",
  "front_type": 1,
  "id": "b9b8be2d-36dd-44ec-8e71-513c2c3f055a",
  "logo": "https://dsp2.iliad78.net/static/ca.jpg",
  "name": "ca"
}
Full parameter list and description of the bank object
Parameter Description Type
id Id of the bank String
front_type Type of the bank (1 part, 2 pro, 3 both) Enum 1, 2, 3
front_subbank Human readable name of the subbank String, Optional
name Logical name of bank, can be used to group subbanks and query the API String
front_name Human readable name of the bank String
logo Url to logo hosted by us String

Get list of supported banks

HTTP request

/v1/bank/all
?name=
name
&front_type=
front_type
/v1/bank/
id_bank

Query parameters

Parameter Description
name Logical name of the bank to retrieve (will fetch all subbanks, if any)
front_type Type of bank (1 part, 2 pro, 3 both)
Parameter Description
id_bank The ID of the bank to retrieve

Return payload

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[
  {
    "front_name": "Crédit Agricole",
    "front_subbank": "CAM Brie Picardie",
    "front_type": 1,
    "id": "bank_MNQUwlHuVwFahzG5xlfjSv5T",
    "logo": "https://dsp2.iliad78.net/static/ca.jpg",
    "name": "ca"
  },
  {
    "front_name": "Crédit Agricole",
    "front_subbank": "CAM de Guadeloupe",
    "front_type": 1,
    "id": "bank_5acZBAyjp0je1kg8DIbhJaWw",
    "logo": "https://dsp2.iliad78.net/static/ca.jpg",
    "name": "ca"
  },
  {
    "front_name": "La Banque Postale",
    "front_type": 1,
    "id": "bank_D8X5ep13eGolJKsDZ7qdFttH",
    "logo": "https://dsp2.iliad78.net/static/lbp.jpg",
    "name": "lbp"
  },
  ...
]

Code examples

Filter banks
1
curl -u <your_api_key>: "https://dsp2.iliad78.net/v1/bank/all?front_type=2&name=bnpp"

The above command returns a JSON structed as follows:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
[
  {
    "front_name": "BNP Paribas",
    "front_subbank": "Fake BNPP subbank 1",
    "front_type": 2,
    "id": "bank_YX5ZaGYh517B74LC0SurKWbS",
    "logo": "https://dsp2.iliad78.net/static/bnpp.jpg",
    "name": "bnpp"
  },
  {
    "front_name": "BNP Paribas",
    "front_subbank": "Fake BNPP subbank 2",
    "front_type": 2,
    "id": "bank_r8XkKfAL46tdDA575T3OfLLu",
    "logo": "https://dsp2.iliad78.net/static/bnpp.jpg",
    "name": "bnpp"
  }
]
Get single bank
1
curl -u <your_api_key>: "https://dsp2.iliad78.net/v1/bank/bank_YX5ZaGYh517B74LC0SurKWbS"

The above command returns a JSON structed as follows:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[
  {
    "front_name": "BNP Paribas",
    "front_subbank": "Fake BNPP subbank 1",
    "front_type": 2,
    "id": "bank_YX5ZaGYh517B74LC0SurKWbS",
    "logo": "https://dsp2.iliad78.net/static/bnpp.jpg",
    "name": "bnpp"
  }
]

Authorization

Full parameter list and description of the authorization object
Field Description Type
id authorization's id String, fixed size = 29
created_at The Unix timestamp representing creation date of the object in local time Int
status Status of the customer authorization Enum authorized, created, requested, failed, renew
redirect_url Url used to redirect to to launch the authorization process String
redirect_url_expiration Time in seconds before the url expires Int
customer Customer object concerned by this authorization Object, Optional
sepa Sepa object concerned by this authorization Object, optional

Authorization status

Value Description
authorized Customer authorized with banks, DSP2 operations can be performed
created Customer needs to be authorized
requested Customer is authorizing Iliad78 to retrieve their info
failed Customer authorization failed
renew Customer's bank token expired and needs to be refreshed

Create an authorization

HTTP request

/v1/authorization

Data parameters

Parameter Description Field
customer Id of the customer or customer object String or Object, Optional
sepa Id of the sepa or sepa object String or Object, Optional

Code examples

1
2
3
4
5
6
7
8
9
curl -u <your_api_key>: -X POST "https://dsp2.iliad78.net/v1/authorization/" \
  --header "Content-Type: application/json" \
  --data '{
    "customer": {
      "name": "David Coaster",
      "email": "david@coaster.net",
      "mobile": "+33684858687"
    }
  }'

The above command returns a JSON structured as follows:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
  "authorization": {
    "created_at": 1538562174,
    "id": "auth_78Df7TdR45hwqcWx4Kldf45C",
    "redirect_url": "https://dsp2.iliad78.net/v1/authorize/auth_78Df7TdR45hwqcWx4Kldf45C",
    "redirect_url_expiration": 900,
    "status": "created"
  },
  "customer" :{
    "created": 1538562173,
    "email": "david@example.net",
    "id": "cust_9Cle7TXKkjhwqcWx4Kl5cQYk",
    "mobile": "+33639980102",
    "name": "David Coaster"
  }
}

Get authorization

HTTP request

/v1/authorization/
id_authorization

Query parameters

Parameter Description
id_authorization ID of customer

Return parameters

Parameter Type
id String, fixed size = 29
created_at Int
status Enum authorized, created, requested, failed, renew
redirect_url String
redirect_url_expiration Int
customer Object, Optional
sepa Object, optional

Authorization process

Interactive flow

In the interactive flow you redirect your customers to our bank selection page and we will redirect them to your redirect_url when the authorization process is done.

HTTP request

/v1/selection/
id_authorization
?redirect_url=
redirect_url

Although we describe the structure of the redirect url here it's best to use the one provided at the creation of the customer as we reserve the right to change the structure of this url.

Query parameters

Parameter Description
id_authorization ID of Authorization
redirect_url URL where your customer will be redirected after the authorization process

API flow

In the API flow you get the list of all available banks and create an authorization request and redirect your customer to the url we provide you, then finally we will redirect to your redirect_url when the authorization process is done.

This flow allows you to integrate more of the overall customer experience directly.

HTTP request

/v1/authorize/
id_authorization
?redirect_url=
redirect_url

Query parameters

Parameter Description
authorization ID of Authorization
redirect_url URL where your customer will be redirected after the authorization process

Warning

This endpoints only accepts data as form-encoded (application/x-www-form-urlencoded) and not JSON (application/json) like all other endpoints

Data parameters

Parameter Description
id_bank ID of bank to authorize for

Return parameters

Parameter Description
redirect_url URL where you need to redirect you customer to authorize

Code examples

1
2
curl -X POST "https://dsp2.iliad78.net/v1/authorize/auth_78Df7TdR45hwqcWx4Kldf45C?redirect_url=https://yourapp.com/postauthorize" \
  --data-raw 'id_bank=bank_YX5ZaGYh517B74LC0SurKWbS'

The above command returns a JSON structured as follows:

1
2
3
{
  "redirect_url": "https://bank.com?client_id=ID&state=UUID"
}

Scoring

Score object description
Field Description Type
id ID of score UUID4
customer Customer object Object, Optional
sepa Sepa object Object, Optional
duration Duration of loan in days Int
amount Amount of loan, in cents int
upfront Upfront amount to pay int, optional
instalment Amount due each month int, optional
identity_match Whether the customer is the owner of the account None when not computed, then bool
account_active Account is active None when not computed, then bool
funds_ready Any account's balance > upfront + 2 instalments, needs values for upfront and instalment None when not computed, then bool
monthly_credit Has (a) monthly credit transaction(s) None when not computed, then bool
score Score (0-100) Int
status Status of score Enum done, queued, computing, failed

Create score request

HTTP request

/v1/
id_object
/score

Data parameters

Field Description
id_object Customer or Sepa ID

Data parameters

Field Description
duration Duration of the loan
amount Amount of the loan
upfront Upfront amount to pay
instalment Amount due each month

Return parameters

Field Description
id ID of score
customer Customer object
sepa Sepa object
duration Duration of loan in days
amount Amount of loan in cents
upfront Upfront amount to pay
instalment Amount due each month
score Score (0-100)
status Status of score
identity_match Whether the customer is the owner of the account
age_check Any account is older than 3 months
funds_ready Any account's balance > upfront + 2 instalments
monthly_credit Any account as a monthly credit transaction

Code examples

1
2
3
4
5
6
curl -u <your_api_key>: -X POST "https://dsp2.iliad78.net/v1/cust_9Cle7TXKkjhwqcWx4Kl5cQYk/score" \
  --header "Content-Type: application/json" \
  --data '{
    "duration": 90,
    "amount": 15050,
}'

The above command returns a JSON structured as follows:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "id": "scor_g5ldE58PkjhwqcWx4KlD87Po",
  "customer": {
    "created": 1538562173,
    "email": "david@example.net",
    "id": "cust_9Cle7TXKkjhwqcWx4Kl5cQYk",
    "mobile": "+33639980102",
    "name": "David Coaster"
  },
  "duration": 90,
  "amount": 15050,
  "upfront": 3000,
  "installment": 4000,
  "score": null,
  "status": "queued",
  "identity_match": null,
  "age_check": null,
  "funds_ready": null,
  "monthly_credit": null,
  "solvability": null
}

Get score

HTTP request

/v1/
id_object
/score/
id_score

Query parameters

Field Description
id_object Customer or Sepa ID
id_score ID of score to fetch

Return parameters

Field Description
id ID of score
id_customer ID of customer
id_sepa ID of sepa
duration Duration of loan in days
amount Amount of loan
score Score (0-100)
status Status of score

Code examples

1
curl -u <your_api_key>: "https://dsp2.iliad78.net/v1/cust_9Cle7TXKkjhwqcWx4Kl5cQYk/score/scor_g5ldE58PkjhwqcWx4KlD87Po"

The above command returns a JSON structured as follows:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
{
  "id": "scor_g5ldE58PkjhwqcWx4KlD87Po",
  "customer": {
    "created": 1538562173,
    "email": "david@example.net",
    "id": "cust_9Cle7TXKkjhwqcWx4Kl5cQYk",
    "mobile": "+33639980102",
    "name": "David Coaster"
  },
  "duration": 90,
  "amount": 15050,
  "score": 59,
  "status": "done",
  "identity_match": true,
  "age_check": false,
  "funds_ready": true,
  "monthly_credit": true,
  "solvability": true
}

Accounts

Account model
Field Description Type
id Id of account as returned by the bank String
name Name of the account String
ownership Enum holder, coholder, attorney, minorcustodian, legalguardian, nominee, successor, trustee,
type Type of the account Enum cacc, card
area Technical information on account subspace within bank Object, Optional
usage Account usage Enum priv, orga, Optional

Card Account specific fields

Field Description Type
linked_account Id of account the card depends on String
card_number Obfuscated card number String
number_info Technical information on card number Object, Optional

Cash Account specific fields

Field Description Type
iban IBAN of the account String
currency Currency of the account (ISO4217) String

Ownership

Value Description
holder Account owner
coholder Account co-owner
attorney Generic case for delegated access
minorcustodian Delegated access for minor
legalguardian Delegated access mandated by legal action
nominee Nomited by account holder to represent
successor Account ownership transferred on death
trustee Beneficial ownership

Get account list

HTTP request

/v1/
id_object
/account

Data parameters

Field Description
id_object Customer or Sepa ID

Return payload

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
[
  {
    "id": "7LdcBk78dzkepO3Gf23",
    "name": "Mr et Mme Dupuis",
    "ownership": "coholder",
    "type": "cacc",
    "usage": "priv",
    "iban": "FR0510096000704728284613U81",
    "currency": "EUR"
  },
  {
    "id": "6LdcKRZ8d8pepO3Zop6",
    "name": "Carte débit différé",
    "ownership": "holder",
    "type": "card",
    "usage": "priv",
    "linked_account": "7LdcBk78dzkepO3Gf23",
    "card_number": "************3037"
  }
]

Code examples

1
curl -u <your_api_key>: "https://dsp2.iliad78.net/v1/cust_9Cle7TXKkjhwqcWx4Kl5cQYk/account"

Balances

Balance model
Field Description Type
id_account ID of the account concerned String
type Balance type Enum xpcd, clbd, valu, itav, prcd, othr
amount Blance amount, in cents Int
currency Balance currency (ISO4217) String
name Balance name String
id_last_transaction Id of the last transaction used to compute the balance String, optional

Balance Type

Value Description
xpcd ISO20022 Expected
clbd ISO20022 ClosingBooked
valu Value-date balance
itav ISO20022 InterimAvailable
prcd ISO20022 PreviouslyClosedBooked
othr Other Balance

Get account balances

HTTP request

/v1/
id_object
/account/
id_account
/balance

Query parameters

Field Description
id_object ID of customer or sepa
id_account ID of account returned by call on /account endpoint

Return payload

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
[
  {
    "id_account": "7LdcBk78dzkepO3Gf23",
    "type": "xpcd",
    "amount": 256649,
    "currency": "EUR",
    "name": "Balance attendue"
  },
  {
    "id_account": "7LdcBk78dzkepO3Gf23",
    "type": "clbd",
    "amount": 257849,
    "currency": "EUR",
    "name": "Balance attendue",
    "id_last_transaction": "O6Bc45EldzkegP3Gfv5"
  }
]

Code examples

1
curl -u <your_api_key>: "https://dsp2.iliad78.net/v1/cust_9Cle7TXKkjhwqcWx4Kl5cQYk/account/7LdcBk78dzkepO3Gf23/balance"

Transactions

Transaction model
Field Description Type
id Id of the transaction String, Optional
id_account Id of the account this transaction is from String
label Label of transaction String
amount Transaction amount, in cents Int
currency Transaction currency (ISO4217) String
date_operation Date when the operation took place Isoformat Date/Datetime String, Optional
date_processed Date when the bank processed the operation Isoformat Date/Datetime String, Optional
credit_debit_indicator Whether the transaction credits or debits funds Enum crdt, dbit
status Transaction status Enum book, pdng, futr, info

Transaction Status

Value Description
book Transaction is processed
pdng Transaction is awaiting processing (already affects instant balance)
futr Transaction has not yet happened
info Not a real transaction

Get transaction list

HTTP request

/v1/
id_object
/account/
id_account
/transaction

Query parameters

Field Description
id_object ID of customer or sepa
id_account ID of account returned by call on /account endpoint

Return payload

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
[
  {
    "id_account": "7LdcBk78dzkepO3Gf23",
    "label": "Retrait DAB",
    "amount": 5000,
    "currency": "EUR",
    "date_operation": "2022-03-23",
    "credit_debit_indicator": "dbit",
    "status": "pdng"
  },
  {
    "id": "G5gpBkr5D8kepO3Gt53",
    "id_account": "7LdcBk78dzkepO3Gf23",
    "label": "Salaire",
    "amount": 200000,
    "currency": "USD",
    "date_processed": "2022-03-01T00:00:00",
    "credit_debit_indicator": "crdt",
    "status": "book"
  },
  ...
]

Code examples

1
curl -u <your_api_key>: "https://dsp2.iliad78.net/v1/cust_9Cle7TXKkjhwqcWx4Kl5cQYk/account/7LdcBk78dzkepO3Gf23/transactions"