Customer identity
Credentials & Addresses
Manage customer badges (NFC cards, barcodes, and similar identifiers) and delivery addresses.
Badge Management
Manage customer badges (NFC cards, barcodes, etc.). Each customer can have multiple badges, with one marked as the default.
POST/customers/{customerId}/badgesCreate Badge
Add a new badge to a customer.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| customerId | integer | Yes | The unique identifier of the customer. |
Request Body
{
"value": "88293778",
"type": "classic",
"isDefault": true,
"isBlocked": false
}Request Body Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| value | string | "88293778" | The value value. |
| type | string | "classic" | The type value. |
| isDefault | boolean | true | Whether default is enabled or applies. |
| isBlocked | boolean | false | Whether blocked is enabled or applies. |
Response
{
"status": 200,
"code": "customer_badge_created",
"message": "Badge created successfully.",
"data": {
"customerId": 5337578,
"badges": [
{
"badgeId": 5778270,
"value": "88293778",
"type": "classic",
"isDefault": true,
"isBlocked": false
}
]
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "customer_badge_created" | Machine-readable application code for the result. |
| message | string | "Badge created successfully." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.customerId | integer | 5337578 | Identifier of the customer. |
| data.badges | array | […] | List of badges entries. |
| data.badges[] | object | {…} | Object containing badges fields. |
| data.badges[].badgeId | integer | 5778270 | Identifier of the associated badge. |
| data.badges[].value | string | "88293778" | The value value. |
| data.badges[].type | string | "classic" | The type value. |
| data.badges[].isDefault | boolean | true | Whether default is enabled or applies. |
| data.badges[].isBlocked | boolean | false | Whether blocked is enabled or applies. |
PUT/customers/{customerId}/badges/{badgeId}Update Badge
Update an existing badge for a customer. All fields are optional for partial updates.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| customerId | integer | Yes | The unique identifier of the customer. |
| badgeId | integer | Yes | The unique identifier of the badge. |
Request Body
{
"value": "88293779",
"isDefault": false,
"isBlocked": false
}Request Body Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| value | string | "88293779" | The value value. |
| isDefault | boolean | false | Whether default is enabled or applies. |
| isBlocked | boolean | false | Whether blocked is enabled or applies. |
Response
{
"status": 200,
"code": "customer_badge_updated",
"message": "Badge updated successfully.",
"data": {
"customerId": 5337578,
"badges": [
{
"badgeId": 5778270,
"value": "88293779",
"type": "classic",
"isDefault": false,
"isBlocked": false
}
]
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "customer_badge_updated" | Machine-readable application code for the result. |
| message | string | "Badge updated successfully." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.customerId | integer | 5337578 | Identifier of the customer. |
| data.badges | array | […] | List of badges entries. |
| data.badges[] | object | {…} | Object containing badges fields. |
| data.badges[].badgeId | integer | 5778270 | Identifier of the associated badge. |
| data.badges[].value | string | "88293779" | The value value. |
| data.badges[].type | string | "classic" | The type value. |
| data.badges[].isDefault | boolean | false | Whether default is enabled or applies. |
| data.badges[].isBlocked | boolean | false | Whether blocked is enabled or applies. |
DELETE/customers/{customerId}/badges/{badgeId}Delete Badge
Remove a badge from a customer.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| customerId | integer | Yes | The unique identifier of the customer. |
| badgeId | integer | Yes | The unique identifier of the badge to delete. |
Response
{
"status": 200,
"code": "customer_badge_deleted",
"message": "Badge deleted successfully.",
"data": {
"customerId": 5337578,
"badges": []
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "customer_badge_deleted" | Machine-readable application code for the result. |
| message | string | "Badge deleted successfully." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.customerId | integer | 5337578 | Identifier of the customer. |
| data.badges | array | [] | List of badges entries. |
Customer Addresses
Role Requirement
These endpoints are restricted to users with the brand role.
Managing customer addresses is a prerequisite for creating Delivery orders on behalf of a customer. Before a delivery order can be placed, a valid address object must be associated with the customer profile.
Integration with Google Maps
The Innovorder platform relies on Google Maps for geocoding and routing. The providerId field in the address payload corresponds strictly to the Google Place ID.
When building your frontend address form, you should use the Google Places Autocomplete API. When a user selects a suggestion, retrieve the place_id from the result and send it as the providerId.
GET/customers/{customerId}/addressesList Addresses
Retrieve all addresses stored for a customer.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| customerId | integer | Yes | The unique identifier of the customer. |
Response
{
"status": 200,
"code": "address_succeed",
"message": "Adresse trouvée.",
"data": [
{
"addressId": 778201,
"lat": 48.8849947,
"lng": 2.3151972,
"locality": "Paris",
"route": "Rue de Saussure",
"postalCode": "75017",
"streetNumber": "43",
"administrativeAreaLevel1": "Île-de-France",
"administrativeAreaLevel2": "Paris",
"country": "France",
"googlePlaceId": "",
"providerId": "ChIJU8mBWrBv5kcRT7nMUR_aO4U",
"additionalInfo": "Appelez moi en bas",
"digiCode": "1234",
"phone": "0101010101",
"apartmentNumber": "2",
"iconIdentifier": null,
"customerId": 5501207,
"name": "Maison"
}
]
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "address_succeed" | Machine-readable application code for the result. |
| message | string | "Adresse trouvée." | Human-readable result message. Do not use this value for program logic. |
| data | array | […] | Endpoint-specific response payload. |
| data[] | object | {…} | Endpoint-specific response payload. |
| data[].addressId | integer | 778201 | Identifier of the associated address. |
| data[].lat | number | 48.8849947 | The lat value. |
| data[].lng | number | 2.3151972 | The lng value. |
| data[].locality | string | "Paris" | The locality value. |
| data[].route | string | "Rue de Saussure" | The route value. |
| data[].postalCode | string | "75017" | The postal code value. |
| data[].streetNumber | string | "43" | The street number value. |
| data[].administrativeAreaLevel1 | string | "Île-de-France" | The administrative area level1 value. |
| data[].administrativeAreaLevel2 | string | "Paris" | The administrative area level2 value. |
| data[].country | string | "France" | The country value. |
| data[].googlePlaceId | string | "" | Identifier of the associated google place. |
| data[].providerId | string | "ChIJU8mBWrBv5kcRT7nMUR_aO4U" | Identifier of the associated provider. |
| data[].additionalInfo | string | "Appelez moi en bas" | The additional info value. |
| data[].digiCode | string | "1234" | The digi code value. |
| data[].phone | string | "0101010101" | Phone number. |
| data[].apartmentNumber | string | "2" | The apartment number value. |
| data[].iconIdentifier | null | null | The icon identifier value. |
| data[].customerId | integer | 5501207 | Identifier of the customer. |
| data[].name | string | "Maison" | The name value. |
POST/customers/{customerId}/addressCreate Address
Register a new address for a specific customer.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| customerId | integer | Yes | The unique identifier of the customer. |
Request Body
{
"providerId": "ChIJU8mBWrBv5kcRT7nMUR_aO4U",
"displayedAddress": "43 Rue de Saussure, 75017 Paris, France",
"lng": 2.3151972,
"lat": 48.8849947,
"phone": "0101010101",
"digiCode": "1234",
"apartmentNumber": "2",
"additionalInfo": "Appelez moi en bas",
"name": "Maison",
"customerId": 5501207
}Request Body Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| providerId | string | "ChIJU8mBWrBv5kcRT7nMUR_aO4U" | Identifier of the associated provider. |
| displayedAddress | string | "43 Rue de Saussure, 75017 Paris, France" | The displayed address value. |
| lng | number | 2.3151972 | The lng value. |
| lat | number | 48.8849947 | The lat value. |
| phone | string | "0101010101" | Phone number. |
| digiCode | string | "1234" | The digi code value. |
| apartmentNumber | string | "2" | The apartment number value. |
| additionalInfo | string | "Appelez moi en bas" | The additional info value. |
| name | string | "Maison" | The name value. |
| customerId | integer | 5501207 | Identifier of the customer. |
Response
{
"status": 200,
"code": "address_create_succeed",
"message": "L'adresse a été créée.",
"data": {
"addressId": 778201,
"phone": "0101010101",
"locality": "Paris",
"route": "Rue de Saussure",
"postalCode": "75017",
"streetNumber": "43",
"administrativeAreaLevel1": "Île-de-France",
"administrativeAreaLevel2": "Paris",
"country": "France",
"name": "Maison",
"providerId": "ChIJU8mBWrBv5kcRT7nMUR_aO4U",
"lat": 48.8849947,
"lng": 2.3151972,
"customerId": 5501207,
"digiCode": "1234",
"apartmentNumber": "2",
"additionalInfo": "Appelez moi en bas",
"googlePlaceId": ""
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "address_create_succeed" | Machine-readable application code for the result. |
| message | string | "L'adresse a été créée." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.addressId | integer | 778201 | Identifier of the associated address. |
| data.phone | string | "0101010101" | Phone number. |
| data.locality | string | "Paris" | The locality value. |
| data.route | string | "Rue de Saussure" | The route value. |
| data.postalCode | string | "75017" | The postal code value. |
| data.streetNumber | string | "43" | The street number value. |
| data.administrativeAreaLevel1 | string | "Île-de-France" | The administrative area level1 value. |
| data.administrativeAreaLevel2 | string | "Paris" | The administrative area level2 value. |
| data.country | string | "France" | The country value. |
| data.name | string | "Maison" | The name value. |
| data.providerId | string | "ChIJU8mBWrBv5kcRT7nMUR_aO4U" | Identifier of the associated provider. |
| data.lat | number | 48.8849947 | The lat value. |
| data.lng | number | 2.3151972 | The lng value. |
| data.customerId | integer | 5501207 | Identifier of the customer. |
| data.digiCode | string | "1234" | The digi code value. |
| data.apartmentNumber | string | "2" | The apartment number value. |
| data.additionalInfo | string | "Appelez moi en bas" | The additional info value. |
| data.googlePlaceId | string | "" | Identifier of the associated google place. |
PUT/customers/{customerId}/address/{addressId}Update Address
Update an existing address.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| customerId | integer | Yes | The unique identifier of the customer. |
| addressId | integer | Yes | The unique identifier of the address. |
Request Body
{
"name": "Maison",
"addressId": 778201,
"providerId": "ChIJU8mBWrBv5kcRT7nMUR_aO4U",
"googlePlaceId": null,
"iconIdentifier": null,
"customerId": 5501207,
"phone": "0101010101",
"lat": 48.8849947,
"lng": 2.3151972,
"displayedAddress": "43 Rue de Saussure, 75017 Paris, France",
"digiCode": "1234",
"apartmentNumber": "2",
"additionalInfo": "Appelez moi en bas"
}Request Body Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| name | string | "Maison" | The name value. |
| addressId | integer | 778201 | Identifier of the associated address. |
| providerId | string | "ChIJU8mBWrBv5kcRT7nMUR_aO4U" | Identifier of the associated provider. |
| googlePlaceId | null | null | Identifier of the associated google place. |
| iconIdentifier | null | null | The icon identifier value. |
| customerId | integer | 5501207 | Identifier of the customer. |
| phone | string | "0101010101" | Phone number. |
| lat | number | 48.8849947 | The lat value. |
| lng | number | 2.3151972 | The lng value. |
| displayedAddress | string | "43 Rue de Saussure, 75017 Paris, France" | The displayed address value. |
| digiCode | string | "1234" | The digi code value. |
| apartmentNumber | string | "2" | The apartment number value. |
| additionalInfo | string | "Appelez moi en bas" | The additional info value. |
Response
{
"status": 200,
"code": "address_update_succeed",
"message": "L'adresse a été mise à jour.",
"data": {
"addressId": 778201,
"name": "Maison",
"phone": "0101010101",
"locality": "Paris",
"route": "Rue de Saussure",
"postalCode": "75017",
"streetNumber": "43",
"administrativeAreaLevel1": "Île-de-France",
"administrativeAreaLevel2": "Paris",
"country": "France",
"providerId": "ChIJU8mBWrBv5kcRT7nMUR_aO4U",
"lat": 48.8849947,
"lng": 2.3151972,
"customerId": 5501207,
"digiCode": "1234",
"apartmentNumber": "2",
"additionalInfo": "Appelez moi en bas",
"googlePlaceId": null
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "address_update_succeed" | Machine-readable application code for the result. |
| message | string | "L'adresse a été mise à jour." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.addressId | integer | 778201 | Identifier of the associated address. |
| data.name | string | "Maison" | The name value. |
| data.phone | string | "0101010101" | Phone number. |
| data.locality | string | "Paris" | The locality value. |
| data.route | string | "Rue de Saussure" | The route value. |
| data.postalCode | string | "75017" | The postal code value. |
| data.streetNumber | string | "43" | The street number value. |
| data.administrativeAreaLevel1 | string | "Île-de-France" | The administrative area level1 value. |
| data.administrativeAreaLevel2 | string | "Paris" | The administrative area level2 value. |
| data.country | string | "France" | The country value. |
| data.providerId | string | "ChIJU8mBWrBv5kcRT7nMUR_aO4U" | Identifier of the associated provider. |
| data.lat | number | 48.8849947 | The lat value. |
| data.lng | number | 2.3151972 | The lng value. |
| data.customerId | integer | 5501207 | Identifier of the customer. |
| data.digiCode | string | "1234" | The digi code value. |
| data.apartmentNumber | string | "2" | The apartment number value. |
| data.additionalInfo | string | "Appelez moi en bas" | The additional info value. |
| data.googlePlaceId | null | null | Identifier of the associated google place. |