Skip to content
innovorder
⌘K

Customer identity

Manage Customers

Register, update, search, and authenticate customers for your brand. This section covers the full lifecycle of customer management, from account creation to login.

Create Customer

Register a new customer for a specific brand. Depending on your configuration, you can use the Standard Mode (Legacy) or the Hierarchy Mode (Enterprise).


1. Standard Creation (No Hierarchy)

In this mode, fields like `class`, `section`, and `pricingRuleCode` are free text inputs.

POST/brands/{brandId}/customersCreate Customer

Create a new customer account without hierarchy constraints.

Parameters

NameTypeRequiredDescription
brandIdintegerYesID of the brand

Request Body

json
{
  "role": "customer",
  "brandId": 22,
  "badgeNumber": 10390970,
  "firstName": "First",
  "lastName": "Last",
  "phone": "0101010101",
  "email": "user@example.com",
  "password": "securePassword1",
  "confirmPassword": "securePassword1",
  "student": {
    "pricingRuleCode": "TEST",
    "accountPaymentType": "CASH",
    "accountType": null,
    "accessFrom": "2025/01/01",
    "accessUntil": "2045/01/01",
    "class": "Groupe",
    "section": "Section",
    "subSection": "SubSection",
    "studentNumber": "XXXXXXX",
    "tariffCode": "XXX"
  }
}
Request Body Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
rolestring"customer"The role value.
brandIdinteger22Identifier of the brand.
badgeNumberinteger10390970The badge number value.
firstNamestring"First"The first name value.
lastNamestring"Last"The last name value.
phonestring"0101010101"Phone number.
emailstring"user@example.com"Email address.
passwordstring"securePassword1"The password value.
confirmPasswordstring"securePassword1"The confirm password value.
studentobject{…}Object containing student fields.
student.pricingRuleCodestring"TEST"The pricing rule code value.
student.accountPaymentTypestring"CASH"The account payment type value.
student.accountTypenullnullThe account type value.
student.accessFromstring"2025/01/01"The access from value.
student.accessUntilstring"2045/01/01"The access until value.
student.classstring"Groupe"The class value.
student.sectionstring"Section"The section value.
student.subSectionstring"SubSection"The sub section value.
student.studentNumberstring"XXXXXXX"The student number value.
student.tariffCodestring"XXX"The tariff code value.

Response

json
{
  "status": 201,
  "code": "customer_create_succeed",
  "message": "L'utilisateur a été créé avec succès.",
  "data": {
    "customerId": 5337578,
    "brandId": 22,
    "badgeNumber": "10390970",
    "firstName": "First",
    "lastName": "Last",
    "email": "user@example.com",
    "student": {
      "studentId": 3703477,
      "pricingRuleCode": "TEST",
      "accountPaymentType": "CASH",
      "class": "Groupe",
      "section": "Section",
      "studentNumber": "XXXXXXX",
      "customerId": 5337578
    },
    "badges": [
      {
        "badgeId": 5778270,
        "value": "10390970",
        "type": "classic",
        "isDefault": true
      }
    ]
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger201HTTP status code returned by the API.
codestring"customer_create_succeed"Machine-readable application code for the result.
messagestring"L'utilisateur a été créé avec succès."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.customerIdinteger5337578Identifier of the customer.
data.brandIdinteger22Identifier of the brand.
data.badgeNumberstring"10390970"The badge number value.
data.firstNamestring"First"The first name value.
data.lastNamestring"Last"The last name value.
data.emailstring"user@example.com"Email address.
data.studentobject{…}Object containing student fields.
data.student.studentIdinteger3703477Identifier of the associated student.
data.student.pricingRuleCodestring"TEST"The pricing rule code value.
data.student.accountPaymentTypestring"CASH"The account payment type value.
data.student.classstring"Groupe"The class value.
data.student.sectionstring"Section"The section value.
data.student.studentNumberstring"XXXXXXX"The student number value.
data.student.customerIdinteger5337578Identifier of the customer.
data.badgesarray[…]List of badges entries.
data.badges[]object{…}Object containing badges fields.
data.badges[].badgeIdinteger5778270Identifier of the associated badge.
data.badges[].valuestring"10390970"The value value.
data.badges[].typestring"classic"The type value.
data.badges[].isDefaultbooleantrueWhether default is enabled or applies.

2. Hierarchy-Based Creation

With the Hierarchy feature enabled (typically for corporate canteens), you cannot use free text for organization fields. Instead, you must link the customer to a specific Guest Group (Company, Service, or Sub-service).

Before You Start

You need to retrieve the valid guestGroupId and pricingRuleId for your customer.
Please refer to the Hierarchy & Groups to learn how to traverse the organization tree.

Create Request

Use the IDs retrieved from the hierarchy traversal in the payload.

POST/brands/{brandId}/customersCreate (Hierarchy)

Parameters

NameTypeRequiredDescription
brandIdintegerYesThe unique identifier of the brand that owns the customer.

Request Body

json
{
  "firstName": "Alice",
  "lastName": "Doe",
  "email": "alice.doe@example.com",
  "password": "SecurePassword123!",
  "confirmPassword": "SecurePassword123!",
  "badgeNumber": "88293778",
  "brandId": 496,
  "role": "customer",
  "phone": "0101010101",
  "badges": [
    {
      "value": "88293778",
      "type": "",
      "isDefault": true
    },
    {
      "value": "81595056",
      "type": "secondary",
      "isDefault": false
    }
  ],
  "student": {
    "accountPaymentType": "PREPAYMENT",
    "accountType": null,
    "guestGroupId": 729,
    "pricingRuleId": 11469,
    "studentNumber": "matricule111111",
    "accessFrom": "2025-11-20",
    "accessUntil": "2033-10-23"
  }
}
Request Body Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
firstNamestring"Alice"The first name value.
lastNamestring"Doe"The last name value.
emailstring"alice.doe@example.com"Email address.
passwordstring"SecurePassword123!"The password value.
confirmPasswordstring"SecurePassword123!"The confirm password value.
badgeNumberstring"88293778"The badge number value.
brandIdinteger496Identifier of the brand.
rolestring"customer"The role value.
phonestring"0101010101"Phone number.
badgesarray[…]List of badges entries.
badges[]object{…}Object containing badges fields.
badges[].valuestring"88293778"The value value.
badges[].typestring""The type value.
badges[].isDefaultbooleantrueWhether default is enabled or applies.
studentobject{…}Object containing student fields.
student.accountPaymentTypestring"PREPAYMENT"The account payment type value.
student.accountTypenullnullThe account type value.
student.guestGroupIdinteger729Identifier of the associated guest group.
student.pricingRuleIdinteger11469Identifier of the associated pricing rule.
student.studentNumberstring"matricule111111"The student number value.
student.accessFromstring"2025-11-20"The access from value.
student.accessUntilstring"2033-10-23"The access until value.

Response

json
{
  "status": 201,
  "code": "customer_create_succeed",
  "message": "Customer has been successfully created.",
  "data": {
    "customerId": 5337578,
    "brandId": 496,
    "badgeNumber": "88293778",
    "firstName": "Alice",
    "lastName": "Doe",
    "email": "alice.doe@example.com",
    "student": {
      "studentId": 3703477,
      "customerId": 5337578,
      "guestGroupId": 729,
      "pricingRuleId": 11469,
      "accountPaymentType": "PREPAYMENT",
      "studentNumber": "matricule111111"
    },
    "badges": [
      {
        "badgeId": 5778270,
        "value": "88293778",
        "type": "classic",
        "isDefault": true
      }
    ]
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger201HTTP status code returned by the API.
codestring"customer_create_succeed"Machine-readable application code for the result.
messagestring"Customer has been successfully created."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.customerIdinteger5337578Identifier of the customer.
data.brandIdinteger496Identifier of the brand.
data.badgeNumberstring"88293778"The badge number value.
data.firstNamestring"Alice"The first name value.
data.lastNamestring"Doe"The last name value.
data.emailstring"alice.doe@example.com"Email address.
data.studentobject{…}Object containing student fields.
data.student.studentIdinteger3703477Identifier of the associated student.
data.student.customerIdinteger5337578Identifier of the customer.
data.student.guestGroupIdinteger729Identifier of the associated guest group.
data.student.pricingRuleIdinteger11469Identifier of the associated pricing rule.
data.student.accountPaymentTypestring"PREPAYMENT"The account payment type value.
data.student.studentNumberstring"matricule111111"The student number value.
data.badgesarray[…]List of badges entries.
data.badges[]object{…}Object containing badges fields.
data.badges[].badgeIdinteger5778270Identifier of the associated badge.
data.badges[].valuestring"88293778"The value value.
data.badges[].typestring"classic"The type value.
data.badges[].isDefaultbooleantrueWhether default is enabled or applies.

Payload Reference

Detailed description of all fields accepted in the POST /customers payload.

FieldTypeDescription
roleStringMandatory. Value must be "customer".
brandIdIntegerMandatory. The unique ID of the brand.
firstNameStringCustomer's first name.
lastNameStringCustomer's last name.
emailStringUnique email address.
phoneStringPhone number (optional but recommended).
passwordStringPassword for the account.
confirmPasswordStringMust match the password field.
badgeNumberStringA single primary badge number.
badgesArray<Badge>Advanced badge assignment. Contains objects with:
  • value: The badge number string.
  • type: e.g. "classic", "secondary".
  • isDefault: Boolean.
student (Object)
student.studentNumberStringUnique identifier (Matricule).
student.accountPaymentTypeString"CASH", "PREPAYMENT" or "POSTPAYMENT".
student.accessFromStringStart date of validity (YYYY-MM-DD or ISO).
student.accessUntilStringEnd date of validity (YYYY-MM-DD or ISO).
Standard Mode Only
student.classStringFree text field for Class/Group.
student.sectionStringFree text field for Section.
student.subSectionStringFree text field for Sub-section.
student.pricingRuleCodeStringFree text code for pricing rule.
Hierarchy Mode Only
student.guestGroupIdIntegerID of the selected group (leaf node) from GET /guest_groups.
student.pricingRuleIdIntegerID of the pricing rule from GET /pricing_rules.

Update Customer

Update an existing customer profile. You can modify personal information, password, badge number, student details, and e-wallet settings.

PUT/customers/{customerId}Update Customer

Update a customer by their ID. Only the fields provided in the body will be updated. Supports partial updates.

Parameters

NameTypeRequiredDescription
customerIdintegerYesThe unique identifier of the customer.
autoImportGuestHierarchybooleanNoIf true, automatically imports guest hierarchy when updating student fields.

Request Body

json
{
  "firstName": "Alice",
  "lastName": "Doe-Updated",
  "phone": "0601020304",
  "email": "alice.updated@example.com",
  "badgeNumber": "10390970",
  "student": {
    "accessUntil": "2035-12-31"
  }
}
Request Body Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
firstNamestring"Alice"The first name value.
lastNamestring"Doe-Updated"The last name value.
phonestring"0601020304"Phone number.
emailstring"alice.updated@example.com"Email address.
badgeNumberstring"10390970"The badge number value.
studentobject{…}Object containing student fields.
student.accessUntilstring"2035-12-31"The access until value.

Response

json
{
  "status": 200,
  "code": "customer_update_succeed",
  "message": "L'utilisateur a bien ete mis a jour.",
  "data": {
    "customerId": 5337578,
    "firstName": "Alice",
    "lastName": "Doe-Updated",
    "phone": "0601020304",
    "email": "alice.updated@example.com",
    "badgeNumber": "10390970",
    "brandId": 22,
    "student": {
      "studentId": 3703477,
      "pricingRuleCode": "TEST",
      "accountPaymentType": "CASH",
      "accessUntil": "2035-12-31T00:00:00.000Z",
      "customerId": 5337578
    }
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"customer_update_succeed"Machine-readable application code for the result.
messagestring"L'utilisateur a bien ete mis a jour."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.customerIdinteger5337578Identifier of the customer.
data.firstNamestring"Alice"The first name value.
data.lastNamestring"Doe-Updated"The last name value.
data.phonestring"0601020304"Phone number.
data.emailstring"alice.updated@example.com"Email address.
data.badgeNumberstring"10390970"The badge number value.
data.brandIdinteger22Identifier of the brand.
data.studentobject{…}Object containing student fields.
data.student.studentIdinteger3703477Identifier of the associated student.
data.student.pricingRuleCodestring"TEST"The pricing rule code value.
data.student.accountPaymentTypestring"CASH"The account payment type value.
data.student.accessUntilstring"2035-12-31T00:00:00.000Z"The access until value.
data.student.customerIdinteger5337578Identifier of the customer.

E-Wallet Overdraft & Daily Limit

To modify overdraft or daily payment limit fields (overrideEwalletOverdraft, ewalletOverdraftAmount, overrideDailyPaymentLimit, paymentDailyLimit), the authenticated user must have the CAN_MANAGE_CUSTOMER_EWALLET_OVERDRAFT access flag.

Find Customers

Search for customers using various criteria or retrieve a specific user's information using their badge number or ID.

GET/customersSearch Customers

Retrieve a list of customers based on filters. Useful for finding a user by email, name, or student number. Note that hierarchy fields are exposed at the root level. Restaurant-role tokens are lookup-only: an identity search (search, firstName, lastName, email, badgeNumber, studentNumber or emails) of at least 3 characters is required (bulk filters alone are refused with 400 customer_search_term_required), and the visible window is capped at 25 rows (limit is clamped, count never exceeds 25). Brand, brandGroup, admin and POS tokens are unaffected.

Parameters

NameTypeRequiredDescription
brandIdstringYesThe brand Id of the current business.
restaurantIdsstringNoFilter by specific restaurant IDs (comma separated).
searchstringNoPartial match on name, email, phone, or badge number.
studentNumberstringNoExact match on the unique student reference.
includestringNoInclude additional data: ewalletBalance, grant, entranceFee, pricingRule.
unitCurrencybooleanNoIf true, returns monetary values in currency units (e.g. 12.50) instead of cents.
mustHaveBadgeNumberbooleanNoIf true, only returns users with an assigned badge number.

Response

json
{
  "status": 200,
  "code": "customers_succeed",
  "message": "Vous pouvez accéder à ces clients",
  "data": {
    "count": 2695,
    "customers": [
      {
        "customerId": 2792744,
        "firstName": "G CAVADINI",
        "lastName": "QUALITE INVITE",
        "email": "399@sodexo.com",
        "badgeNumber": "399",
        "studentNumber": "399",
        "class": "NEWTON",
        "section": "INVITE",
        "subSection": null,
        "pricingRuleCode": "INVITE",
        "accountPaymentType": "POSTPAYMENT",
        "guestGroupId": 3043,
        "balance": 0
      },
      {
        "customerId": 2792746,
        "firstName": "FONDATION",
        "lastName": "CARTE INVITE",
        "email": "30126@sodexo.com",
        "class": "BEL",
        "section": "INVITE",
        "subSection": null,
        "guestGroupId": 3219
      }
    ]
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"customers_succeed"Machine-readable application code for the result.
messagestring"Vous pouvez accéder à ces clients"Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.countinteger2695Total number of matching records.
data.customersarray[…]List of customers entries.
data.customers[]object{…}Object containing customers fields.
data.customers[].customerIdinteger2792744Identifier of the customer.
data.customers[].firstNamestring"G CAVADINI"The first name value.
data.customers[].lastNamestring"QUALITE INVITE"The last name value.
data.customers[].emailstring"399@sodexo.com"Email address.
data.customers[].badgeNumberstring"399"The badge number value.
data.customers[].studentNumberstring"399"The student number value.
data.customers[].classstring"NEWTON"The class value.
data.customers[].sectionstring"INVITE"The section value.
data.customers[].subSectionnullnullThe sub section value.
data.customers[].pricingRuleCodestring"INVITE"The pricing rule code value.
data.customers[].accountPaymentTypestring"POSTPAYMENT"The account payment type value.
data.customers[].guestGroupIdinteger3043Identifier of the associated guest group.
data.customers[].balanceinteger0The balance value.

GET/customers/{customerId}Get Customer Details

Retrieve detailed information for a single customer by their ID. Hierarchy information is nested within the `student` object.

Parameters

NameTypeRequiredDescription
customerIdintegerYesThe unique identifier of the customer.
unscopedbooleanNoSet to true to bypass certain scope checks if necessary.

Response

json
{
  "status": 200,
  "code": "customer_succeed",
  "message": "Vous pouvez accéder à ce client",
  "data": {
    "customerId": 2792749,
    "firstName": "LONS",
    "lastName": "CARTE INVITE",
    "phone": null,
    "email": "395@sodexo.com",
    "badgeNumber": "395",
    "brandId": 2158,
    "ewalletOverdraftAmount": 1000000,
    "created_at": "2023-06-09T16:40:42.000Z",
    "student": {
      "studentId": 1749852,
      "studentNumber": "395",
      "class": "BEL",
      "section": "110900",
      "subSection": null,
      "pricingRuleCode": "INVITE",
      "customerId": 2792749,
      "accountPaymentType": "POSTPAYMENT",
      "accountType": "POSTPAYMENT",
      "guestGroupId": 3207,
      "pricingRuleId": 5771
    },
    "badges": [
      {
        "badgeId": 3887136,
        "value": "395",
        "type": "classic",
        "isDefault": true
      }
    ],
    "ewalletAutoReload": false
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"customer_succeed"Machine-readable application code for the result.
messagestring"Vous pouvez accéder à ce client"Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.customerIdinteger2792749Identifier of the customer.
data.firstNamestring"LONS"The first name value.
data.lastNamestring"CARTE INVITE"The last name value.
data.phonenullnullPhone number.
data.emailstring"395@sodexo.com"Email address.
data.badgeNumberstring"395"The badge number value.
data.brandIdinteger2158Identifier of the brand.
data.ewalletOverdraftAmountinteger1000000The ewallet overdraft amount value.
data.created_atstring"2023-06-09T16:40:42.000Z"Timestamp when this resource was created.
data.studentobject{…}Object containing student fields.
data.student.studentIdinteger1749852Identifier of the associated student.
data.student.studentNumberstring"395"The student number value.
data.student.classstring"BEL"The class value.
data.student.sectionstring"110900"The section value.
data.student.subSectionnullnullThe sub section value.
data.student.pricingRuleCodestring"INVITE"The pricing rule code value.
data.student.customerIdinteger2792749Identifier of the customer.
data.student.accountPaymentTypestring"POSTPAYMENT"The account payment type value.
data.student.accountTypestring"POSTPAYMENT"The account type value.
data.student.guestGroupIdinteger3207Identifier of the associated guest group.
data.student.pricingRuleIdinteger5771Identifier of the associated pricing rule.
data.badgesarray[…]List of badges entries.
data.badges[]object{…}Object containing badges fields.
data.badges[].badgeIdinteger3887136Identifier of the associated badge.
data.badges[].valuestring"395"The value value.
data.badges[].typestring"classic"The type value.
data.badges[].isDefaultbooleantrueWhether default is enabled or applies.
data.ewalletAutoReloadbooleanfalseThe ewallet auto reload value.

Customer Channel and Badge Status

Use these read-only endpoints to decide whether a customer can use a sales channel and to retrieve every disabled or active badge associated with the customer.

GET/customers/{customerId}/channel/{channelId}Check Customer Channel Access

Checks the customer access rule for one sales channel. This does not create an order or alter the customer.

Parameters

NameTypeRequiredDescription
customerIdintegerYesCustomer whose channel access is checked.
channelIdintegerYesSales channel identifier to check.

Response

json
{
  "status": 200,
  "code": "customer_succeed",
  "message": "You can access to this customer.",
  "data": {
    "customerId": 2792749,
    "channelId": 2,
    "hasAccessToChannel": true
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"customer_succeed"Machine-readable application code for the result.
messagestring"You can access to this customer."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.customerIdinteger2792749Identifier of the customer.
data.channelIdinteger2Identifier of the associated channel.
data.hasAccessToChannelbooleantrueWhether access to channel is enabled or applies.

GET/customers/{customerId}/disabled_badgesList Customer Disabled Badges

Returns disabled badges plus the currently assigned active badge, if the customer has one. The active badge is returned with disabledAt set to null.

Parameters

NameTypeRequiredDescription
customerIdintegerYesCustomer whose badge history is retrieved.

Response

json
{
  "status": 200,
  "code": "customer_badges_succeed",
  "message": "The customer's badges have been found.",
  "data": [
    {
      "badgeNumber": "OLD-395",
      "brandId": 2158,
      "customerId": 2792749,
      "isBadgeBlocked": true,
      "disabledAt": "2026-07-01T09:00:00.000Z"
    },
    {
      "badgeNumber": "395",
      "brandId": 2158,
      "customerId": 2792749,
      "isBadgeBlocked": false,
      "disabledAt": null
    }
  ]
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"customer_badges_succeed"Machine-readable application code for the result.
messagestring"The customer's badges have been found."Human-readable result message. Do not use this value for program logic.
dataarray[…]Endpoint-specific response payload.
data[]object{…}Endpoint-specific response payload.
data[].badgeNumberstring"OLD-395"The badge number value.
data[].brandIdinteger2158Identifier of the brand.
data[].customerIdinteger2792749Identifier of the customer.
data[].isBadgeBlockedbooleantrueWhether badge blocked is enabled or applies.
data[].disabledAtstring"2026-07-01T09:00:00.000Z"Date or timestamp for disabled.

Customer Login

Authenticate a customer for a specific brand to obtain an access token. This token is required for all customer-scoped operations, such as checking balances or placing orders.

Important Scope Distinction

Unlike administrative users, a customer login must include the brandId in the request body. This ensures the authentication is performed against the correct customer database for that specific brand.

POST/oauth/loginCustomer Login

Authenticate a customer using their credentials and the brand ID. The access token is valid for 24 hours (14 days when rememberMe is true); when it expires the API responds with a 401 error (token_expired) and the customer must authenticate again.

Request Body

json
{
  "username": "alice.doe@example.com",
  "password": "SecurePassword123!",
  "grant_type": "password",
  "brandId": 100,
  "rememberMe": true
}
Request Body Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
usernamestring"alice.doe@example.com"The username value.
passwordstring"SecurePassword123!"The password value.
grant_typestring"password"The grant type value.
brandIdinteger100Identifier of the brand.
rememberMebooleantrueThe remember me value.

Response

json
{
  "access_token": "eyJhbGciOiJIUzI1...",
  "token_type": "Bearer",
  "status": 201,
  "code": "token_created",
  "message": "You have successfully logged in.",
  "data": {
    "user": {
      "userId": 5337578,
      "email": "alice.doe@example.com",
      "role": "customer",
      "brandId": 100,
      "firstName": "Alice",
      "lastName": "Doe"
    }
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
access_tokenstring"eyJhbGciOiJIUzI1..."The access token value.
token_typestring"Bearer"The token type value.
statusinteger201HTTP status code returned by the API.
codestring"token_created"Machine-readable application code for the result.
messagestring"You have successfully logged in."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.userobject{…}Object containing user fields.
data.user.userIdinteger5337578Identifier of the user.
data.user.emailstring"alice.doe@example.com"Email address.
data.user.rolestring"customer"The role value.
data.user.brandIdinteger100Identifier of the brand.
data.user.firstNamestring"Alice"The first name value.
data.user.lastNamestring"Doe"The last name value.