For the complete documentation index, see llms.txt. This page is also available as Markdown.

Customer

Customer

List customers

get
/tenants/{tenantUid}/customers

List all customers.

Authorizations
AuthorizationstringRequired

Access token recevied after user login with a deviceToken

Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
Query parameters
customerExternalIdstringOptional

External reference to a customer.

pageNumberintegerOptional

Reference to a specific page in a result set.

pageSizeintegerOptional

The number of items per page in a result set.

sortBystringOptional

Defines which field the resource list is sorted by.

sortDirectionstring · enumOptional
ENUMDescription
ASCSort in ascending order
DESCSort in descending order
Possible values:
Responses
200

CustomerListResponse

application/json
get/tenants/{tenantUid}/customers
GET /v2/tenants/{tenantUid}/customers HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

CustomerListResponse

{
  "items": [
    {
      "address": "text",
      "city": "text",
      "companyName": "text",
      "countryCode": "text",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "customerUid": "text",
      "customerParentUid": "text",
      "customerType": "COMPANY",
      "email": "text",
      "externalId": "text",
      "firstname": "text",
      "lastModifiedAt": "2026-01-01T00:00:00.000Z",
      "lastname": "text",
      "mobile": "text",
      "postalCode": "text",
      "pricelistUid": "text",
      "vatNumber": "text",
      "origin": "text",
      "addresses": [
        {
          "address": "text",
          "city": "text",
          "companyName": "text",
          "firstname": "text",
          "lastname": "text",
          "countryCode": "text",
          "email": "text",
          "phone": "text",
          "postalCode": "text",
          "type": "DELIVERY_ADDRESS",
          "customerAddressUid": "text",
          "displayName": "text"
        }
      ],
      "contacts": [
        {
          "firstname": "text",
          "lastname": "text",
          "email": "text",
          "mobile": "text",
          "createdAt": "2026-01-01T00:00:00.000Z",
          "lastModifiedAt": "2026-01-01T00:00:00.000Z",
          "customerContactUid": "text",
          "extensions": [
            {
              "extensionCode": "TWO_INVOICE",
              "organizationUid": "text"
            }
          ],
          "displayName": "text",
          "role": "ADMIN"
        }
      ],
      "extensions": [
        {
          "extensionCode": "TWO_INVOICE",
          "organizationUid": "text"
        }
      ],
      "consents": [
        {
          "consentUid": "text",
          "name": "text",
          "status": true,
          "source": "text",
          "createdAt": "2026-01-01T00:00:00.000Z"
        }
      ],
      "loyaltyId": "text",
      "displayName": "text",
      "credit": {
        "limit": 1,
        "balance": 1
      },
      "paymentTerms": 1,
      "internalNote": "text",
      "accountManager": {
        "tenantUserUid": "text",
        "displayName": "text",
        "userCode": "text"
      },
      "ehfEnabled": true,
      "ehf": {
        "enabled": true,
        "address": "text"
      },
      "customerGroupUids": [
        "text"
      ],
      "defaultStore": {
        "name": "text",
        "storeUid": "text"
      },
      "relevance": 1
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 1,
    "totalCount": 1
  }
}

Create a new customer

post
/tenants/{tenantUid}/customers

Create a new customer

Authorizations
AuthorizationstringRequired

Access token recevied after user login with a deviceToken

Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
Body
addressstringOptional
citystringOptional
companyNamestringOptional
countryCodestringOptional

ISO 3166-1: 2 characters representation of country

customerTypestring · enumRequiredPossible values:
emailstringOptional
externalIdstringOptional
firstnamestringOptional
lastnamestringOptional
ledgerNumberstringOptional

Ledger number must be a valid number with possible leading zeros

mobilestringOptional
postalCodestringOptional
vatNumberstringOptional

VAT identification number for value added tax reporting purposes.

pricelistUidstringOptionalPattern: ^[A-Za-z0-9-_]*
originstringOptional
loyaltyIdstringOptional
paymentTermsintegerOptional

Number of days to calculate due date on invoice

internalNotestringOptional
ehfEnabledbooleanOptionalDeprecated

This field is deprecated. Use ehf -> enabled instead

customerGroupUidsstring[]Optional
defaultStoreUidstringOptionalPattern: ^[A-Za-z0-9-_]+
customerParentUidstringOptional

References another customer, establishing it as a department under the main customer. Only applicable when customerType is COMPANY.

Pattern: ^[A-Za-z0-9-_]*
customerUidstringOptionalPattern: ^[A-Za-z0-9-_]+
Responses
201

Example response

application/json

CustomerResponseSchema

addressstringRequired
citystringRequired
companyNamestringRequired
countryCodestringRequired

ISO 3166-1: 2 characters representation of country

createdAtstring · date-timeRequired
customerUidstringRequiredPattern: ^[A-Za-z0-9-_]+
customerParentUidstringRequired

References another customer, establishing it as a department under the main customer. Only applicable when customerType is COMPANY.

Pattern: ^[A-Za-z0-9-_]*
customerTypestring · enumRequiredPossible values:
emailstringRequired
externalIdstringRequired
firstnamestringRequired
lastModifiedAtstring · date-timeRequired
lastnamestringRequired
ledgerNumberstringOptionalDeprecated

Deprecated. Use ledgerNumber in accountingConfigs instead

mobilestringRequired
postalCodestringRequired
pricelistUidstringRequiredPattern: ^[A-Za-z0-9-_]*
vatNumberstringRequired

VAT identification number for value added tax reporting purposes.

originstringRequired
loyaltyIdstringRequired
displayNamestringRequired
paymentTermsintegerRequired
internalNotestringRequired
ehfEnabledbooleanOptional

Deprecated: Use ehf -> enabled instead

customerGroupUidsstring[]Required
relevancenumberRequired
post/tenants/{tenantUid}/customers
POST /v2/tenants/{tenantUid}/customers HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 614

{
  "address": "text",
  "city": "text",
  "companyName": "text",
  "countryCode": "text",
  "customerType": "COMPANY",
  "email": "text",
  "externalId": "text",
  "firstname": "text",
  "lastname": "text",
  "ledgerNumber": "text",
  "mobile": "text",
  "postalCode": "text",
  "vatNumber": "text",
  "pricelistUid": "text",
  "origin": "text",
  "loyaltyId": "text",
  "credit": {
    "limit": 1
  },
  "paymentTerms": 1,
  "internalNote": "text",
  "accountManager": {
    "tenantUserUid": "text"
  },
  "customerGroupUids": [
    "text"
  ],
  "ehf": {
    "enabled": true,
    "address": "text"
  },
  "defaultStoreUid": "text",
  "customerParentUid": "text",
  "customerUid": "text",
  "consents": [
    {
      "source": "text",
      "status": true,
      "consentUid": "text"
    }
  ]
}
201

Example response

{
  "address": "text",
  "city": "text",
  "companyName": "text",
  "countryCode": "text",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "customerUid": "text",
  "customerParentUid": "text",
  "customerType": "COMPANY",
  "email": "text",
  "externalId": "text",
  "firstname": "text",
  "lastModifiedAt": "2026-01-01T00:00:00.000Z",
  "lastname": "text",
  "mobile": "text",
  "postalCode": "text",
  "pricelistUid": "text",
  "vatNumber": "text",
  "origin": "text",
  "addresses": [
    {
      "address": "text",
      "city": "text",
      "companyName": "text",
      "firstname": "text",
      "lastname": "text",
      "countryCode": "text",
      "email": "text",
      "phone": "text",
      "postalCode": "text",
      "type": "DELIVERY_ADDRESS",
      "customerAddressUid": "text",
      "displayName": "text"
    }
  ],
  "contacts": [
    {
      "firstname": "text",
      "lastname": "text",
      "email": "text",
      "mobile": "text",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "lastModifiedAt": "2026-01-01T00:00:00.000Z",
      "customerContactUid": "text",
      "extensions": [
        {
          "extensionCode": "TWO_INVOICE",
          "organizationUid": "text"
        }
      ],
      "displayName": "text",
      "role": "ADMIN"
    }
  ],
  "extensions": [
    {
      "extensionCode": "TWO_INVOICE",
      "organizationUid": "text"
    }
  ],
  "consents": [
    {
      "consentUid": "text",
      "name": "text",
      "status": true,
      "source": "text",
      "createdAt": "2026-01-01T00:00:00.000Z"
    }
  ],
  "loyaltyId": "text",
  "displayName": "text",
  "credit": {
    "limit": 1,
    "balance": 1
  },
  "paymentTerms": 1,
  "internalNote": "text",
  "accountManager": {
    "tenantUserUid": "text",
    "displayName": "text",
    "userCode": "text"
  },
  "ehfEnabled": true,
  "ehf": {
    "enabled": true,
    "address": "text"
  },
  "customerGroupUids": [
    "text"
  ],
  "defaultStore": {
    "name": "text",
    "storeUid": "text"
  },
  "relevance": 1
}

Search customers

post
/tenants/{tenantUid}/customers/search

The query field searches on: firstName, lastName, city, postalCode, companyName, mobile, email and vatNumber. If scope is not set, customer scope is used. When mobile, email or vatNumber is specified, the according field is not searched by the query field value.

Authorizations
AuthorizationstringRequired

Access token recevied after user login with a deviceToken

Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
Query parameters
pageNumberintegerOptional

Reference to a specific page in a result set.

pageSizeintegerOptional

The number of items per page in a result set.

sortBystringOptional

Defines which field the resource list is sorted by.

sortDirectionstring · enumOptional
ENUMDescription
ASCSort in ascending order
DESCSort in descending order
Possible values:
Body
exactMatchbooleanOptional
querystringOptional
mobilestringOptional
emailstringOptional
vatNumberstringOptional
storeUidstringOptionalPattern: ^[A-Za-z0-9-_]+
customerParentUidstringOptionalPattern: ^[A-Za-z0-9-_]+
createdAtstring · date-timeOptional
Responses
200

CustomerListResponse

application/json
post/tenants/{tenantUid}/customers/search
POST /v2/tenants/{tenantUid}/customers/search HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 217

{
  "exactMatch": true,
  "query": "text",
  "mobile": "text",
  "email": "text",
  "scope": [
    "CUSTOMER"
  ],
  "customerTypes": [
    "COMPANY"
  ],
  "vatNumber": "text",
  "storeUid": "text",
  "customerParentUid": "text",
  "createdAt": "2026-01-01T00:00:00.000Z"
}
200

CustomerListResponse

{
  "items": [
    {
      "address": "text",
      "city": "text",
      "companyName": "text",
      "countryCode": "text",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "customerUid": "text",
      "customerParentUid": "text",
      "customerType": "COMPANY",
      "email": "text",
      "externalId": "text",
      "firstname": "text",
      "lastModifiedAt": "2026-01-01T00:00:00.000Z",
      "lastname": "text",
      "mobile": "text",
      "postalCode": "text",
      "pricelistUid": "text",
      "vatNumber": "text",
      "origin": "text",
      "addresses": [
        {
          "address": "text",
          "city": "text",
          "companyName": "text",
          "firstname": "text",
          "lastname": "text",
          "countryCode": "text",
          "email": "text",
          "phone": "text",
          "postalCode": "text",
          "type": "DELIVERY_ADDRESS",
          "customerAddressUid": "text",
          "displayName": "text"
        }
      ],
      "contacts": [
        {
          "firstname": "text",
          "lastname": "text",
          "email": "text",
          "mobile": "text",
          "createdAt": "2026-01-01T00:00:00.000Z",
          "lastModifiedAt": "2026-01-01T00:00:00.000Z",
          "customerContactUid": "text",
          "extensions": [
            {
              "extensionCode": "TWO_INVOICE",
              "organizationUid": "text"
            }
          ],
          "displayName": "text",
          "role": "ADMIN"
        }
      ],
      "extensions": [
        {
          "extensionCode": "TWO_INVOICE",
          "organizationUid": "text"
        }
      ],
      "consents": [
        {
          "consentUid": "text",
          "name": "text",
          "status": true,
          "source": "text",
          "createdAt": "2026-01-01T00:00:00.000Z"
        }
      ],
      "loyaltyId": "text",
      "displayName": "text",
      "credit": {
        "limit": 1,
        "balance": 1
      },
      "paymentTerms": 1,
      "internalNote": "text",
      "accountManager": {
        "tenantUserUid": "text",
        "displayName": "text",
        "userCode": "text"
      },
      "ehfEnabled": true,
      "ehf": {
        "enabled": true,
        "address": "text"
      },
      "customerGroupUids": [
        "text"
      ],
      "defaultStore": {
        "name": "text",
        "storeUid": "text"
      },
      "relevance": 1
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 1,
    "totalCount": 1
  }
}

External search for customers

post
/tenants/{tenantUid}/customers/search/external

External search for customers

Authorizations
AuthorizationstringRequired

Access token recevied after user login with a deviceToken

Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
Query parameters
pageNumberintegerOptional

Reference to a specific page in a result set.

pageSizeintegerOptional

The number of items per page in a result set.

sortBystringOptional

Defines which field the resource list is sorted by.

sortDirectionstring · enumOptional
ENUMDescription
ASCSort in ascending order
DESCSort in descending order
Possible values:
Body
querystringOptional
Responses
200

CustomerExternalListResponse

application/json
post/tenants/{tenantUid}/customers/search/external
POST /v2/tenants/{tenantUid}/customers/search/external HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 16

{
  "query": "text"
}
200

CustomerExternalListResponse

{
  "items": [
    {
      "address": "text",
      "city": "text",
      "companyName": "text",
      "countryCode": "text",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "customerUid": "text",
      "customerType": "COMPANY",
      "email": "text",
      "externalId": "text",
      "firstname": "text",
      "lastModifiedAt": "2026-01-01T00:00:00.000Z",
      "lastname": "text",
      "ledgerNumber": "text",
      "mobile": "text",
      "postalCode": "text",
      "pricelistUid": "text",
      "vatNumber": "text",
      "origin": "text"
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 1,
    "totalCount": 1
  }
}

Export customer data in structured form. JSON is the only available format now

get
/tenants/{tenantUid}/customers/{customerUid}/export

Intended for GDPR Compliance Export customer data in structured form. JSON is the only available format now \

Authorizations
AuthorizationstringRequired

Access token recevied after user login with a deviceToken

Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
customerUidstringRequired

Reference to a Customer.

Pattern: ^[A-Za-z0-9-_]+
Responses
200

Example response

Customer information with associated orders and services

get/tenants/{tenantUid}/customers/{customerUid}/export
GET /v2/tenants/{tenantUid}/customers/{customerUid}/export HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Example response

{
  "customer": {
    "address": "text",
    "city": "text",
    "companyName": "text",
    "countryCode": "text",
    "createdAt": "2026-01-01T00:00:00.000Z",
    "customerUid": "text",
    "customerParentUid": "text",
    "customerType": "COMPANY",
    "email": "text",
    "externalId": "text",
    "firstname": "text",
    "lastModifiedAt": "2026-01-01T00:00:00.000Z",
    "lastname": "text",
    "mobile": "text",
    "postalCode": "text",
    "pricelistUid": "text",
    "vatNumber": "text",
    "origin": "text",
    "addresses": [
      {
        "address": "text",
        "city": "text",
        "companyName": "text",
        "firstname": "text",
        "lastname": "text",
        "countryCode": "text",
        "email": "text",
        "phone": "text",
        "postalCode": "text",
        "type": "DELIVERY_ADDRESS",
        "customerAddressUid": "text",
        "displayName": "text"
      }
    ],
    "contacts": [
      {
        "firstname": "text",
        "lastname": "text",
        "email": "text",
        "mobile": "text",
        "createdAt": "2026-01-01T00:00:00.000Z",
        "lastModifiedAt": "2026-01-01T00:00:00.000Z",
        "customerContactUid": "text",
        "extensions": [
          {
            "extensionCode": "TWO_INVOICE",
            "organizationUid": "text"
          }
        ],
        "displayName": "text",
        "role": "ADMIN"
      }
    ],
    "extensions": [
      {
        "extensionCode": "TWO_INVOICE",
        "organizationUid": "text"
      }
    ],
    "consents": [
      {
        "consentUid": "text",
        "name": "text",
        "status": true,
        "source": "text",
        "createdAt": "2026-01-01T00:00:00.000Z"
      }
    ],
    "loyaltyId": "text",
    "displayName": "text",
    "credit": {
      "limit": 1,
      "balance": 1
    },
    "paymentTerms": 1,
    "internalNote": "text",
    "accountManager": {
      "tenantUserUid": "text",
      "displayName": "text",
      "userCode": "text"
    },
    "ehfEnabled": true,
    "ehf": {
      "enabled": true,
      "address": "text"
    },
    "customerGroupUids": [
      "text"
    ],
    "defaultStore": {
      "name": "text",
      "storeUid": "text"
    },
    "relevance": 1
  },
  "orders": [
    {
      "createdAt": "2026-01-01T00:00:00.000Z",
      "customerAddress": {
        "address": "text",
        "city": "text",
        "companyName": "text",
        "countryCode": "text",
        "email": "text",
        "firstname": "text",
        "lastname": "text",
        "mobile": "text",
        "postalCode": "text",
        "vatNumber": "text",
        "displayName": "text"
      },
      "customerUid": "text",
      "customerContact": {
        "customerContactUid": "text",
        "firstname": "text",
        "lastname": "text",
        "email": "text",
        "mobile": "text",
        "displayName": "text"
      },
      "deliveryState": "NOT_STARTED",
      "externalOrderNumber": "text",
      "externalVoucherNumber": "text",
      "invoiceAddress": {
        "address": "text",
        "city": "text",
        "companyName": "text",
        "countryCode": "text",
        "email": "text",
        "mobile": "text",
        "firstname": "text",
        "lastname": "text",
        "postalCode": "text",
        "displayName": "text",
        "customerAddressUid": "text"
      },
      "items": [
        {
          "actions": [
            {
              "comment": "text",
              "createdAt": "2026-01-01T00:00:00.000Z",
              "createdBy": "text",
              "handlingActionUid": "text",
              "handlingActionName": "text",
              "handlingDescription": "text",
              "handlingUid": "text",
              "handlingName": "text",
              "lastModifiedAt": "2026-01-01T00:00:00.000Z",
              "lastModifiedBy": "text",
              "orderHandlingActionUid": "text"
            }
          ],
          "allowedActions": [
            "QUANTITY_SOLD"
          ],
          "createdAt": "2026-01-01T00:00:00.000Z",
          "discountReasonCode": "text",
          "externalId": "text",
          "itemCost": 1,
          "itemDiscountAmount": 1,
          "itemDiscountPercentage": 1,
          "itemGrossProfitAmount": 1,
          "itemGrossProfitPercentage": 1,
          "itemPrice": 1,
          "itemVatAmount": 1,
          "lastModifiedAt": "2026-01-01T00:00:00.000Z",
          "ledgerNumber": "text",
          "name": "text",
          "note": "text",
          "orderItemUid": "text",
          "orderLinks": [
            {
              "orderUid": "text",
              "orderItemUid": "text",
              "orderNumber": "text",
              "storeUid": "text",
              "type": "CREDIT"
            }
          ],
          "originalItemPrice": 1,
          "productUid": "text",
          "productType": "STOCK",
          "properties": [
            {
              "uid": "text",
              "key": "text",
              "value": "text"
            }
          ],
          "quantityCredited": 1,
          "quantityDelivered": 1,
          "quantityOrdered": 1,
          "quantityReserved": 1,
          "returnReasonCode": "text",
          "serialnumber": "text",
          "sku": "text",
          "sortOrder": 1,
          "tenantUserDisplayName": "text",
          "tenantUserUid": "text",
          "totalCost": 1,
          "totalDiscountAmount": 1,
          "totalGrossProfitAmount": 1,
          "totalPrice": 1,
          "totalVatAmount": 1,
          "vatCodeUid": "text",
          "warehouseUid": "text",
          "warehouseName": "text",
          "internalInfo": "text",
          "productProperties": [
            {
              "productPropertyUid": "text",
              "propertyName": "text",
              "propertyOptionName": "text",
              "propertyType": "TEXT",
              "propertyText": "text",
              "propertyUid": "text",
              "propertyOptionUid": "text",
              "required": true
            }
          ],
          "coverImage": {
            "productMediaUid": "text",
            "mainUrl": "text",
            "thumbnailUrl": "text"
          },
          "deliveryUid": "text",
          "compensationReasonCode": "text",
          "orderReceiptUid": "text",
          "allowDelivery": "YES",
          "allowDeliveryFromDate": "2026-01-01T00:00:00.000Z",
          "reservationType": "NONE",
          "reservationDetails": {
            "warehouse": {
              "warehouseName": "text"
            },
            "purchaseOrder": {
              "purchaseOrderUid": "text",
              "purchaseOrderItemUid": "text",
              "expectedDeliveryDate": "2026-01-01T00:00:00.000Z",
              "purchaseOrderNumber": "text",
              "quantityOrdered": 1,
              "externalId": "text"
            },
            "receivement": {
              "receivementUid": "text",
              "receivementItemUid": "text",
              "expectedArrival": "2026-01-01T00:00:00.000Z",
              "expectedDispatch": "2026-01-01T00:00:00.000Z",
              "quantity": 1,
              "supplierOrderReference": "text",
              "receivedAt": "2026-01-01T00:00:00.000Z"
            }
          },
          "gtins": [
            {
              "gtin": "text",
              "primary": true,
              "type": "text"
            }
          ]
        }
      ],
      "lastModifiedAt": "2026-01-01T00:00:00.000Z",
      "note": "text",
      "internalNote": "text",
      "orderUid": "text",
      "orderNumber": "text",
      "orderDate": "2026-01-01T00:00:00.000Z",
      "orderState": "OPEN",
      "orderTotals": {
        "costTotal": 1,
        "grandTotal": 1,
        "grossProfitAmount": 1,
        "grossProfitPercentage": 1,
        "specifiedVat": [
          {
            "vatAmount": 1,
            "vatDescription": "text",
            "vatRate": 1
          }
        ],
        "subtotal": 1,
        "totalDiscount": 1,
        "totalVat": 1
      },
      "orderhandlingState": "NOT_STARTED",
      "orderhandlings": [
        {
          "active": true,
          "createdAt": "2026-01-01T00:00:00.000Z",
          "createdBy": "text",
          "description": "text",
          "handlingUid": "text",
          "lastModifiedAt": "2026-01-01T00:00:00.000Z",
          "lastModifiedBy": "text",
          "name": "text",
          "orderHandlingUid": "text",
          "state": "NOT_STARTED"
        }
      ],
      "settleState": "NOT_STARTED",
      "settledAt": "2026-01-01T00:00:00.000Z",
      "settlementTotals": {
        "change": 1,
        "remaining": 1,
        "remainingRounded": 1,
        "totals": 1,
        "remainingPrePayment": 1,
        "remainingAuthorizedAmount": 1
      },
      "settlements": [
        {
          "amount": 1,
          "createdAt": "2026-01-01T00:00:00.000Z",
          "displayMessages": [
            {
              "key": "text",
              "message": "text",
              "timestamp": "2026-01-01T00:00:00.000Z"
            }
          ],
          "externalId": "text",
          "externalPaymentReference": "text",
          "idMethod": "NO_CVM_RULE_PERFORMED",
          "lastModifiedAt": "2026-01-01T00:00:00.000Z",
          "ledgerNumber": "text",
          "ledgerType": "LEDGER",
          "parameters": [
            {
              "key": "text",
              "value": "text",
              "name": "text",
              "type": "TEXT"
            }
          ],
          "settledAt": "2026-01-01T00:00:00.000Z",
          "settlementCode": "text",
          "settlementUid": "text",
          "settlementName": "text",
          "state": "NOT_STARTED",
          "status": "NEW",
          "storeSettlementIssuer": {
            "storeSettlementIssuerUid": "text",
            "name": "text",
            "code": "text"
          },
          "tenantUserDisplayName": "text",
          "tenantUserUid": "text",
          "storePaymentMethodUid": "text",
          "currency": {
            "amount": 1,
            "code": "text",
            "exchangeRate": 1
          },
          "additionalDetails": [
            {
              "key": "text",
              "value": "text"
            }
          ],
          "creditCount": 1,
          "creditAmount": 1,
          "paymentCount": 1,
          "paymentAmount": 1,
          "tillUid": "text",
          "tillName": "text",
          "tillNumber": 1,
          "storeUid": "text",
          "storeName": "text",
          "orderReceiptUid": "text",
          "authorizedAmount": 1,
          "capturedAmount": 1,
          "refundedAmount": 1,
          "receiptText": "text",
          "transactions": [
            {
              "transactionType": "text",
              "pspTransactionId": "text",
              "transactionAmount": 1,
              "orderReceiptUid": "text"
            }
          ]
        }
      ],
      "storeUid": "text",
      "storeName": "text",
      "systemOrigin": "text",
      "tenantUserDisplayName": "text",
      "tenantUserUid": "text",
      "tillUid": "text",
      "type": "OFFER",
      "validUntil": "2026-01-01T00:00:00.000Z",
      "vatFree": true,
      "vatPrint": "SUM",
      "voucherNumber": "text",
      "deliveryDate": "2026-01-01",
      "discounts": [
        {
          "orderDiscountUid": "text",
          "discountCode": "text",
          "type": "PERCENTAGE",
          "amount": 1,
          "name": "text",
          "origin": "LOYALTY",
          "validTo": "2026-01-01T00:00:00.000Z",
          "maxUsage": 1,
          "productSkus": [
            "text"
          ],
          "orderItemUids": [
            "text"
          ],
          "externalTransactionId": "text",
          "scope": "WHOLE_ORDER",
          "discountReasonCode": "text",
          "discountReference": "text",
          "createdAt": "2026-01-01T00:00:00.000Z",
          "createdBy": "text",
          "lastModifiedAt": "2026-01-01T00:00:00.000Z",
          "lastModifiedBy": "text",
          "campaignUid": "text"
        }
      ],
      "compensationReasonUid": "text",
      "lastModifiedBy": "text",
      "allowedActions": []
    }
  ],
  "services": [
    {
      "serviceOrderUid": "text",
      "tenantUid": "text",
      "storeUid": "text",
      "orderProductLineUid": "text",
      "orderUid": "text",
      "customerUid": "text",
      "createdFromStoreUid": "text",
      "assignedUserUid": "text",
      "assignedUserDisplayName": "text",
      "serviceTypeUid": "text",
      "serviceTypeName": "text",
      "serviceStatusUid": "text",
      "serviceStatusName": "text",
      "serviceState": "NOT_STARTED",
      "title": "text",
      "serviceNumber": "text",
      "externalServiceNumber": "text",
      "description": "text",
      "locationLabel": "text",
      "priority": "NONE",
      "requiresPriceEstimate": true,
      "estimatedPrice": 1,
      "maxPrice": 1,
      "readyAtEstimate": "2026-01-01T00:00:00.000Z",
      "readyAtNeeded": "2026-01-01T00:00:00.000Z",
      "publicPageHash": "text",
      "warranty": true,
      "createdAt": "2026-01-01T00:00:00.000Z",
      "createdBy": "text",
      "lastModifiedAt": "2026-01-01T00:00:00.000Z",
      "lastModifiedBy": "text",
      "totals": {
        "grandTotal": 1,
        "partsTotal": 1,
        "workTotal": 1
      },
      "items": [
        {
          "serviceOrderItemUid": "text",
          "serviceOrderUid": "text",
          "warehouseUid": "text",
          "tenantUserUid": "text",
          "productUid": "text",
          "salesOrderUid": "text",
          "quantity": 1,
          "name": "text",
          "sku": "text",
          "price": 1,
          "costPrice": 1,
          "originalPrice": 1,
          "totalPrice": 1,
          "totalCostPrice": 1,
          "serialNumber": "text",
          "note": "text",
          "tenantUserDisplayName": "text",
          "createdAt": "2026-01-01T00:00:00.000Z",
          "createdBy": "text",
          "lastModifiedAt": "2026-01-01T00:00:00.000Z",
          "lastModifiedBy": "text"
        }
      ],
      "assets": [
        {
          "assetUid": "text",
          "name": "text",
          "description": "text",
          "isPublic": true,
          "publicUrl": "text",
          "mimeType": "text"
        }
      ],
      "rmaOrderItemUid": "text",
      "rmaOrderUid": "text"
    }
  ]
}

Print customer membership card

post
/tenants/{tenantUid}/customers/{customerUid}/print

Print a label or a receipt with a barcode that can be used to scan for easy customer registration

Authorizations
AuthorizationstringRequired

Access token recevied after user login with a deviceToken

Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
customerUidstringRequired

Reference to a Customer.

Pattern: ^[A-Za-z0-9-_]+
Body
printerUidstringOptionalPattern: ^[A-Za-z0-9-_]+
Responses
204

No Content

No content

post/tenants/{tenantUid}/customers/{customerUid}/print
POST /v2/tenants/{tenantUid}/customers/{customerUid}/print HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 21

{
  "printerUid": "text"
}
204

No Content

No content

Get customer details

get
/tenants/{tenantUid}/customers/{customerUid}

Get details for a customer.

Authorizations
AuthorizationstringRequired

Access token recevied after user login with a deviceToken

Path parameters
customerUidstringRequired

Reference to a Customer.

Pattern: ^[A-Za-z0-9-_]+
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
Responses
200

Example response

application/json

CustomerResponseSchema

addressstringRequired
citystringRequired
companyNamestringRequired
countryCodestringRequired

ISO 3166-1: 2 characters representation of country

createdAtstring · date-timeRequired
customerUidstringRequiredPattern: ^[A-Za-z0-9-_]+
customerParentUidstringRequired

References another customer, establishing it as a department under the main customer. Only applicable when customerType is COMPANY.

Pattern: ^[A-Za-z0-9-_]*
customerTypestring · enumRequiredPossible values:
emailstringRequired
externalIdstringRequired
firstnamestringRequired
lastModifiedAtstring · date-timeRequired
lastnamestringRequired
ledgerNumberstringOptionalDeprecated

Deprecated. Use ledgerNumber in accountingConfigs instead

mobilestringRequired
postalCodestringRequired
pricelistUidstringRequiredPattern: ^[A-Za-z0-9-_]*
vatNumberstringRequired

VAT identification number for value added tax reporting purposes.

originstringRequired
loyaltyIdstringRequired
displayNamestringRequired
paymentTermsintegerRequired
internalNotestringRequired
ehfEnabledbooleanOptional

Deprecated: Use ehf -> enabled instead

customerGroupUidsstring[]Required
relevancenumberRequired
get/tenants/{tenantUid}/customers/{customerUid}
GET /v2/tenants/{tenantUid}/customers/{customerUid} HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Example response

{
  "address": "text",
  "city": "text",
  "companyName": "text",
  "countryCode": "text",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "customerUid": "text",
  "customerParentUid": "text",
  "customerType": "COMPANY",
  "email": "text",
  "externalId": "text",
  "firstname": "text",
  "lastModifiedAt": "2026-01-01T00:00:00.000Z",
  "lastname": "text",
  "mobile": "text",
  "postalCode": "text",
  "pricelistUid": "text",
  "vatNumber": "text",
  "origin": "text",
  "addresses": [
    {
      "address": "text",
      "city": "text",
      "companyName": "text",
      "firstname": "text",
      "lastname": "text",
      "countryCode": "text",
      "email": "text",
      "phone": "text",
      "postalCode": "text",
      "type": "DELIVERY_ADDRESS",
      "customerAddressUid": "text",
      "displayName": "text"
    }
  ],
  "contacts": [
    {
      "firstname": "text",
      "lastname": "text",
      "email": "text",
      "mobile": "text",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "lastModifiedAt": "2026-01-01T00:00:00.000Z",
      "customerContactUid": "text",
      "extensions": [
        {
          "extensionCode": "TWO_INVOICE",
          "organizationUid": "text"
        }
      ],
      "displayName": "text",
      "role": "ADMIN"
    }
  ],
  "extensions": [
    {
      "extensionCode": "TWO_INVOICE",
      "organizationUid": "text"
    }
  ],
  "consents": [
    {
      "consentUid": "text",
      "name": "text",
      "status": true,
      "source": "text",
      "createdAt": "2026-01-01T00:00:00.000Z"
    }
  ],
  "loyaltyId": "text",
  "displayName": "text",
  "credit": {
    "limit": 1,
    "balance": 1
  },
  "paymentTerms": 1,
  "internalNote": "text",
  "accountManager": {
    "tenantUserUid": "text",
    "displayName": "text",
    "userCode": "text"
  },
  "ehfEnabled": true,
  "ehf": {
    "enabled": true,
    "address": "text"
  },
  "customerGroupUids": [
    "text"
  ],
  "defaultStore": {
    "name": "text",
    "storeUid": "text"
  },
  "relevance": 1
}

Update customer details

put
/tenants/{tenantUid}/customers/{customerUid}

Partial updates are allowed.

Authorizations
AuthorizationstringRequired

Access token recevied after user login with a deviceToken

Path parameters
customerUidstringRequired

Reference to a Customer.

Pattern: ^[A-Za-z0-9-_]+
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
Body
addressstringOptional
citystringOptional
companyNamestringOptional
countryCodestringOptional

ISO 3166-1: 2 characters representation of country

customerTypestring · enumOptionalPossible values:
emailstringOptional
externalIdstringOptional
firstnamestringOptional
lastnamestringOptional
ledgerNumberstringOptional

Ledger number must be a valid number with possible leading zeros

mobilestringOptional
postalCodestringOptional
vatNumberstringOptional

VAT identification number for value added tax reporting purposes.

pricelistUidstringOptionalPattern: ^[A-Za-z0-9-_]*
originstringOptional
loyaltyIdstringOptional
paymentTermsintegerOptional

Number of days to calculate due date on invoice

internalNotestringOptional
ehfEnabledbooleanOptionalDeprecated

This field is deprecated. Use ehf -> enabled instead

customerGroupUidsstring[]Optional
defaultStoreUidstringOptionalPattern: ^[A-Za-z0-9-_]+
customerParentUidstringOptional

References another customer, establishing it as a department under the main customer. Only applicable when customerType is COMPANY.

Pattern: ^[A-Za-z0-9-_]*
Responses
200

Example response

application/json

CustomerResponseSchema

addressstringRequired
citystringRequired
companyNamestringRequired
countryCodestringRequired

ISO 3166-1: 2 characters representation of country

createdAtstring · date-timeRequired
customerUidstringRequiredPattern: ^[A-Za-z0-9-_]+
customerParentUidstringRequired

References another customer, establishing it as a department under the main customer. Only applicable when customerType is COMPANY.

Pattern: ^[A-Za-z0-9-_]*
customerTypestring · enumRequiredPossible values:
emailstringRequired
externalIdstringRequired
firstnamestringRequired
lastModifiedAtstring · date-timeRequired
lastnamestringRequired
ledgerNumberstringOptionalDeprecated

Deprecated. Use ledgerNumber in accountingConfigs instead

mobilestringRequired
postalCodestringRequired
pricelistUidstringRequiredPattern: ^[A-Za-z0-9-_]*
vatNumberstringRequired

VAT identification number for value added tax reporting purposes.

originstringRequired
loyaltyIdstringRequired
displayNamestringRequired
paymentTermsintegerRequired
internalNotestringRequired
ehfEnabledbooleanOptional

Deprecated: Use ehf -> enabled instead

customerGroupUidsstring[]Required
relevancenumberRequired
put/tenants/{tenantUid}/customers/{customerUid}
PUT /v2/tenants/{tenantUid}/customers/{customerUid} HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 528

{
  "address": "text",
  "city": "text",
  "companyName": "text",
  "countryCode": "text",
  "customerType": "COMPANY",
  "email": "text",
  "externalId": "text",
  "firstname": "text",
  "lastname": "text",
  "ledgerNumber": "text",
  "mobile": "text",
  "postalCode": "text",
  "vatNumber": "text",
  "pricelistUid": "text",
  "origin": "text",
  "loyaltyId": "text",
  "credit": {
    "limit": 1
  },
  "paymentTerms": 1,
  "internalNote": "text",
  "accountManager": {
    "tenantUserUid": "text"
  },
  "customerGroupUids": [
    "text"
  ],
  "ehf": {
    "enabled": true,
    "address": "text"
  },
  "defaultStoreUid": "text",
  "customerParentUid": "text"
}
200

Example response

{
  "address": "text",
  "city": "text",
  "companyName": "text",
  "countryCode": "text",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "customerUid": "text",
  "customerParentUid": "text",
  "customerType": "COMPANY",
  "email": "text",
  "externalId": "text",
  "firstname": "text",
  "lastModifiedAt": "2026-01-01T00:00:00.000Z",
  "lastname": "text",
  "mobile": "text",
  "postalCode": "text",
  "pricelistUid": "text",
  "vatNumber": "text",
  "origin": "text",
  "addresses": [
    {
      "address": "text",
      "city": "text",
      "companyName": "text",
      "firstname": "text",
      "lastname": "text",
      "countryCode": "text",
      "email": "text",
      "phone": "text",
      "postalCode": "text",
      "type": "DELIVERY_ADDRESS",
      "customerAddressUid": "text",
      "displayName": "text"
    }
  ],
  "contacts": [
    {
      "firstname": "text",
      "lastname": "text",
      "email": "text",
      "mobile": "text",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "lastModifiedAt": "2026-01-01T00:00:00.000Z",
      "customerContactUid": "text",
      "extensions": [
        {
          "extensionCode": "TWO_INVOICE",
          "organizationUid": "text"
        }
      ],
      "displayName": "text",
      "role": "ADMIN"
    }
  ],
  "extensions": [
    {
      "extensionCode": "TWO_INVOICE",
      "organizationUid": "text"
    }
  ],
  "consents": [
    {
      "consentUid": "text",
      "name": "text",
      "status": true,
      "source": "text",
      "createdAt": "2026-01-01T00:00:00.000Z"
    }
  ],
  "loyaltyId": "text",
  "displayName": "text",
  "credit": {
    "limit": 1,
    "balance": 1
  },
  "paymentTerms": 1,
  "internalNote": "text",
  "accountManager": {
    "tenantUserUid": "text",
    "displayName": "text",
    "userCode": "text"
  },
  "ehfEnabled": true,
  "ehf": {
    "enabled": true,
    "address": "text"
  },
  "customerGroupUids": [
    "text"
  ],
  "defaultStore": {
    "name": "text",
    "storeUid": "text"
  },
  "relevance": 1
}

Delete a customer

delete
/tenants/{tenantUid}/customers/{customerUid}

Deletes a customer.

Required permissions: CUSTOMER

Authorizations
AuthorizationstringRequired

Access token recevied after user login with a deviceToken

Path parameters
customerUidstringRequired

Reference to a Customer.

Pattern: ^[A-Za-z0-9-_]+
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
Responses
204

No Content

No content

delete/tenants/{tenantUid}/customers/{customerUid}
DELETE /v2/tenants/{tenantUid}/customers/{customerUid} HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
204

No Content

No content

Add an extension to a customer

post
/tenants/{tenantUid}/customers/{customerUid}/extensions/{customerExtensionCode}

Add an extension to a customer

Required permissions: CUSTOMER

Authorizations
AuthorizationstringRequired

Access token recevied after user login with a deviceToken

Path parameters
customerUidstringRequired

Reference to a Customer.

Pattern: ^[A-Za-z0-9-_]+
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
customerExtensionCodestring · enumRequired
ENUMDescription
TWO_INVOICEThe Two Invoice extension.
KLAVIYO_PROFILE_IDKlaviyo profile ID
Possible values:
Body
storeUidstringRequiredPattern: ^[A-Za-z0-9-_]+
Responses
200

Example response

application/json

CustomerResponseSchema

addressstringRequired
citystringRequired
companyNamestringRequired
countryCodestringRequired

ISO 3166-1: 2 characters representation of country

createdAtstring · date-timeRequired
customerUidstringRequiredPattern: ^[A-Za-z0-9-_]+
customerParentUidstringRequired

References another customer, establishing it as a department under the main customer. Only applicable when customerType is COMPANY.

Pattern: ^[A-Za-z0-9-_]*
customerTypestring · enumRequiredPossible values:
emailstringRequired
externalIdstringRequired
firstnamestringRequired
lastModifiedAtstring · date-timeRequired
lastnamestringRequired
ledgerNumberstringOptionalDeprecated

Deprecated. Use ledgerNumber in accountingConfigs instead

mobilestringRequired
postalCodestringRequired
pricelistUidstringRequiredPattern: ^[A-Za-z0-9-_]*
vatNumberstringRequired

VAT identification number for value added tax reporting purposes.

originstringRequired
loyaltyIdstringRequired
displayNamestringRequired
paymentTermsintegerRequired
internalNotestringRequired
ehfEnabledbooleanOptional

Deprecated: Use ehf -> enabled instead

customerGroupUidsstring[]Required
relevancenumberRequired
post/tenants/{tenantUid}/customers/{customerUid}/extensions/{customerExtensionCode}
POST /v2/tenants/{tenantUid}/customers/{customerUid}/extensions/{customerExtensionCode} HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 19

{
  "storeUid": "text"
}
200

Example response

{
  "address": "text",
  "city": "text",
  "companyName": "text",
  "countryCode": "text",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "customerUid": "text",
  "customerParentUid": "text",
  "customerType": "COMPANY",
  "email": "text",
  "externalId": "text",
  "firstname": "text",
  "lastModifiedAt": "2026-01-01T00:00:00.000Z",
  "lastname": "text",
  "mobile": "text",
  "postalCode": "text",
  "pricelistUid": "text",
  "vatNumber": "text",
  "origin": "text",
  "addresses": [
    {
      "address": "text",
      "city": "text",
      "companyName": "text",
      "firstname": "text",
      "lastname": "text",
      "countryCode": "text",
      "email": "text",
      "phone": "text",
      "postalCode": "text",
      "type": "DELIVERY_ADDRESS",
      "customerAddressUid": "text",
      "displayName": "text"
    }
  ],
  "contacts": [
    {
      "firstname": "text",
      "lastname": "text",
      "email": "text",
      "mobile": "text",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "lastModifiedAt": "2026-01-01T00:00:00.000Z",
      "customerContactUid": "text",
      "extensions": [
        {
          "extensionCode": "TWO_INVOICE",
          "organizationUid": "text"
        }
      ],
      "displayName": "text",
      "role": "ADMIN"
    }
  ],
  "extensions": [
    {
      "extensionCode": "TWO_INVOICE",
      "organizationUid": "text"
    }
  ],
  "consents": [
    {
      "consentUid": "text",
      "name": "text",
      "status": true,
      "source": "text",
      "createdAt": "2026-01-01T00:00:00.000Z"
    }
  ],
  "loyaltyId": "text",
  "displayName": "text",
  "credit": {
    "limit": 1,
    "balance": 1
  },
  "paymentTerms": 1,
  "internalNote": "text",
  "accountManager": {
    "tenantUserUid": "text",
    "displayName": "text",
    "userCode": "text"
  },
  "ehfEnabled": true,
  "ehf": {
    "enabled": true,
    "address": "text"
  },
  "customerGroupUids": [
    "text"
  ],
  "defaultStore": {
    "name": "text",
    "storeUid": "text"
  },
  "relevance": 1
}

Delete an extension to a customer

delete
/tenants/{tenantUid}/customers/{customerUid}/extensions/{customerExtensionCode}

Delete an extension to a customer

Required permissions: CUSTOMER

Authorizations
AuthorizationstringRequired

Access token recevied after user login with a deviceToken

Path parameters
customerUidstringRequired

Reference to a Customer.

Pattern: ^[A-Za-z0-9-_]+
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
customerExtensionCodestring · enumRequired
ENUMDescription
TWO_INVOICEThe Two Invoice extension.
KLAVIYO_PROFILE_IDKlaviyo profile ID
Possible values:
Body
storeUidstringRequiredPattern: ^[A-Za-z0-9-_]+
Responses
204

No Content

No content

delete/tenants/{tenantUid}/customers/{customerUid}/extensions/{customerExtensionCode}
DELETE /v2/tenants/{tenantUid}/customers/{customerUid}/extensions/{customerExtensionCode} HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 19

{
  "storeUid": "text"
}
204

No Content

No content

BATCH Create customers

post
/tenants/{tenantUid}/customers/batch

Creates customers Items in:

  • create : will be created.

  • update : will be updated.

  • delete: will be deleted.

  • upsert: will create or update if needed.

The response http status is either:

  • 200: all items in request was processed successfully,

  • 207: one or more item was processed with an error.

Required permissions: CUSTOMER

Authorizations
AuthorizationstringRequired

Access token recevied after user login with a deviceToken

Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
Body
Responses
200

Example response

application/json
post/tenants/{tenantUid}/customers/batch
POST /v2/tenants/{tenantUid}/customers/batch HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1913

{
  "create": [
    {
      "address": "text",
      "city": "text",
      "companyName": "text",
      "countryCode": "text",
      "customerType": "COMPANY",
      "email": "text",
      "externalId": "text",
      "firstname": "text",
      "lastname": "text",
      "ledgerNumber": "text",
      "mobile": "text",
      "postalCode": "text",
      "vatNumber": "text",
      "pricelistUid": "text",
      "origin": "text",
      "loyaltyId": "text",
      "credit": {
        "limit": 1
      },
      "paymentTerms": 1,
      "internalNote": "text",
      "accountManager": {
        "tenantUserUid": "text"
      },
      "customerGroupUids": [
        "text"
      ],
      "ehf": {
        "enabled": true,
        "address": "text"
      },
      "defaultStoreUid": "text",
      "customerParentUid": "text",
      "customerUid": "text",
      "consents": [
        {
          "source": "text",
          "status": true,
          "consentUid": "text"
        }
      ]
    }
  ],
  "delete": [
    {
      "customerUid": "text"
    }
  ],
  "update": [
    {
      "address": "text",
      "city": "text",
      "companyName": "text",
      "countryCode": "text",
      "customerType": "COMPANY",
      "email": "text",
      "externalId": "text",
      "firstname": "text",
      "lastname": "text",
      "ledgerNumber": "text",
      "mobile": "text",
      "postalCode": "text",
      "vatNumber": "text",
      "pricelistUid": "text",
      "origin": "text",
      "loyaltyId": "text",
      "credit": {
        "limit": 1
      },
      "paymentTerms": 1,
      "internalNote": "text",
      "accountManager": {
        "tenantUserUid": "text"
      },
      "customerGroupUids": [
        "text"
      ],
      "ehf": {
        "enabled": true,
        "address": "text"
      },
      "defaultStoreUid": "text",
      "customerParentUid": "text",
      "customerUid": "text",
      "consents": [
        {
          "source": "text",
          "status": true,
          "consentUid": "text"
        }
      ]
    }
  ],
  "upsert": [
    {
      "address": "text",
      "city": "text",
      "companyName": "text",
      "countryCode": "text",
      "customerType": "COMPANY",
      "email": "text",
      "externalId": "text",
      "firstname": "text",
      "lastname": "text",
      "ledgerNumber": "text",
      "mobile": "text",
      "postalCode": "text",
      "vatNumber": "text",
      "pricelistUid": "text",
      "origin": "text",
      "loyaltyId": "text",
      "credit": {
        "limit": 1
      },
      "paymentTerms": 1,
      "internalNote": "text",
      "accountManager": {
        "tenantUserUid": "text"
      },
      "customerGroupUids": [
        "text"
      ],
      "ehf": {
        "enabled": true,
        "address": "text"
      },
      "defaultStoreUid": "text",
      "customerParentUid": "text",
      "customerUid": "text",
      "consents": [
        {
          "source": "text",
          "status": true,
          "consentUid": "text"
        }
      ]
    }
  ]
}
{
  "create": {
    "errors": [
      {
        "errorCode": "text",
        "message": "text",
        "customerUid": "text"
      }
    ],
    "success": 1
  },
  "delete": {
    "errors": [
      {
        "errorCode": "text",
        "message": "text",
        "customerUid": "text"
      }
    ],
    "success": 1
  },
  "update": {
    "errors": [
      {
        "errorCode": "text",
        "message": "text",
        "customerUid": "text"
      }
    ],
    "success": 1
  },
  "upsert": {
    "errors": [
      {
        "errorCode": "text",
        "message": "text",
        "customerUid": "text"
      }
    ],
    "success": 1
  }
}

Get customer details for a store

get
/tenants/{tenantUid}/stores/{storeUid}/customers/{customerUid}

Return a complete customer with store specific details.

Authorizations
AuthorizationstringRequired

Access token recevied after user login with a deviceToken

Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
storeUidstringRequired

Reference to a Store.

Pattern: ^[A-Za-z0-9-_]+
customerUidstringRequired

Reference to a Customer.

Pattern: ^[A-Za-z0-9-_]+
Responses
200

Example response

application/json

StoreCustomerDetailsResponseSchema

get/tenants/{tenantUid}/stores/{storeUid}/customers/{customerUid}
GET /v2/tenants/{tenantUid}/stores/{storeUid}/customers/{customerUid} HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Example response

{
  "customer": {
    "address": "text",
    "city": "text",
    "companyName": "text",
    "countryCode": "text",
    "createdAt": "2026-01-01T00:00:00.000Z",
    "customerUid": "text",
    "customerParentUid": "text",
    "customerType": "COMPANY",
    "email": "text",
    "externalId": "text",
    "firstname": "text",
    "lastModifiedAt": "2026-01-01T00:00:00.000Z",
    "lastname": "text",
    "mobile": "text",
    "postalCode": "text",
    "pricelistUid": "text",
    "vatNumber": "text",
    "origin": "text",
    "addresses": [
      {
        "address": "text",
        "city": "text",
        "companyName": "text",
        "firstname": "text",
        "lastname": "text",
        "countryCode": "text",
        "email": "text",
        "phone": "text",
        "postalCode": "text",
        "type": "DELIVERY_ADDRESS",
        "customerAddressUid": "text",
        "displayName": "text"
      }
    ],
    "contacts": [
      {
        "firstname": "text",
        "lastname": "text",
        "email": "text",
        "mobile": "text",
        "createdAt": "2026-01-01T00:00:00.000Z",
        "lastModifiedAt": "2026-01-01T00:00:00.000Z",
        "customerContactUid": "text",
        "extensions": [
          {
            "extensionCode": "TWO_INVOICE",
            "organizationUid": "text"
          }
        ],
        "displayName": "text",
        "role": "ADMIN"
      }
    ],
    "extensions": [
      {
        "extensionCode": "TWO_INVOICE",
        "organizationUid": "text"
      }
    ],
    "consents": [
      {
        "consentUid": "text",
        "name": "text",
        "status": true,
        "source": "text",
        "createdAt": "2026-01-01T00:00:00.000Z"
      }
    ],
    "loyaltyId": "text",
    "displayName": "text",
    "credit": {
      "limit": 1,
      "balance": 1
    },
    "paymentTerms": 1,
    "internalNote": "text",
    "accountManager": {
      "tenantUserUid": "text",
      "displayName": "text",
      "userCode": "text"
    },
    "ehfEnabled": true,
    "ehf": {
      "enabled": true,
      "address": "text"
    },
    "customerGroupUids": [
      "text"
    ],
    "defaultStore": {
      "name": "text",
      "storeUid": "text"
    },
    "relevance": 1
  },
  "credit": {
    "approved": true,
    "limit": 1,
    "balance": 1,
    "remaining": 1,
    "maxSingleOrderValue": 1,
    "declineReason": "text"
  }
}

Merge duplicate customer into this customer

post
/tenants/{tenantUid}/customers/{customerUid}/merge

Merge the duplicate customer in the request body (mergeFromCustomerUid) into this customer (customerUid in the path). The path customer is kept; orders and other data tied to the duplicate are moved to it, then the duplicate is deleted.

Required permissions: CUSTOMER

Authorizations
AuthorizationstringRequired

Access token recevied after user login with a deviceToken

Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
customerUidstringRequired

Reference to a Customer.

Pattern: ^[A-Za-z0-9-_]+
Body
mergeFromCustomerUidstringRequiredPattern: ^[A-Za-z0-9-_]+
Responses
200

Example response

application/json

CustomerResponseSchema

addressstringRequired
citystringRequired
companyNamestringRequired
countryCodestringRequired

ISO 3166-1: 2 characters representation of country

createdAtstring · date-timeRequired
customerUidstringRequiredPattern: ^[A-Za-z0-9-_]+
customerParentUidstringRequired

References another customer, establishing it as a department under the main customer. Only applicable when customerType is COMPANY.

Pattern: ^[A-Za-z0-9-_]*
customerTypestring · enumRequiredPossible values:
emailstringRequired
externalIdstringRequired
firstnamestringRequired
lastModifiedAtstring · date-timeRequired
lastnamestringRequired
ledgerNumberstringOptionalDeprecated

Deprecated. Use ledgerNumber in accountingConfigs instead

mobilestringRequired
postalCodestringRequired
pricelistUidstringRequiredPattern: ^[A-Za-z0-9-_]*
vatNumberstringRequired

VAT identification number for value added tax reporting purposes.

originstringRequired
loyaltyIdstringRequired
displayNamestringRequired
paymentTermsintegerRequired
internalNotestringRequired
ehfEnabledbooleanOptional

Deprecated: Use ehf -> enabled instead

customerGroupUidsstring[]Required
relevancenumberRequired
post/tenants/{tenantUid}/customers/{customerUid}/merge
POST /v2/tenants/{tenantUid}/customers/{customerUid}/merge HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 31

{
  "mergeFromCustomerUid": "text"
}
{
  "address": "text",
  "city": "text",
  "companyName": "text",
  "countryCode": "text",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "customerUid": "text",
  "customerParentUid": "text",
  "customerType": "COMPANY",
  "email": "text",
  "externalId": "text",
  "firstname": "text",
  "lastModifiedAt": "2026-01-01T00:00:00.000Z",
  "lastname": "text",
  "mobile": "text",
  "postalCode": "text",
  "pricelistUid": "text",
  "vatNumber": "text",
  "origin": "text",
  "addresses": [
    {
      "address": "text",
      "city": "text",
      "companyName": "text",
      "firstname": "text",
      "lastname": "text",
      "countryCode": "text",
      "email": "text",
      "phone": "text",
      "postalCode": "text",
      "type": "DELIVERY_ADDRESS",
      "customerAddressUid": "text",
      "displayName": "text"
    }
  ],
  "contacts": [
    {
      "firstname": "text",
      "lastname": "text",
      "email": "text",
      "mobile": "text",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "lastModifiedAt": "2026-01-01T00:00:00.000Z",
      "customerContactUid": "text",
      "extensions": [
        {
          "extensionCode": "TWO_INVOICE",
          "organizationUid": "text"
        }
      ],
      "displayName": "text",
      "role": "ADMIN"
    }
  ],
  "extensions": [
    {
      "extensionCode": "TWO_INVOICE",
      "organizationUid": "text"
    }
  ],
  "consents": [
    {
      "consentUid": "text",
      "name": "text",
      "status": true,
      "source": "text",
      "createdAt": "2026-01-01T00:00:00.000Z"
    }
  ],
  "loyaltyId": "text",
  "displayName": "text",
  "credit": {
    "limit": 1,
    "balance": 1
  },
  "paymentTerms": 1,
  "internalNote": "text",
  "accountManager": {
    "tenantUserUid": "text",
    "displayName": "text",
    "userCode": "text"
  },
  "ehfEnabled": true,
  "ehf": {
    "enabled": true,
    "address": "text"
  },
  "customerGroupUids": [
    "text"
  ],
  "defaultStore": {
    "name": "text",
    "storeUid": "text"
  },
  "relevance": 1
}

Last updated