This page is a complete reference for all response codes returned by DQE APIs — both HTTP-level errors and service-specific validation codes. Use the sections below to look up any code you receive.
- HTTP errors — common to all APIs
- Email API
- Phone API
- Address API — CheckAddress (DQECodeDetail)
- Geocoding API (CodeQualiteGeo)
- B2B API
- SMS Phone Confirmation API
- ID Mobile API
HTTP errors — common to all APIs
These errors occur at the HTTP transport level and are common across all DQE API services.
Classic APIs
| HTTP status | Cause | Typical response |
|---|---|---|
400 Bad Request |
Missing or empty mandatory parameter (e.g. Licence, Email, Tel, Pays, Adresse). |
400 Bad Request (plain text) or empty JSON response depending on the endpoint. |
500 Internal Server Error |
Missing mandatory parameter in Geocoding endpoints (IDVoie, Num, Pays). |
500 Internal Server Error |
| Licence error (in JSON body) | Missing, empty, or invalid Licence parameter. |
** LICENCE KO ** (Email), Licence Down in JSON (Phone), or empty response (Address). |
unauthorized_client |
Incorrect licence number (Email Classic API only). | unauthorized_client |
Restful APIs
Restful APIs return structured JSON error objects with the following format:
{
"status": 400,
"message": "Missing parameters",
"details": "Licence",
"error": "bad request"
}
| Status | Error | Cause |
|---|---|---|
400 |
bad request |
Missing or empty mandatory parameter. The details field names the missing parameter. |
401 |
unauthorized_client |
Invalid or inactive licence key. |
401 |
Unauthorized |
Missing or invalid OAuth2 authentication token (Restful Email and Phone APIs). |
Email API
Returned by Email API — Validate an email address (Classic) and Restful Email API — email/lookup.
IdError codes
The IdError field is the primary validation result for every email request.
| Code | Description | Suggested UI message |
|---|---|---|
00 |
Valid email address. | Valid email |
01 |
Email syntax is correct but the username could not be checked (catch-all domain). | Valid email |
02 |
Email address not found for this domain. | Please check your email address |
03 |
Inbox is full — soft bounce. | Please check your email address |
04 |
Empty email address. | Please check your email address |
91 |
Syntax error. | Please check your email address |
92 |
Unknown domain. | Please check your email address |
93 |
Blacklisted email address or domain. | Please check your email address |
94 |
Unauthorized username. | Please check your email address |
95 |
Disposable or temporary email address. | Please check your email address |
99 |
Verification service temporarily unavailable — treat as valid. | Valid email |
CodeActivite codes (level 2 verification)
Returned only when level 2 verification is enabled. M = current month.
| Code | Description |
|---|---|
100 |
The email was delivered at least once. |
200 |
The email address is valid and active. |
201 |
Active within the last month (M-1). |
202 |
Active between M-1 and M-2. |
203 |
Active between M-2 and M-3. |
204 |
Active between M-3 and M-4. |
206 |
Active between M-4 and M-6. |
209 |
Active between M-6 and M-9. |
212 |
Active between M-9 and M-12. |
300 |
Inactive email address. |
Phone API
Returned by Phone API — Classic and Restful Phone API — phone/lookup.
IdError codes
| Code | Description |
|---|---|
0 |
Invalid or non-existing phone number. |
1 |
Valid and attributed phone number. |
2 |
Valid syntax only — number has not been attributed (e.g. reserved range). |
Status codes (level 2 verification — Classic API)
Returned when Status=Y is set in the request. French mobile numbers only.
| Code | LabelStatus | Description |
|---|---|---|
0 |
Reachable | The mobile number is currently reachable. |
1 |
Not Reachable | The mobile number is currently not reachable. |
Address API — CheckAddress (DQECodeDetail)
Returned by Classic API — CheckAddress and Restful Address — checkaddress. The DQECodeDetail field gives the address validation quality score.
| Code | Description | Suggested UI message |
|---|---|---|
10 |
Address is fully correct. | Valid address |
20 |
Address is correct — street not found but it is a CEDEX or P.O. box. | Valid address |
21 |
Small town — street number out of range. | Please check your postal address |
22 |
Small town — street number missing (rest of address is correct). | Please check your postal address |
23 |
Large city — street number out of range. | Please check your postal address |
24 |
Large city — street number missing (rest of address is correct). | Please check your postal address |
25 |
CEDEX address unknown to CEDEXA (when CEDEXA is active). | Valid address |
30 |
Small town — street name not recognised. | Please check your postal address |
31 |
Small town — street name not recognised (alternative match). | Please check your postal address |
40 |
Small town — street missing; district information recognised but insufficient to deduce the street. | Please check your postal address |
41 |
Small town — street name missing. | Please check your postal address |
50 |
Large city — street name not recognised. | Please check your postal address |
51 |
Large city — street not recognised; district information recognised but insufficient (France only). | Please check your postal address |
60 |
Large city — street missing; district information recognised but insufficient. | Please check your postal address |
61 |
Large city — street name missing. | Please check your postal address |
70 |
Postal code / city mismatch — cannot be corrected (street present). | Please check your postal address |
71 |
Postal code / city mismatch — cannot be corrected (street missing). | Please check your postal address |
80 |
Address input block is empty. | Please check your postal address |
81 |
Address input block is empty (alternative). | Please check your postal address |
90 |
International address detected — valid. | Valid address |
95 |
Missing or incorrect country code. | Please check your postal address |
Quick interpretation guide: Codes 10, 20, 25, 90 = address is valid. Codes 21–24 = number issue. Codes 30–61 = street issue. Codes 70–71 = postcode/city mismatch. Codes 80–81 = empty input. Code 95 = wrong country.
Geocoding API (CodeQualiteGeo)
Returned by Geocoding API — Get GPS coordinates and by CheckAddress when Version=1.1. The CodeQualiteGeo field indicates the precision level of the geocoordinates.
| CodeQualiteGeo | Label | Description |
|---|---|---|
1 |
ENTREE | Main access point to an enclosure, group of buildings, or land parcel. |
2 |
BATIMENT | Building or part of a building. |
3 |
ESCALIERS | Stairwell inside a building. |
4 |
LOGEMENT | Housing or room inside a building. |
5 |
PARCELLE CADASTRALE | Cadastral parcel. |
6 |
SEGMENT DE VOIE | Position derived from the connecting street segment. |
7 |
POINT D ACCESS TECHNIQUE | Technical access point. |
8 |
POINT DELIVRANCE POSTALE | Postal delivery point (e.g. mailbox). |
9 |
ZONE D ADRESSAGE | Point placed in the dependent locality. |
10 |
CENTRE VILLE | City centre — lowest precision. |
00 |
CENTRE DE LA VOIE | Point in the centre of the street. |
90 |
A CONTROLER | To check — coordinates should be verified. |
99 |
NON PRESENTE | Not available — coordinates could not be computed. |
Note: When Licence is missing or invalid, the Geocoding API returns Latitude: "0.00" and Longitude: "0.00" instead of an HTTP error.
B2B API
Returned by B2B Classic API — RECSIRET, B2B Classic API — SIRETINFO, Restful B2B API — Lookup, and Restful B2B API — GetInfo.
DQE_status (Classic API — SIRETINFO extended form)
| Value | Description |
|---|---|
FOUND |
Company was found in the database. |
NOT FOUND |
No matching company was found for the provided SIRET. |
CompanyStatus
| Value | Description |
|---|---|
1 |
Company is in operation. |
0 |
Company is no longer in operation. |
MainCompanyFlag
| Value | Description |
|---|---|
1 |
This record is the company head office. |
0 |
This record is a secondary establishment. |
SMS Phone Confirmation API
Returned by SMS Phone Confirmation API — Send OTP (GDPR_MSG) and SMS Phone Confirmation API — Verify OTP (GDPR_VERIF).
GDPR_MSG — SMS delivery status
| Status | Description |
|---|---|
PENDING |
SMS was sent to the operator, awaiting delivery confirmation. |
DELIVERED |
SMS was successfully delivered to the recipient. |
UNDELIVERABLE |
SMS could not be delivered. |
EXPIRED |
SMS expired before delivery confirmation was received. |
REJECTED |
SMS was rejected by the operator. |
GDPR_MSG — error codes (in the errors field)
| Code | Description |
|---|---|
00 |
No errors. |
01 |
Missing parameters. |
02 |
Service not authorised for this licence. |
03 |
Invalid phone number. |
04 |
Invalid country code. |
05 |
Invalid duration. |
06 |
Country not found. |
07 |
Invalid company name (must be 3–11 characters). |
08 |
Internal API error. |
09 |
No delivery status received from operator. |
10 |
Invalid consent values. |
11 |
At least one communication channel must be enabled. |
GDPR_VERIF — error codes (in the errors field)
| Code | Description |
|---|---|
00 |
No errors — PIN verified successfully. |
01 |
Missing parameters. |
02 |
PIN must contain 6 digits. |
03 |
PIN has expired. |
04 |
PIN is invalid for this token or phone number. |
05 |
Invalid token. |
ID Mobile API
Returned by all ID Mobile scopes: Simswap, Matching without OTP, Number Verify, Formfilling, and Billing.
Errors are returned as a JSON object with three fields: status (error), error_id, and error_type.
{
"status": "error",
"error_type": "invalid phone number",
"error_id": "10"
}
Step 1 error codes — all scopes
These error codes are returned by the first API call (/IDMOBILE/ endpoint) for all scopes.
| error_id | error_type | Description |
|---|---|---|
01 |
invalid request | The request is not valid. |
02 |
invalid licence key | The licence is not valid. |
04 |
invalid scope | The requested scope is invalid. |
05 |
missing or empty parameter (user_infos) for this scope | A required parameter is missing for the requested scope. |
06 |
bad parameter format (user_infos) is not a valid JSON | The user_infos parameter is not valid JSON. |
07 |
missing mandatory key in user informations (phone) | The phone key is mandatory in user_infos for this operator. |
09 |
ineligible phone number | The phone number is not eligible for this solution. |
10 |
invalid phone number | The phone number does not exist. |
11 |
phone number is empty | The phone number is empty. |
12 |
phone check failed | The operator verification failed. |
13 |
operator [name] not found | The operator could not be found. |
14 |
operator [name] not authorized for this licence | Your licence is not authorised for this operator. |
15 |
operator [name] not supported yet | The solution is not yet available for this operator. |
16 |
operator [name] unreachable | The operator could not be contacted. |
17 |
scope not supported by this operator [name] yet | This scope is not supported by the operator. |
30 |
invalid or expired token | The authentication token has expired. Obtain a new token via the Token endpoint. |
Step 2 error codes — Number Verify, Formfilling, Billing
These additional error codes are returned by the retrieval call (/GET/ endpoint) after the user has completed the operator redirect.
| error_id | error_type | Description |
|---|---|---|
01 |
invalid request | The request is not valid. |
02 |
invalid licence key | The licence is not valid. |
04 |
invalid scope | The requested scope is invalid. |
18 |
failed to retrieve data from operator | No data was received after OTP validation. |
20 |
Not the same phone number between the phone in the request | OTP validation was not completed — phone mismatch. |
21 |
access denied | OTP validation was declined by the user. |
30 |
invalid or expired token | The authentication token has expired. |
99 |
internal server error | Server error — retry or contact support. |
Related to