{
  "item": [
    {
      "id": "c373d228-74bc-4e09-b0e9-ee5487f87e3a",
      "name": "Profiles",
      "description": {
        "content": "The customers you market to. Create or update profiles from your CRM, look them up, and manage their attributes.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "354531ba-ddb0-4658-aa37-ff4a5130444c",
          "name": "Create or update a profile",
          "request": {
            "name": "Create or update a profile",
            "description": {
              "content": "Upserts a profile keyed by its external_id. Returns 201 when created, 200 when an existing profile was updated. Inline attributes are applied in the same transaction. An identity collision (the phone number already belongs to another profile) returns 409.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "profiles"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"external_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"first_name\": \"Camille\",\n  \"last_name\": \"Durand\",\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "dbfaf27d-ebc0-41fe-81b0-0cb545228bec",
              "name": "Existing profile updated.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"first_name\": \"Camille\",\n  \"last_name\": \"Durand\",\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n  \"external_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"first_name\": \"Camille\",\n  \"last_name\": \"Durand\",\n  \"created_at\": \"2026-05-28T10:00:00.000Z\",\n  \"updated_at\": \"2026-05-28T10:00:00.000Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "50b3700e-010e-43e3-b08d-bca0e1273806",
              "name": "Profile created.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"first_name\": \"Camille\",\n  \"last_name\": \"Durand\",\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n  \"external_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"first_name\": \"Camille\",\n  \"last_name\": \"Durand\",\n  \"created_at\": \"2026-05-28T10:00:00.000Z\",\n  \"updated_at\": \"2026-05-28T10:00:00.000Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "58247323-2327-4171-b78a-fcc13d2417e0",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"first_name\": \"Camille\",\n  \"last_name\": \"Durand\",\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d9681f0a-ea44-4234-b397-677b5be11d00",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"first_name\": \"Camille\",\n  \"last_name\": \"Durand\",\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6f670d25-19ce-488f-8181-9e61c771f44d",
              "name": "The phone number is already used by another profile that carries its own external_id. The error details carry the conflicting profile (`conflicting_profile_id`, `conflicting_external_id`) so you can reconcile it on your side.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"first_name\": \"Camille\",\n  \"last_name\": \"Durand\",\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RESOURCE_CONFLICT\",\n  \"message\": \"This phone number already belongs to another profile.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\",\n  \"details\": {\n    \"conflicting_profile_id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n    \"conflicting_external_id\": \"crm-customer-9931\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9b47ffe7-a6de-4177-ad21-c050ddc141fd",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"first_name\": \"Camille\",\n  \"last_name\": \"Durand\",\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dc35e9cd-0a18-4921-babb-3b383635c577",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"first_name\": \"Camille\",\n  \"last_name\": \"Durand\",\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "bef11025-d4e6-49db-b036-838c800cbedb",
          "name": "List profiles",
          "request": {
            "name": "List profiles",
            "description": {
              "content": "Returns profiles ordered by creation date (newest first), paginated with an opaque forward cursor. Optional exact-match filters narrow the result.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "profiles"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of records to return. Bounded between 1 and 100."
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0=",
                  "description": "Opaque cursor returned by a previous call as `pagination.next_cursor`. Pass it verbatim to fetch the next page."
                },
                {
                  "disabled": false,
                  "key": "sort",
                  "value": "created_at",
                  "description": "Sort order. `created_at` returns the newest profiles first (good for browsing). `updated_at` returns the least recently changed first; pair it with `updated_since` for incremental sync and advance `updated_since` to the last item updated_at on each page."
                },
                {
                  "disabled": false,
                  "key": "updated_since",
                  "value": "2026-05-01T00:00:00.000Z",
                  "description": "Only return profiles updated at or after this instant (ISO 8601). Use with `sort=updated_at` for incremental sync."
                },
                {
                  "disabled": false,
                  "key": "created_since",
                  "value": "2026-05-01T00:00:00.000Z",
                  "description": "Only return profiles created at or after this instant (ISO 8601)."
                },
                {
                  "disabled": false,
                  "key": "external_id",
                  "value": "crm-customer-4815",
                  "description": "Filter by exact external id."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [
            {
              "id": "6ac22044-8235-444e-be34-3aaf091a63b0",
              "name": "A page of profiles with a pagination envelope.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "sort",
                      "value": "created_at"
                    },
                    {
                      "key": "updated_since",
                      "value": "2026-05-01T00:00:00.000Z"
                    },
                    {
                      "key": "created_since",
                      "value": "2026-05-01T00:00:00.000Z"
                    },
                    {
                      "key": "external_id",
                      "value": "crm-customer-4815"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"pagination\": {\n    \"next_cursor\": \"eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0=\",\n    \"has_more\": true\n  },\n  \"data\": [\n    {\n      \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n      \"external_id\": \"crm-customer-4815\",\n      \"phone_number\": \"+33612345678\",\n      \"first_name\": \"Camille\",\n      \"last_name\": \"Durand\",\n      \"created_at\": \"2026-05-28T10:00:00.000Z\",\n      \"updated_at\": \"2026-05-28T10:00:00.000Z\"\n    },\n    {\n      \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n      \"external_id\": \"crm-customer-4815\",\n      \"phone_number\": \"+33612345678\",\n      \"first_name\": \"Camille\",\n      \"last_name\": \"Durand\",\n      \"created_at\": \"2026-05-28T10:00:00.000Z\",\n      \"updated_at\": \"2026-05-28T10:00:00.000Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "98302c2d-38b9-4d18-88a8-938479a6b825",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "sort",
                      "value": "created_at"
                    },
                    {
                      "key": "updated_since",
                      "value": "2026-05-01T00:00:00.000Z"
                    },
                    {
                      "key": "created_since",
                      "value": "2026-05-01T00:00:00.000Z"
                    },
                    {
                      "key": "external_id",
                      "value": "crm-customer-4815"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "00102131-1b61-4226-8a76-e99d99c3e31e",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "sort",
                      "value": "created_at"
                    },
                    {
                      "key": "updated_since",
                      "value": "2026-05-01T00:00:00.000Z"
                    },
                    {
                      "key": "created_since",
                      "value": "2026-05-01T00:00:00.000Z"
                    },
                    {
                      "key": "external_id",
                      "value": "crm-customer-4815"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f46c8cd8-6691-4790-bd26-b0fb5e915f8f",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "sort",
                      "value": "created_at"
                    },
                    {
                      "key": "updated_since",
                      "value": "2026-05-01T00:00:00.000Z"
                    },
                    {
                      "key": "created_since",
                      "value": "2026-05-01T00:00:00.000Z"
                    },
                    {
                      "key": "external_id",
                      "value": "crm-customer-4815"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fe009dbb-6a05-4546-ac40-beed4339c848",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "sort",
                      "value": "created_at"
                    },
                    {
                      "key": "updated_since",
                      "value": "2026-05-01T00:00:00.000Z"
                    },
                    {
                      "key": "created_since",
                      "value": "2026-05-01T00:00:00.000Z"
                    },
                    {
                      "key": "external_id",
                      "value": "crm-customer-4815"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "5850331e-b4db-46e1-b63b-28850d791af8",
          "name": "Bulk create or update profiles",
          "request": {
            "name": "Bulk create or update profiles",
            "description": {
              "content": "Upserts up to 256 profiles in one call. Best-effort: each payload is processed independently and the call always returns 200. Inspect the per-payload `results` and `summary` to detect partial failures.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "profiles",
                "bulk"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"profiles\": [\n    {\n      \"external_id\": \"crm-customer-4815\",\n      \"phone_number\": \"+33612345678\",\n      \"first_name\": \"Camille\",\n      \"last_name\": \"Durand\",\n      \"attributes\": {\n        \"favorite_store\": \"lyon-part-dieu\",\n        \"tier\": \"gold\"\n      }\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "0fd86295-de0a-406d-96f4-d460c9d92f14",
              "name": "Per-payload results and aggregate summary.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"profiles\": [\n    {\n      \"external_id\": \"crm-customer-4815\",\n      \"phone_number\": \"+33612345678\",\n      \"first_name\": \"Camille\",\n      \"last_name\": \"Durand\",\n      \"attributes\": {\n        \"favorite_store\": \"lyon-part-dieu\",\n        \"tier\": \"gold\"\n      }\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"results\": [\n    {\n      \"external_id\": \"crm-customer-4815\",\n      \"status\": \"created\",\n      \"profile_id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n      \"error\": {\n        \"code\": \"RESOURCE_CONFLICT\",\n        \"message\": \"The phone_number is already used by another profile in this organization.\"\n      }\n    },\n    {\n      \"external_id\": \"crm-customer-4815\",\n      \"status\": \"created\",\n      \"profile_id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n      \"error\": {\n        \"code\": \"RESOURCE_CONFLICT\",\n        \"message\": \"The phone_number is already used by another profile in this organization.\"\n      }\n    }\n  ],\n  \"summary\": {\n    \"total\": 256,\n    \"succeeded\": 254,\n    \"failed\": 2\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6d3524da-53a9-4d79-a777-8eb8cfe18146",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"profiles\": [\n    {\n      \"external_id\": \"crm-customer-4815\",\n      \"phone_number\": \"+33612345678\",\n      \"first_name\": \"Camille\",\n      \"last_name\": \"Durand\",\n      \"attributes\": {\n        \"favorite_store\": \"lyon-part-dieu\",\n        \"tier\": \"gold\"\n      }\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2c72cf2f-b621-4cfe-833b-86043418e309",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"profiles\": [\n    {\n      \"external_id\": \"crm-customer-4815\",\n      \"phone_number\": \"+33612345678\",\n      \"first_name\": \"Camille\",\n      \"last_name\": \"Durand\",\n      \"attributes\": {\n        \"favorite_store\": \"lyon-part-dieu\",\n        \"tier\": \"gold\"\n      }\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c6fc6e59-678a-4463-9453-eb09b1de78e9",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"profiles\": [\n    {\n      \"external_id\": \"crm-customer-4815\",\n      \"phone_number\": \"+33612345678\",\n      \"first_name\": \"Camille\",\n      \"last_name\": \"Durand\",\n      \"attributes\": {\n        \"favorite_store\": \"lyon-part-dieu\",\n        \"tier\": \"gold\"\n      }\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f7d1c171-cda6-4e25-8413-7c64bb61786a",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    "bulk"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"profiles\": [\n    {\n      \"external_id\": \"crm-customer-4815\",\n      \"phone_number\": \"+33612345678\",\n      \"first_name\": \"Camille\",\n      \"last_name\": \"Durand\",\n      \"attributes\": {\n        \"favorite_store\": \"lyon-part-dieu\",\n        \"tier\": \"gold\"\n      }\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "01551569-a46d-426b-93be-85655bca8239",
          "name": "Look up a profile by phone number",
          "request": {
            "name": "Look up a profile by phone number",
            "description": {
              "content": "Returns the profile with the given phone number. The number is passed in the request body, not the URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "profiles",
                "search"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number\": \"+33612345678\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "84d4a991-2740-4d91-a5ee-69a2dcf13013",
              "name": "The profile.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n  \"external_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"first_name\": \"Camille\",\n  \"last_name\": \"Durand\",\n  \"created_at\": \"2026-05-28T10:00:00.000Z\",\n  \"updated_at\": \"2026-05-28T10:00:00.000Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1ba7a635-4c25-4723-bdcf-d9a1ee6ace5e",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "24917e94-dfa8-4ee4-8fa1-6ef23505b9b2",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a16fed4f-01ab-499a-8782-2dd2f263b1d0",
              "name": "No profile matches the given phone number.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RESOURCE_NOT_FOUND\",\n  \"message\": \"No profile matches the given phone number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a0d42576-1336-46b8-bd00-d288e79f8155",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b16590a8-3609-4fc6-b284-8a0d5b3ebb0f",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f41d54e1-11e6-4523-ba9e-3a96bf6a2f17",
          "name": "Fetch a profile",
          "request": {
            "name": "Fetch a profile",
            "description": {
              "content": "Returns the profile matching the given reference: your CRM external_id, or the canonical Noticia id (prefixed `prof_`).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "profiles",
                ":profile_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "crm-customer-4815",
                  "key": "profile_id",
                  "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [
            {
              "id": "6f57c21c-22b4-46d5-a5e2-9de784e56997",
              "name": "The profile.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n  \"external_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"first_name\": \"Camille\",\n  \"last_name\": \"Durand\",\n  \"created_at\": \"2026-05-28T10:00:00.000Z\",\n  \"updated_at\": \"2026-05-28T10:00:00.000Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c1b09bd1-ec59-4d78-93b9-fe27eb292b10",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eaca55e0-0bc2-4161-ba5f-91bebeacd49d",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "99bb34a5-3c9a-489a-bbb0-04d3d99dfcc7",
              "name": "No profile matches this reference.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RESOURCE_NOT_FOUND\",\n  \"message\": \"No profile matches this reference.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "495d7d75-8138-45d4-97d0-c4129ca646e6",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e2a135a9-ef7f-435d-9ae6-3990de3d9f24",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "dfec34ff-78fe-47b3-bf45-56737e34f9bf",
          "name": "Delete a profile (GDPR)",
          "request": {
            "name": "Delete a profile (GDPR)",
            "description": {
              "content": "Permanently deletes the profile and its data. Idempotent: deleting an unknown reference still returns 204.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "profiles",
                ":profile_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "crm-customer-4815",
                  "key": "profile_id",
                  "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [
            {
              "id": "2f260df4-2bfd-4f0d-b9c1-4fe5209a322f",
              "name": "Profile deleted (or already absent).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "f7a13913-df10-4ef4-9fbc-f3e2bc181346",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b28b3e02-665c-4c73-bc7e-ebd46d17da1f",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d2212995-9a86-43c3-a8cf-78287830bdff",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5d289e88-aa11-4b1a-9b6a-4cbd8936d16e",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "9c53b7cf-87f8-405d-babb-23d2dbf2be88",
          "name": "Set profile attributes",
          "request": {
            "name": "Set profile attributes",
            "description": {
              "content": "Sets attributes on the profile. Unknown keys are auto-registered as custom attributes. The profile must already exist (no lazy-create).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "profiles",
                ":profile_id",
                "attributes"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "crm-customer-4815",
                  "key": "profile_id",
                  "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                }
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "55ac202e-8e26-4e13-8649-b33636de736f",
              "name": "The attributes after the write.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id",
                    "attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"key\": \"favorite_store\",\n      \"value\": \"lyon-part-dieu\",\n      \"source\": \"api\",\n      \"updated_at\": \"2026-05-28T10:00:00.000Z\"\n    },\n    {\n      \"key\": \"favorite_store\",\n      \"value\": \"lyon-part-dieu\",\n      \"source\": \"api\",\n      \"updated_at\": \"2026-05-28T10:00:00.000Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b1c577dd-abf8-4792-9cc6-0f66a98b42b7",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id",
                    "attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "11d9d043-90b5-4eb6-a090-5e1e2883ab65",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id",
                    "attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2521ad0f-7940-4cff-8af2-6e870937e800",
              "name": "No profile matches this reference.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id",
                    "attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RESOURCE_NOT_FOUND\",\n  \"message\": \"No profile matches this reference.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2923baac-4f22-497c-846b-a988f9bd40c4",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id",
                    "attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d051a80b-2970-46d5-9c3b-ce31b1f97e9e",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id",
                    "attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"attributes\": {\n    \"favorite_store\": \"lyon-part-dieu\",\n    \"tier\": \"gold\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "069d968e-8fe9-4734-8656-2bc0ce1a006b",
          "name": "List profile attributes",
          "request": {
            "name": "List profile attributes",
            "description": {
              "content": "Returns every attribute stored on the profile.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "profiles",
                ":profile_id",
                "attributes"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "crm-customer-4815",
                  "key": "profile_id",
                  "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [
            {
              "id": "a3cd87b3-8d66-4118-bd9c-2e4fa500efa2",
              "name": "The attributes stored on the profile.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id",
                    "attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"key\": \"favorite_store\",\n      \"value\": \"lyon-part-dieu\",\n      \"source\": \"api\",\n      \"updated_at\": \"2026-05-28T10:00:00.000Z\"\n    },\n    {\n      \"key\": \"favorite_store\",\n      \"value\": \"lyon-part-dieu\",\n      \"source\": \"api\",\n      \"updated_at\": \"2026-05-28T10:00:00.000Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "51cafd56-6655-428a-91aa-0a8b826e02fb",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id",
                    "attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "db573e02-2d09-4d9b-801b-9809f5dfe1b2",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id",
                    "attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "03141047-6565-4807-aa69-47f401831812",
              "name": "No profile matches this reference.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id",
                    "attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RESOURCE_NOT_FOUND\",\n  \"message\": \"No profile matches this reference.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4b404708-6a74-4142-b65c-d1ab9195c5f7",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id",
                    "attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "867fb3bf-81e3-4638-90db-21b0bed98252",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "profiles",
                    ":profile_id",
                    "attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "652d040a-4dd2-436f-b537-dfe2703773a5",
      "name": "Subscriptions",
      "description": {
        "content": "SMS marketing consent. Opt profiles in or out, look up a subscription, and retrieve the full consent history for a GDPR/CNIL audit.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "d04fcf0a-11a8-4651-8d85-27193e84b69a",
          "name": "Opt a profile in to SMS",
          "request": {
            "name": "Opt a profile in to SMS",
            "description": {
              "content": "Records an SMS consent and returns the resulting subscription. `phone_number` is the consent target (required); pass an optional `profile_id` to attach the consent to a profile (auto-created when an unknown CRM id is given). Returns `201` when a new subscription is created, `200` when an existing one is updated or unchanged. The `Noticia-Subscription-State` response header reports `created`, `updated`, or `already_subscribed`. Idempotent: re-opting in with identical consent records no new history entry.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "subscriptions",
                "opt-in"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number\": \"+33612345678\",\n  \"consent_source\": \"WEB_FORM\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n  \"consent_proof\": {\n    \"terms_url\": \"https://brand.example/sms-terms\",\n    \"terms_version\": \"v2.3\",\n    \"ip_address\": \"203.0.113.42\",\n    \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n    \"source_text\": \"Lyon Confluence in-store tablet\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "5c840cd4-c46b-41b8-ae39-8c88968adf85",
              "name": "An existing subscription was updated or left unchanged.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "opt-in"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\",\n  \"consent_source\": \"WEB_FORM\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n  \"consent_proof\": {\n    \"terms_url\": \"https://brand.example/sms-terms\",\n    \"terms_version\": \"v2.3\",\n    \"ip_address\": \"203.0.113.42\",\n    \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n    \"source_text\": \"Lyon Confluence in-store tablet\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Outcome of the call: `created`, `updated`, or `already_subscribed`.",
                  "key": "Noticia-Subscription-State",
                  "value": "updated"
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"profile\": {\n    \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n    \"external_id\": \"crm-customer-4815\"\n  },\n  \"phone_number\": \"+33612345678\",\n  \"status\": \"SUBSCRIBED\",\n  \"consent_source\": \"LOYALTY_PROGRAM\",\n  \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n  \"unsubscribed_at\": null,\n  \"consent_proof\": {\n    \"terms_url\": \"https://brand.example/sms-terms\",\n    \"terms_version\": \"v2.3\",\n    \"ip_address\": \"203.0.113.42\",\n    \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n    \"source_text\": \"Lyon Confluence in-store tablet\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "824cb48c-bf7e-4dc4-8483-f2ee33c36f1a",
              "name": "A new subscription was created.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "opt-in"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\",\n  \"consent_source\": \"WEB_FORM\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n  \"consent_proof\": {\n    \"terms_url\": \"https://brand.example/sms-terms\",\n    \"terms_version\": \"v2.3\",\n    \"ip_address\": \"203.0.113.42\",\n    \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n    \"source_text\": \"Lyon Confluence in-store tablet\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "Outcome of the call: `created`, `updated`, or `already_subscribed`.",
                  "key": "Noticia-Subscription-State",
                  "value": "updated"
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"profile\": {\n    \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n    \"external_id\": \"crm-customer-4815\"\n  },\n  \"phone_number\": \"+33612345678\",\n  \"status\": \"SUBSCRIBED\",\n  \"consent_source\": \"LOYALTY_PROGRAM\",\n  \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n  \"unsubscribed_at\": null,\n  \"consent_proof\": {\n    \"terms_url\": \"https://brand.example/sms-terms\",\n    \"terms_version\": \"v2.3\",\n    \"ip_address\": \"203.0.113.42\",\n    \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n    \"source_text\": \"Lyon Confluence in-store tablet\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4269e98c-46c6-4a9f-915a-e4b9f2617471",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "opt-in"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\",\n  \"consent_source\": \"WEB_FORM\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n  \"consent_proof\": {\n    \"terms_url\": \"https://brand.example/sms-terms\",\n    \"terms_version\": \"v2.3\",\n    \"ip_address\": \"203.0.113.42\",\n    \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n    \"source_text\": \"Lyon Confluence in-store tablet\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "87c87cf6-7e4d-432d-b0e3-54d29a1760b0",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "opt-in"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\",\n  \"consent_source\": \"WEB_FORM\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n  \"consent_proof\": {\n    \"terms_url\": \"https://brand.example/sms-terms\",\n    \"terms_version\": \"v2.3\",\n    \"ip_address\": \"203.0.113.42\",\n    \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n    \"source_text\": \"Lyon Confluence in-store tablet\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "598795ed-1928-4fc0-86c4-b6d072a9c80b",
              "name": "The phone number already holds an active SMS consent under another profile. `details.conflicting_profile_id` carries the opaque id of the other profile (no PII).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "opt-in"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\",\n  \"consent_source\": \"WEB_FORM\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n  \"consent_proof\": {\n    \"terms_url\": \"https://brand.example/sms-terms\",\n    \"terms_version\": \"v2.3\",\n    \"ip_address\": \"203.0.113.42\",\n    \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n    \"source_text\": \"Lyon Confluence in-store tablet\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RESOURCE_CONFLICT\",\n  \"message\": \"This phone number already holds an active consent under another profile.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\",\n  \"details\": {\n    \"conflicting_profile_id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2bc822ba-97b7-4b43-aa81-ed011c9463cb",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "opt-in"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\",\n  \"consent_source\": \"WEB_FORM\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n  \"consent_proof\": {\n    \"terms_url\": \"https://brand.example/sms-terms\",\n    \"terms_version\": \"v2.3\",\n    \"ip_address\": \"203.0.113.42\",\n    \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n    \"source_text\": \"Lyon Confluence in-store tablet\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0e8b78d8-4f8c-4736-9215-88aabde07576",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "opt-in"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\",\n  \"consent_source\": \"WEB_FORM\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n  \"consent_proof\": {\n    \"terms_url\": \"https://brand.example/sms-terms\",\n    \"terms_version\": \"v2.3\",\n    \"ip_address\": \"203.0.113.42\",\n    \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n    \"source_text\": \"Lyon Confluence in-store tablet\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "706ad379-f471-41e4-b957-6ddb33c73a2c",
          "name": "Opt a profile out of SMS",
          "request": {
            "name": "Opt a profile out of SMS",
            "description": {
              "content": "Withdraws SMS consent and returns the resulting subscription. Soft delete: the consent history is preserved for audit. The profile is matched by `profile_id` or `phone_number` (at least one required). Consent is per phone number (CNIL): every profile holding an active consent on the number is opted out. The `Noticia-Subscription-State` header reports `opted_out` or `already_opted_out`. Idempotent.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "subscriptions",
                "opt-out"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"profile_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"reason\": \"Customer requested removal by email\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "f902cc8d-7b4b-4f03-a016-c4d2d8bf1717",
              "name": "The resulting (opted-out) subscription.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "opt-out"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"profile_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"reason\": \"Customer requested removal by email\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Outcome of the call: `opted_out` or `already_opted_out`.",
                  "key": "Noticia-Subscription-State",
                  "value": "already_opted_out"
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"profile\": {\n    \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n    \"external_id\": \"crm-customer-4815\"\n  },\n  \"phone_number\": \"+33612345678\",\n  \"status\": \"SUBSCRIBED\",\n  \"consent_source\": \"LOYALTY_PROGRAM\",\n  \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n  \"unsubscribed_at\": null,\n  \"consent_proof\": {\n    \"terms_url\": \"https://brand.example/sms-terms\",\n    \"terms_version\": \"v2.3\",\n    \"ip_address\": \"203.0.113.42\",\n    \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n    \"source_text\": \"Lyon Confluence in-store tablet\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7f19937e-9837-49c3-88f2-5b17d14b59be",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "opt-out"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"profile_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"reason\": \"Customer requested removal by email\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bf1408d4-bd35-431e-9768-391fed1ba936",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "opt-out"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"profile_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"reason\": \"Customer requested removal by email\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "73c94cc1-dbe6-4744-b875-a22965c4657f",
              "name": "No subscription matches the given identifier.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "opt-out"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"profile_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"reason\": \"Customer requested removal by email\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RESOURCE_NOT_FOUND\",\n  \"message\": \"No subscription matches the given identifier.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ffccf2eb-d134-4410-b7ba-344ca2f0aed0",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "opt-out"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"profile_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"reason\": \"Customer requested removal by email\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2ef94016-3b6b-48b3-815b-6bf66ead6ab5",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "opt-out"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"profile_id\": \"crm-customer-4815\",\n  \"phone_number\": \"+33612345678\",\n  \"reason\": \"Customer requested removal by email\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "226ca4cb-1ba7-45f1-8e4a-d00401e2dff3",
          "name": "List subscriptions",
          "request": {
            "name": "List subscriptions",
            "description": {
              "content": "Returns subscriptions ordered by consent date (newest first), paginated with an opaque forward cursor. Optional `status` and `since` filters narrow the result.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "subscriptions"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of records to return. Bounded between 1 and 100."
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0=",
                  "description": "Opaque cursor returned by a previous call as `pagination.next_cursor`. Pass it verbatim to fetch the next page."
                },
                {
                  "disabled": false,
                  "key": "status",
                  "value": "SUBSCRIBED",
                  "description": "Filter by subscription status."
                },
                {
                  "disabled": false,
                  "key": "since",
                  "value": "2026-05-01T00:00:00.000Z",
                  "description": "Only return subscriptions whose consent timestamp is at or after this instant (ISO 8601)."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [
            {
              "id": "3e40116f-7b97-48fb-80ac-a375d3dfebf7",
              "name": "A page of subscriptions with a pagination envelope.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "since",
                      "value": "2026-05-01T00:00:00.000Z"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"pagination\": {\n    \"next_cursor\": \"eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0=\",\n    \"has_more\": true\n  },\n  \"data\": [\n    {\n      \"profile\": {\n        \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n        \"external_id\": \"crm-customer-4815\"\n      },\n      \"phone_number\": \"+33612345678\",\n      \"status\": \"SUBSCRIBED\",\n      \"consent_source\": \"LOYALTY_PROGRAM\",\n      \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n      \"unsubscribed_at\": null,\n      \"consent_proof\": {\n        \"terms_url\": \"https://brand.example/sms-terms\",\n        \"terms_version\": \"v2.3\",\n        \"ip_address\": \"203.0.113.42\",\n        \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n        \"source_text\": \"Lyon Confluence in-store tablet\"\n      }\n    },\n    {\n      \"profile\": {\n        \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n        \"external_id\": \"crm-customer-4815\"\n      },\n      \"phone_number\": \"+33612345678\",\n      \"status\": \"SUBSCRIBED\",\n      \"consent_source\": \"LOYALTY_PROGRAM\",\n      \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n      \"unsubscribed_at\": null,\n      \"consent_proof\": {\n        \"terms_url\": \"https://brand.example/sms-terms\",\n        \"terms_version\": \"v2.3\",\n        \"ip_address\": \"203.0.113.42\",\n        \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n        \"source_text\": \"Lyon Confluence in-store tablet\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "632a9509-31cb-4c37-ada8-9410ccaa607a",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "since",
                      "value": "2026-05-01T00:00:00.000Z"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6dda9fc8-12e9-4146-b34b-34e036432b7b",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "since",
                      "value": "2026-05-01T00:00:00.000Z"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8ebb9da0-e94f-4594-b6d9-3b27a9488fca",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "since",
                      "value": "2026-05-01T00:00:00.000Z"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e0e26c76-51de-4312-8dda-713b02f8805a",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "since",
                      "value": "2026-05-01T00:00:00.000Z"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "003551ca-28de-4bb8-97f8-4b29b568067d",
          "name": "Fetch a subscription by profile reference",
          "request": {
            "name": "Fetch a subscription by profile reference",
            "description": {
              "content": "Returns the subscription for the referenced profile, addressed by your CRM external_id or the canonical Noticia id (prefixed `prof_`). To look one up by phone number, use `POST /v1/subscriptions/search` (the phone number travels in the request body, never in the URL).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "subscriptions",
                ":profile_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "crm-customer-4815",
                  "key": "profile_id",
                  "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [
            {
              "id": "cafbe73c-1094-4c18-82fe-4d16c9463643",
              "name": "The subscription.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"profile\": {\n    \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n    \"external_id\": \"crm-customer-4815\"\n  },\n  \"phone_number\": \"+33612345678\",\n  \"status\": \"SUBSCRIBED\",\n  \"consent_source\": \"LOYALTY_PROGRAM\",\n  \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n  \"unsubscribed_at\": null,\n  \"consent_proof\": {\n    \"terms_url\": \"https://brand.example/sms-terms\",\n    \"terms_version\": \"v2.3\",\n    \"ip_address\": \"203.0.113.42\",\n    \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n    \"source_text\": \"Lyon Confluence in-store tablet\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e21e1d32-5b05-4667-a0e9-15e28e2086f6",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6b5c4b12-961b-4d5c-a8b6-8fa89a845f08",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a14feacd-fe8a-4feb-9e8a-613ba9bd91a2",
              "name": "No subscription matches the given reference.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RESOURCE_NOT_FOUND\",\n  \"message\": \"No subscription matches the given reference.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8d4fd6d9-5503-47b9-a21d-1c0dbad7a593",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6a428402-1b22-49a1-84fd-3c553d7c5b8d",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    ":profile_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "14f1ce9b-abc0-4298-bbc7-049dd27a8ca4",
          "name": "Look up a subscription by phone number",
          "request": {
            "name": "Look up a subscription by phone number",
            "description": {
              "content": "Returns the subscription for the given phone number. The number is passed in the request body, not the URL.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "subscriptions",
                "search"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number\": \"+33612345678\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "6db4beda-4b43-49a6-bfbd-e0bf8a2a2e3a",
              "name": "The subscription.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"profile\": {\n    \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n    \"external_id\": \"crm-customer-4815\"\n  },\n  \"phone_number\": \"+33612345678\",\n  \"status\": \"SUBSCRIBED\",\n  \"consent_source\": \"LOYALTY_PROGRAM\",\n  \"consented_at\": \"2026-05-28T10:00:00.000Z\",\n  \"unsubscribed_at\": null,\n  \"consent_proof\": {\n    \"terms_url\": \"https://brand.example/sms-terms\",\n    \"terms_version\": \"v2.3\",\n    \"ip_address\": \"203.0.113.42\",\n    \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n    \"source_text\": \"Lyon Confluence in-store tablet\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b8cb752a-cfbe-4c02-abcc-61c5b9c17cab",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b31d62c7-d7ca-4f8d-a83c-80ae46b0e809",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c51fd017-c27d-4f07-8c1b-c2cb1c4d7049",
              "name": "No subscription matches the given phone number.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RESOURCE_NOT_FOUND\",\n  \"message\": \"No subscription matches the given phone number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1f8cbc09-e2fd-4880-8702-8f6134d83024",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "df06789f-94dc-40d6-adfd-d126d2d422f7",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+33612345678\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "72e5fc4e-d556-46bb-90a8-9250fddbdf52",
          "name": "Fetch a profile consent history",
          "request": {
            "name": "Fetch a profile consent history",
            "description": {
              "content": "Returns the chronological opt-in / opt-out ledger for the referenced profile, addressed by your CRM external_id or the canonical Noticia id (prefixed `prof_`). The full proof of consent for a CNIL audit.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "subscriptions",
                ":profile_id",
                "consent-history"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "crm-customer-4815",
                  "key": "profile_id",
                  "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [
            {
              "id": "cae0ade5-b29c-4184-86bb-e609128ed8b6",
              "name": "The consent history, oldest first.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    ":profile_id",
                    "consent-history"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"type\": \"OPT_IN\",\n      \"consent_source\": \"WEB_FORM\",\n      \"occurred_at\": \"2026-05-28T10:00:00.000Z\",\n      \"consent_proof\": {\n        \"terms_url\": \"https://brand.example/sms-terms\",\n        \"terms_version\": \"v2.3\",\n        \"ip_address\": \"203.0.113.42\",\n        \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n        \"source_text\": \"Lyon Confluence in-store tablet\"\n      }\n    },\n    {\n      \"type\": \"OPT_IN\",\n      \"consent_source\": \"WEB_FORM\",\n      \"occurred_at\": \"2026-05-28T10:00:00.000Z\",\n      \"consent_proof\": {\n        \"terms_url\": \"https://brand.example/sms-terms\",\n        \"terms_version\": \"v2.3\",\n        \"ip_address\": \"203.0.113.42\",\n        \"user_agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)\",\n        \"source_text\": \"Lyon Confluence in-store tablet\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3b6eda90-c7de-400d-a9e2-e8a0c8ca51ef",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    ":profile_id",
                    "consent-history"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3cd855dc-4041-4ac0-a606-dd83e95b2c6c",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    ":profile_id",
                    "consent-history"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0b2ea751-b244-4daf-b1c2-ce88b6b2aa40",
              "name": "No profile matches the given reference.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    ":profile_id",
                    "consent-history"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RESOURCE_NOT_FOUND\",\n  \"message\": \"No profile matches the given reference.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6aaacae6-b39a-4b61-add4-311806c35eb5",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    ":profile_id",
                    "consent-history"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "310eebb5-84e1-4856-a639-897f06b3c6f5",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "subscriptions",
                    ":profile_id",
                    "consent-history"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "crm-customer-4815",
                      "key": "profile_id",
                      "description": "(Required) Profile reference: your CRM external_id (e.g. `crm-customer-4815`), or the canonical Noticia id (e.g. `prof_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "2df33f10-a529-4b82-b85e-62c822b8d61b",
      "name": "Stores",
      "description": {
        "content": "Your physical stores. Keep them in sync so sales and analytics are attributed to the right location.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "534215b6-2a6b-4c9b-b740-2dbd49193d78",
          "name": "Create or update a store",
          "request": {
            "name": "Create or update a store",
            "description": {
              "content": "Upserts a store keyed by its external_id. Returns 201 when created, 200 when an existing store was updated.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "stores"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"external_id\": \"paris-rivoli-01\",\n  \"name\": \"Paris Rivoli\",\n  \"address\": {\n    \"address_line1\": \"1 Rue de Rivoli\",\n    \"postal_code\": \"75001\",\n    \"locality\": \"Paris\",\n    \"country_code\": \"FR\",\n    \"address_line2\": \"Bâtiment B\",\n    \"administrative_area1\": \"Île-de-France\",\n    \"administrative_area2\": \"Paris\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "b66e6958-c52d-4881-a42a-efddea9530cb",
              "name": "Existing store updated.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"paris-rivoli-01\",\n  \"name\": \"Paris Rivoli\",\n  \"address\": {\n    \"address_line1\": \"1 Rue de Rivoli\",\n    \"postal_code\": \"75001\",\n    \"locality\": \"Paris\",\n    \"country_code\": \"FR\",\n    \"address_line2\": \"Bâtiment B\",\n    \"administrative_area1\": \"Île-de-France\",\n    \"administrative_area2\": \"Paris\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"store_cl9z3k1xb0000v8x9d2a1b3c4\",\n  \"external_id\": \"paris-rivoli-01\",\n  \"name\": \"Paris Rivoli\",\n  \"status\": \"ACTIVE\",\n  \"address\": {\n    \"address_line1\": \"1 Rue de Rivoli\",\n    \"address_line2\": \"Bâtiment B\",\n    \"postal_code\": \"75001\",\n    \"locality\": \"Paris\",\n    \"administrative_area1\": \"Île-de-France\",\n    \"administrative_area2\": \"Paris\",\n    \"country_code\": \"FR\"\n  },\n  \"created_at\": \"string\",\n  \"updated_at\": \"string\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "09114e24-7114-408d-a23b-55b0cdb6e9bc",
              "name": "Store created.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"paris-rivoli-01\",\n  \"name\": \"Paris Rivoli\",\n  \"address\": {\n    \"address_line1\": \"1 Rue de Rivoli\",\n    \"postal_code\": \"75001\",\n    \"locality\": \"Paris\",\n    \"country_code\": \"FR\",\n    \"address_line2\": \"Bâtiment B\",\n    \"administrative_area1\": \"Île-de-France\",\n    \"administrative_area2\": \"Paris\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"store_cl9z3k1xb0000v8x9d2a1b3c4\",\n  \"external_id\": \"paris-rivoli-01\",\n  \"name\": \"Paris Rivoli\",\n  \"status\": \"ACTIVE\",\n  \"address\": {\n    \"address_line1\": \"1 Rue de Rivoli\",\n    \"address_line2\": \"Bâtiment B\",\n    \"postal_code\": \"75001\",\n    \"locality\": \"Paris\",\n    \"administrative_area1\": \"Île-de-France\",\n    \"administrative_area2\": \"Paris\",\n    \"country_code\": \"FR\"\n  },\n  \"created_at\": \"string\",\n  \"updated_at\": \"string\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "95267853-a5cf-4c08-8e56-71e38ec827ff",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"paris-rivoli-01\",\n  \"name\": \"Paris Rivoli\",\n  \"address\": {\n    \"address_line1\": \"1 Rue de Rivoli\",\n    \"postal_code\": \"75001\",\n    \"locality\": \"Paris\",\n    \"country_code\": \"FR\",\n    \"address_line2\": \"Bâtiment B\",\n    \"administrative_area1\": \"Île-de-France\",\n    \"administrative_area2\": \"Paris\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "012b76e1-39ff-4c0a-b7ca-5babfd054d21",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"paris-rivoli-01\",\n  \"name\": \"Paris Rivoli\",\n  \"address\": {\n    \"address_line1\": \"1 Rue de Rivoli\",\n    \"postal_code\": \"75001\",\n    \"locality\": \"Paris\",\n    \"country_code\": \"FR\",\n    \"address_line2\": \"Bâtiment B\",\n    \"administrative_area1\": \"Île-de-France\",\n    \"administrative_area2\": \"Paris\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "08f23309-1756-43c7-9a7f-ad3f935ca5ef",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"paris-rivoli-01\",\n  \"name\": \"Paris Rivoli\",\n  \"address\": {\n    \"address_line1\": \"1 Rue de Rivoli\",\n    \"postal_code\": \"75001\",\n    \"locality\": \"Paris\",\n    \"country_code\": \"FR\",\n    \"address_line2\": \"Bâtiment B\",\n    \"administrative_area1\": \"Île-de-France\",\n    \"administrative_area2\": \"Paris\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1c5e17ee-4a9a-462a-8bc8-905b9860a8e0",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_id\": \"paris-rivoli-01\",\n  \"name\": \"Paris Rivoli\",\n  \"address\": {\n    \"address_line1\": \"1 Rue de Rivoli\",\n    \"postal_code\": \"75001\",\n    \"locality\": \"Paris\",\n    \"country_code\": \"FR\",\n    \"address_line2\": \"Bâtiment B\",\n    \"administrative_area1\": \"Île-de-France\",\n    \"administrative_area2\": \"Paris\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a96095da-3eb4-4d5b-881b-6222b73fb817",
          "name": "List stores",
          "request": {
            "name": "List stores",
            "description": {
              "content": "Returns stores ordered by name, paginated with an opaque forward cursor.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "stores"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of records to return. Bounded between 1 and 100."
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0=",
                  "description": "Opaque cursor returned by a previous call as `pagination.next_cursor`. Pass it verbatim to fetch the next page."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [
            {
              "id": "7714c18d-bf41-45b8-996b-5919a9b971ac",
              "name": "A page of stores with a pagination envelope.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"pagination\": {\n    \"next_cursor\": \"eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0=\",\n    \"has_more\": true\n  },\n  \"data\": [\n    {\n      \"id\": \"store_cl9z3k1xb0000v8x9d2a1b3c4\",\n      \"external_id\": \"paris-rivoli-01\",\n      \"name\": \"Paris Rivoli\",\n      \"status\": \"ACTIVE\",\n      \"address\": {\n        \"address_line1\": \"1 Rue de Rivoli\",\n        \"address_line2\": \"Bâtiment B\",\n        \"postal_code\": \"75001\",\n        \"locality\": \"Paris\",\n        \"administrative_area1\": \"Île-de-France\",\n        \"administrative_area2\": \"Paris\",\n        \"country_code\": \"FR\"\n      },\n      \"created_at\": \"string\",\n      \"updated_at\": \"string\"\n    },\n    {\n      \"id\": \"store_cl9z3k1xb0000v8x9d2a1b3c4\",\n      \"external_id\": \"paris-rivoli-01\",\n      \"name\": \"Paris Rivoli\",\n      \"status\": \"ACTIVE\",\n      \"address\": {\n        \"address_line1\": \"1 Rue de Rivoli\",\n        \"address_line2\": \"Bâtiment B\",\n        \"postal_code\": \"75001\",\n        \"locality\": \"Paris\",\n        \"administrative_area1\": \"Île-de-France\",\n        \"administrative_area2\": \"Paris\",\n        \"country_code\": \"FR\"\n      },\n      \"created_at\": \"string\",\n      \"updated_at\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bbc22b5b-c89f-4246-b88d-1dcd460d3be0",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dd7a61d5-b3ca-4ab2-b568-5787ffad2f4d",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "39cde4f2-9d86-4cb4-9267-126bd57aa89e",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "edae0631-4997-4c46-84bb-102c765d5b1f",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "03c48736-d9be-4827-a3a8-be3aec131e36",
          "name": "Fetch a store",
          "request": {
            "name": "Fetch a store",
            "description": {
              "content": "Returns the store matching the given reference: your own external_id, or the canonical Noticia id (prefixed `store_`).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "stores",
                ":store_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "paris-rivoli-01",
                  "key": "store_id",
                  "description": "(Required) Store reference: your own external_id (e.g. `paris-rivoli-01`), or the canonical Noticia id (e.g. `store_cl9z3k1xb0000v8x9d2a1b3c4`)."
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [
            {
              "id": "b5238a51-ea80-4523-a827-b06606acd81f",
              "name": "The store.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores",
                    ":store_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "paris-rivoli-01",
                      "key": "store_id",
                      "description": "(Required) Store reference: your own external_id (e.g. `paris-rivoli-01`), or the canonical Noticia id (e.g. `store_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"store_cl9z3k1xb0000v8x9d2a1b3c4\",\n  \"external_id\": \"paris-rivoli-01\",\n  \"name\": \"Paris Rivoli\",\n  \"status\": \"ACTIVE\",\n  \"address\": {\n    \"address_line1\": \"1 Rue de Rivoli\",\n    \"address_line2\": \"Bâtiment B\",\n    \"postal_code\": \"75001\",\n    \"locality\": \"Paris\",\n    \"administrative_area1\": \"Île-de-France\",\n    \"administrative_area2\": \"Paris\",\n    \"country_code\": \"FR\"\n  },\n  \"created_at\": \"string\",\n  \"updated_at\": \"string\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dcae5180-1ab6-4607-b08e-721d197de109",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores",
                    ":store_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "paris-rivoli-01",
                      "key": "store_id",
                      "description": "(Required) Store reference: your own external_id (e.g. `paris-rivoli-01`), or the canonical Noticia id (e.g. `store_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6a3cbb03-904f-45f2-8b7e-8c8cd2b042b2",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores",
                    ":store_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "paris-rivoli-01",
                      "key": "store_id",
                      "description": "(Required) Store reference: your own external_id (e.g. `paris-rivoli-01`), or the canonical Noticia id (e.g. `store_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "177f2775-e895-45d4-b25a-dd454edfc14f",
              "name": "No store matches this reference.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores",
                    ":store_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "paris-rivoli-01",
                      "key": "store_id",
                      "description": "(Required) Store reference: your own external_id (e.g. `paris-rivoli-01`), or the canonical Noticia id (e.g. `store_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RESOURCE_NOT_FOUND\",\n  \"message\": \"No store matches this reference.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "19eff1f3-c20e-4f03-974d-d51689d2c5e0",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores",
                    ":store_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "paris-rivoli-01",
                      "key": "store_id",
                      "description": "(Required) Store reference: your own external_id (e.g. `paris-rivoli-01`), or the canonical Noticia id (e.g. `store_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5a8402b5-a7de-48de-ac3f-8eca34a675e8",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "stores",
                    ":store_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "paris-rivoli-01",
                      "key": "store_id",
                      "description": "(Required) Store reference: your own external_id (e.g. `paris-rivoli-01`), or the canonical Noticia id (e.g. `store_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "2ba52045-20c7-4838-96e1-524326d49d3b",
      "name": "Sales Events",
      "description": {
        "content": "Purchases and returns from your POS or data warehouse. Ingest them to power segmentation, analytics, and the AI assistant that can analyze your sales.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "adc23b84-5ad5-482d-9f6e-850dfdc7247d",
          "name": "Ingest a sale",
          "request": {
            "name": "Ingest a sale",
            "description": {
              "content": "Records a purchase or return from your POS / data warehouse. Returns 201 when created, or 200 when the external_id was already ingested (no double-write). The optional Idempotency-Key header guards transport retries; external_id is the permanent business idempotency key.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sales-events"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"PURCHASE\",\n  \"occurred_at\": \"2026-04-25T14:32:00+02:00\",\n  \"store_id\": \"STORE-LYON-001\",\n  \"currency\": \"EUR\",\n  \"total_amount_cents\": 12500,\n  \"total_discount_cents\": 0,\n  \"line_items\": [\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\",\n          \"key_1\": \"string\",\n          \"key_2\": \"string\",\n          \"key_3\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    },\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\",\n          \"key_1\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    }\n  ],\n  \"external_id\": \"TICKET-2026-04-25-001234:PURCHASE\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"total_tax_cents\": 2083,\n  \"loyalty\": {\n    \"points_earned\": 125,\n    \"points_spent\": 0,\n    \"points_balance\": 1450\n  },\n  \"payments\": [\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    },\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    }\n  ],\n  \"source\": \"Cegid POS v3\",\n  \"metadata\": {\n    \"key_0\": 1153\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "62c42a5c-4cd6-4744-9991-1035d2177a03",
              "name": "A sale with this external_id already existed; returned as-is.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"PURCHASE\",\n  \"occurred_at\": \"2026-04-25T14:32:00+02:00\",\n  \"store_id\": \"STORE-LYON-001\",\n  \"currency\": \"EUR\",\n  \"total_amount_cents\": 12500,\n  \"total_discount_cents\": 0,\n  \"line_items\": [\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    },\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\",\n          \"key_1\": \"string\",\n          \"key_2\": \"string\",\n          \"key_3\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    }\n  ],\n  \"external_id\": \"TICKET-2026-04-25-001234:PURCHASE\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"total_tax_cents\": 2083,\n  \"loyalty\": {\n    \"points_earned\": 125,\n    \"points_spent\": 0,\n    \"points_balance\": 1450\n  },\n  \"payments\": [\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    },\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    }\n  ],\n  \"source\": \"Cegid POS v3\",\n  \"metadata\": {\n    \"key_0\": 5045\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"evt_cl9z3k1xb0000v8x9d2a1b3c4\",\n  \"external_id\": \"TICKET-2026-04-25-001234:PURCHASE\",\n  \"type\": \"PURCHASE\",\n  \"occurred_at\": \"string\",\n  \"store\": {\n    \"id\": \"store_cl9z3k1xb0000v8x9d2a1b3c4\",\n    \"external_id\": \"STORE-LYON-001\"\n  },\n  \"profile\": {\n    \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n    \"external_id\": \"crm-customer-4815\"\n  },\n  \"currency\": \"EUR\",\n  \"total_amount_cents\": 12500,\n  \"total_discount_cents\": 0,\n  \"total_tax_cents\": 2083,\n  \"loyalty\": {\n    \"points_earned\": 125,\n    \"points_spent\": 0,\n    \"points_balance\": 1450\n  },\n  \"payments\": [\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    },\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    }\n  ],\n  \"source\": \"Cegid POS v3\",\n  \"line_items\": [\n    {\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"category\": \"Menswear\",\n          \"size\": \"M\"\n        }\n      },\n      \"quantity\": 2,\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"total_price_cents\": 10000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    },\n    {\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"category\": \"Menswear\",\n          \"size\": \"M\"\n        }\n      },\n      \"quantity\": 2,\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"total_price_cents\": 10000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    }\n  ],\n  \"metadata\": {\n    \"key_0\": \"string\",\n    \"key_1\": 4253.690247575779,\n    \"key_2\": true\n  },\n  \"created_at\": \"string\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "52396b75-5ecb-4ba1-a059-fd645906c4c2",
              "name": "Sale recorded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"PURCHASE\",\n  \"occurred_at\": \"2026-04-25T14:32:00+02:00\",\n  \"store_id\": \"STORE-LYON-001\",\n  \"currency\": \"EUR\",\n  \"total_amount_cents\": 12500,\n  \"total_discount_cents\": 0,\n  \"line_items\": [\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    },\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\",\n          \"key_1\": \"string\",\n          \"key_2\": \"string\",\n          \"key_3\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    }\n  ],\n  \"external_id\": \"TICKET-2026-04-25-001234:PURCHASE\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"total_tax_cents\": 2083,\n  \"loyalty\": {\n    \"points_earned\": 125,\n    \"points_spent\": 0,\n    \"points_balance\": 1450\n  },\n  \"payments\": [\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    },\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    }\n  ],\n  \"source\": \"Cegid POS v3\",\n  \"metadata\": {\n    \"key_0\": 5045\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"evt_cl9z3k1xb0000v8x9d2a1b3c4\",\n  \"external_id\": \"TICKET-2026-04-25-001234:PURCHASE\",\n  \"type\": \"PURCHASE\",\n  \"occurred_at\": \"string\",\n  \"store\": {\n    \"id\": \"store_cl9z3k1xb0000v8x9d2a1b3c4\",\n    \"external_id\": \"STORE-LYON-001\"\n  },\n  \"profile\": {\n    \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n    \"external_id\": \"crm-customer-4815\"\n  },\n  \"currency\": \"EUR\",\n  \"total_amount_cents\": 12500,\n  \"total_discount_cents\": 0,\n  \"total_tax_cents\": 2083,\n  \"loyalty\": {\n    \"points_earned\": 125,\n    \"points_spent\": 0,\n    \"points_balance\": 1450\n  },\n  \"payments\": [\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    },\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    }\n  ],\n  \"source\": \"Cegid POS v3\",\n  \"line_items\": [\n    {\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"category\": \"Menswear\",\n          \"size\": \"M\"\n        }\n      },\n      \"quantity\": 2,\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"total_price_cents\": 10000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    },\n    {\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"category\": \"Menswear\",\n          \"size\": \"M\"\n        }\n      },\n      \"quantity\": 2,\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"total_price_cents\": 10000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    }\n  ],\n  \"metadata\": {\n    \"key_0\": \"string\",\n    \"key_1\": false\n  },\n  \"created_at\": \"string\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "19520bab-f01c-46b1-915b-df6cd1aaae5a",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"PURCHASE\",\n  \"occurred_at\": \"2026-04-25T14:32:00+02:00\",\n  \"store_id\": \"STORE-LYON-001\",\n  \"currency\": \"EUR\",\n  \"total_amount_cents\": 12500,\n  \"total_discount_cents\": 0,\n  \"line_items\": [\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    },\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\",\n          \"key_1\": \"string\",\n          \"key_2\": \"string\",\n          \"key_3\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    }\n  ],\n  \"external_id\": \"TICKET-2026-04-25-001234:PURCHASE\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"total_tax_cents\": 2083,\n  \"loyalty\": {\n    \"points_earned\": 125,\n    \"points_spent\": 0,\n    \"points_balance\": 1450\n  },\n  \"payments\": [\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    },\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    }\n  ],\n  \"source\": \"Cegid POS v3\",\n  \"metadata\": {\n    \"key_0\": 5045\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "61ba9714-985c-4a8e-bc13-f0a3373be080",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"PURCHASE\",\n  \"occurred_at\": \"2026-04-25T14:32:00+02:00\",\n  \"store_id\": \"STORE-LYON-001\",\n  \"currency\": \"EUR\",\n  \"total_amount_cents\": 12500,\n  \"total_discount_cents\": 0,\n  \"line_items\": [\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    },\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\",\n          \"key_1\": \"string\",\n          \"key_2\": \"string\",\n          \"key_3\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    }\n  ],\n  \"external_id\": \"TICKET-2026-04-25-001234:PURCHASE\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"total_tax_cents\": 2083,\n  \"loyalty\": {\n    \"points_earned\": 125,\n    \"points_spent\": 0,\n    \"points_balance\": 1450\n  },\n  \"payments\": [\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    },\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    }\n  ],\n  \"source\": \"Cegid POS v3\",\n  \"metadata\": {\n    \"key_0\": 5045\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e4637a8f-9e8e-4a01-bc9a-9672da601a60",
              "name": "The store_id resolves to no store, or a canonical profile id (prefixed `prof_`) was not found.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"PURCHASE\",\n  \"occurred_at\": \"2026-04-25T14:32:00+02:00\",\n  \"store_id\": \"STORE-LYON-001\",\n  \"currency\": \"EUR\",\n  \"total_amount_cents\": 12500,\n  \"total_discount_cents\": 0,\n  \"line_items\": [\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    },\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\",\n          \"key_1\": \"string\",\n          \"key_2\": \"string\",\n          \"key_3\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    }\n  ],\n  \"external_id\": \"TICKET-2026-04-25-001234:PURCHASE\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"total_tax_cents\": 2083,\n  \"loyalty\": {\n    \"points_earned\": 125,\n    \"points_spent\": 0,\n    \"points_balance\": 1450\n  },\n  \"payments\": [\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    },\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    }\n  ],\n  \"source\": \"Cegid POS v3\",\n  \"metadata\": {\n    \"key_0\": 5045\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RESOURCE_NOT_FOUND\",\n  \"message\": \"No store matches this reference.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d849c658-268a-4b3f-aaf0-81b3e0e8d43a",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"PURCHASE\",\n  \"occurred_at\": \"2026-04-25T14:32:00+02:00\",\n  \"store_id\": \"STORE-LYON-001\",\n  \"currency\": \"EUR\",\n  \"total_amount_cents\": 12500,\n  \"total_discount_cents\": 0,\n  \"line_items\": [\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    },\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\",\n          \"key_1\": \"string\",\n          \"key_2\": \"string\",\n          \"key_3\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    }\n  ],\n  \"external_id\": \"TICKET-2026-04-25-001234:PURCHASE\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"total_tax_cents\": 2083,\n  \"loyalty\": {\n    \"points_earned\": 125,\n    \"points_spent\": 0,\n    \"points_balance\": 1450\n  },\n  \"payments\": [\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    },\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    }\n  ],\n  \"source\": \"Cegid POS v3\",\n  \"metadata\": {\n    \"key_0\": 5045\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ee865b36-2fd1-4bd3-818d-825253ff6c6b",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"PURCHASE\",\n  \"occurred_at\": \"2026-04-25T14:32:00+02:00\",\n  \"store_id\": \"STORE-LYON-001\",\n  \"currency\": \"EUR\",\n  \"total_amount_cents\": 12500,\n  \"total_discount_cents\": 0,\n  \"line_items\": [\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    },\n    {\n      \"quantity\": 2,\n      \"total_price_cents\": 10000,\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"key_0\": \"string\",\n          \"key_1\": \"string\",\n          \"key_2\": \"string\",\n          \"key_3\": \"string\"\n        }\n      },\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    }\n  ],\n  \"external_id\": \"TICKET-2026-04-25-001234:PURCHASE\",\n  \"profile_id\": \"crm-customer-4815\",\n  \"total_tax_cents\": 2083,\n  \"loyalty\": {\n    \"points_earned\": 125,\n    \"points_spent\": 0,\n    \"points_balance\": 1450\n  },\n  \"payments\": [\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    },\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    }\n  ],\n  \"source\": \"Cegid POS v3\",\n  \"metadata\": {\n    \"key_0\": 5045\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "27c06670-0b0d-4271-9b76-ea7baa560368",
          "name": "List sales events",
          "request": {
            "name": "List sales events",
            "description": {
              "content": "Returns sales events ordered by occurred_at (newest first), paginated with an opaque forward cursor. Optional filters: store_id, profile_id, type, since, until.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sales-events"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of records to return. Bounded between 1 and 100."
                },
                {
                  "disabled": false,
                  "key": "cursor",
                  "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0=",
                  "description": "Opaque cursor returned by a previous call as `pagination.next_cursor`. Pass it verbatim to fetch the next page."
                },
                {
                  "disabled": false,
                  "key": "store_id",
                  "value": "STORE-LYON-001",
                  "description": "Filter by store id: your store external_id, or a canonical Noticia id (prefixed `store_`)."
                },
                {
                  "disabled": false,
                  "key": "profile_id",
                  "value": "crm-customer-4815",
                  "description": "Filter by buyer id: your CRM id for the buyer, or a canonical Noticia id (prefixed `prof_`)."
                },
                {
                  "disabled": false,
                  "key": "type",
                  "value": "PURCHASE",
                  "description": "Filter by event type."
                },
                {
                  "disabled": false,
                  "key": "since",
                  "value": "2026-04-01T00:00:00.000Z",
                  "description": "Only events at or after this instant (ISO 8601, on occurred_at)."
                },
                {
                  "disabled": false,
                  "key": "until",
                  "value": "2026-05-01T00:00:00.000Z",
                  "description": "Only events strictly before this instant (ISO 8601, on occurred_at)."
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [
            {
              "id": "93d0c157-a5ff-4303-a70b-6ff5f13a2ab0",
              "name": "A page of sales events with a pagination envelope.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "store_id",
                      "value": "STORE-LYON-001"
                    },
                    {
                      "key": "profile_id",
                      "value": "crm-customer-4815"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "since",
                      "value": "2026-04-01T00:00:00.000Z"
                    },
                    {
                      "key": "until",
                      "value": "2026-05-01T00:00:00.000Z"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"pagination\": {\n    \"next_cursor\": \"eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0=\",\n    \"has_more\": true\n  },\n  \"data\": [\n    {\n      \"id\": \"evt_cl9z3k1xb0000v8x9d2a1b3c4\",\n      \"external_id\": \"TICKET-2026-04-25-001234:PURCHASE\",\n      \"type\": \"PURCHASE\",\n      \"occurred_at\": \"string\",\n      \"store\": {\n        \"id\": \"store_cl9z3k1xb0000v8x9d2a1b3c4\",\n        \"external_id\": \"STORE-LYON-001\"\n      },\n      \"profile\": {\n        \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n        \"external_id\": \"crm-customer-4815\"\n      },\n      \"currency\": \"EUR\",\n      \"total_amount_cents\": 12500,\n      \"total_discount_cents\": 0,\n      \"total_tax_cents\": 2083,\n      \"loyalty\": {\n        \"points_earned\": 125,\n        \"points_spent\": 0,\n        \"points_balance\": 1450\n      },\n      \"payments\": [\n        {\n          \"method\": \"CARD\",\n          \"amount_cents\": 12500\n        },\n        {\n          \"method\": \"CARD\",\n          \"amount_cents\": 12500\n        }\n      ],\n      \"source\": \"Cegid POS v3\",\n      \"line_items\": [\n        {\n          \"external_id\": \"LINE-001\",\n          \"product\": {\n            \"external_id\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"name\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"properties\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            }\n          },\n          \"quantity\": 2,\n          \"unit\": \"piece\",\n          \"unit_price_cents\": 5000,\n          \"total_price_cents\": 10000,\n          \"discount_cents\": 0,\n          \"tax_cents\": 1667\n        },\n        {\n          \"external_id\": \"LINE-001\",\n          \"product\": {\n            \"external_id\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"name\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"properties\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            }\n          },\n          \"quantity\": 2,\n          \"unit\": \"piece\",\n          \"unit_price_cents\": 5000,\n          \"total_price_cents\": 10000,\n          \"discount_cents\": 0,\n          \"tax_cents\": 1667\n        }\n      ],\n      \"metadata\": {\n        \"key_0\": 6182,\n        \"key_1\": 1014.7751921681258,\n        \"key_2\": 9233.389687233792\n      },\n      \"created_at\": \"string\"\n    },\n    {\n      \"id\": \"evt_cl9z3k1xb0000v8x9d2a1b3c4\",\n      \"external_id\": \"TICKET-2026-04-25-001234:PURCHASE\",\n      \"type\": \"PURCHASE\",\n      \"occurred_at\": \"string\",\n      \"store\": {\n        \"id\": \"store_cl9z3k1xb0000v8x9d2a1b3c4\",\n        \"external_id\": \"STORE-LYON-001\"\n      },\n      \"profile\": {\n        \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n        \"external_id\": \"crm-customer-4815\"\n      },\n      \"currency\": \"EUR\",\n      \"total_amount_cents\": 12500,\n      \"total_discount_cents\": 0,\n      \"total_tax_cents\": 2083,\n      \"loyalty\": {\n        \"points_earned\": 125,\n        \"points_spent\": 0,\n        \"points_balance\": 1450\n      },\n      \"payments\": [\n        {\n          \"method\": \"CARD\",\n          \"amount_cents\": 12500\n        },\n        {\n          \"method\": \"CARD\",\n          \"amount_cents\": 12500\n        }\n      ],\n      \"source\": \"Cegid POS v3\",\n      \"line_items\": [\n        {\n          \"external_id\": \"LINE-001\",\n          \"product\": {\n            \"external_id\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"name\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"properties\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            }\n          },\n          \"quantity\": 2,\n          \"unit\": \"piece\",\n          \"unit_price_cents\": 5000,\n          \"total_price_cents\": 10000,\n          \"discount_cents\": 0,\n          \"tax_cents\": 1667\n        },\n        {\n          \"external_id\": \"LINE-001\",\n          \"product\": {\n            \"external_id\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"name\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"properties\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            }\n          },\n          \"quantity\": 2,\n          \"unit\": \"piece\",\n          \"unit_price_cents\": 5000,\n          \"total_price_cents\": 10000,\n          \"discount_cents\": 0,\n          \"tax_cents\": 1667\n        }\n      ],\n      \"metadata\": {\n        \"key_0\": 1460\n      },\n      \"created_at\": \"string\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e9141c03-6b54-4c81-8b3c-2ca4212f3618",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "store_id",
                      "value": "STORE-LYON-001"
                    },
                    {
                      "key": "profile_id",
                      "value": "crm-customer-4815"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "since",
                      "value": "2026-04-01T00:00:00.000Z"
                    },
                    {
                      "key": "until",
                      "value": "2026-05-01T00:00:00.000Z"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e5226ecb-e3f8-462f-b694-8cbee23131d8",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "store_id",
                      "value": "STORE-LYON-001"
                    },
                    {
                      "key": "profile_id",
                      "value": "crm-customer-4815"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "since",
                      "value": "2026-04-01T00:00:00.000Z"
                    },
                    {
                      "key": "until",
                      "value": "2026-05-01T00:00:00.000Z"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b7785c9a-e76b-4622-8f95-001004ef27ad",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "store_id",
                      "value": "STORE-LYON-001"
                    },
                    {
                      "key": "profile_id",
                      "value": "crm-customer-4815"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "since",
                      "value": "2026-04-01T00:00:00.000Z"
                    },
                    {
                      "key": "until",
                      "value": "2026-05-01T00:00:00.000Z"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5c44cd78-3e77-45f1-b791-a49f905a5752",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "50"
                    },
                    {
                      "key": "cursor",
                      "value": "eyJpZCI6ImNqMm0wYjlsMDAwMDAwMHU5In0="
                    },
                    {
                      "key": "store_id",
                      "value": "STORE-LYON-001"
                    },
                    {
                      "key": "profile_id",
                      "value": "crm-customer-4815"
                    },
                    {
                      "key": "type",
                      "value": "<string>"
                    },
                    {
                      "key": "since",
                      "value": "2026-04-01T00:00:00.000Z"
                    },
                    {
                      "key": "until",
                      "value": "2026-05-01T00:00:00.000Z"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "770f26a7-059a-4a93-9152-9322b5239bcc",
          "name": "Fetch a sale",
          "request": {
            "name": "Fetch a sale",
            "description": {
              "content": "Returns the sale matching the given reference: your own external_id, or the canonical Noticia id (prefixed `evt_`).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sales-events",
                ":sales_event_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "TICKET-2026-04-25-001234:PURCHASE",
                  "key": "sales_event_id",
                  "description": "(Required) Sales event reference: the external_id you sent when ingesting the sale, or the canonical Noticia id (e.g. `evt_cl9z3k1xb0000v8x9d2a1b3c4`)."
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-api-key"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [
            {
              "id": "4d8baaf7-bff3-4fcd-b6e9-c2f7c413aa6f",
              "name": "The sale.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events",
                    ":sales_event_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "TICKET-2026-04-25-001234:PURCHASE",
                      "key": "sales_event_id",
                      "description": "(Required) Sales event reference: the external_id you sent when ingesting the sale, or the canonical Noticia id (e.g. `evt_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"evt_cl9z3k1xb0000v8x9d2a1b3c4\",\n  \"external_id\": \"TICKET-2026-04-25-001234:PURCHASE\",\n  \"type\": \"PURCHASE\",\n  \"occurred_at\": \"string\",\n  \"store\": {\n    \"id\": \"store_cl9z3k1xb0000v8x9d2a1b3c4\",\n    \"external_id\": \"STORE-LYON-001\"\n  },\n  \"profile\": {\n    \"id\": \"prof_cl9z3k1xb0000v8x9d2a1b3c4\",\n    \"external_id\": \"crm-customer-4815\"\n  },\n  \"currency\": \"EUR\",\n  \"total_amount_cents\": 12500,\n  \"total_discount_cents\": 0,\n  \"total_tax_cents\": 2083,\n  \"loyalty\": {\n    \"points_earned\": 125,\n    \"points_spent\": 0,\n    \"points_balance\": 1450\n  },\n  \"payments\": [\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    },\n    {\n      \"method\": \"CARD\",\n      \"amount_cents\": 12500\n    }\n  ],\n  \"source\": \"Cegid POS v3\",\n  \"line_items\": [\n    {\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"category\": \"Menswear\",\n          \"size\": \"M\"\n        }\n      },\n      \"quantity\": 2,\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"total_price_cents\": 10000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    },\n    {\n      \"external_id\": \"LINE-001\",\n      \"product\": {\n        \"external_id\": \"SKU-12345\",\n        \"name\": \"White T-shirt M\",\n        \"properties\": {\n          \"category\": \"Menswear\",\n          \"size\": \"M\"\n        }\n      },\n      \"quantity\": 2,\n      \"unit\": \"piece\",\n      \"unit_price_cents\": 5000,\n      \"total_price_cents\": 10000,\n      \"discount_cents\": 0,\n      \"tax_cents\": 1667\n    }\n  ],\n  \"metadata\": {\n    \"key_0\": \"string\",\n    \"key_1\": false\n  },\n  \"created_at\": \"string\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "05d39861-e91a-4491-b8dd-bf0964125faf",
              "name": "The request was malformed (body shape, query params).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events",
                    ":sales_event_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "TICKET-2026-04-25-001234:PURCHASE",
                      "key": "sales_event_id",
                      "description": "(Required) Sales event reference: the external_id you sent when ingesting the sale, or the canonical Noticia id (e.g. `evt_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"VALIDATION_ERROR\",\n  \"message\": \"phone_number must be a valid E.164 number.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "05741e42-0fda-49be-99f4-bb60d3ba85e9",
              "name": "Missing, invalid, revoked, or expired API key.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events",
                    ":sales_event_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "TICKET-2026-04-25-001234:PURCHASE",
                      "key": "sales_event_id",
                      "description": "(Required) Sales event reference: the external_id you sent when ingesting the sale, or the canonical Noticia id (e.g. `evt_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"AUTH_INVALID_API_KEY\",\n  \"message\": \"The provided API key is not valid.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bb795572-275b-4dcc-b76f-059a78114988",
              "name": "No sales event matches this reference.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events",
                    ":sales_event_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "TICKET-2026-04-25-001234:PURCHASE",
                      "key": "sales_event_id",
                      "description": "(Required) Sales event reference: the external_id you sent when ingesting the sale, or the canonical Noticia id (e.g. `evt_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RESOURCE_NOT_FOUND\",\n  \"message\": \"No sales event matches this reference.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1f80c94d-f7c3-4652-bcea-3e367a001c71",
              "name": "Rate limit exceeded.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events",
                    ":sales_event_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "TICKET-2026-04-25-001234:PURCHASE",
                      "key": "sales_event_id",
                      "description": "(Required) Sales event reference: the external_id you sent when ingesting the sale, or the canonical Noticia id (e.g. `evt_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"RATE_LIMIT_EXCEEDED\",\n  \"message\": \"Too many requests. Retry after a short delay.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "83f0b6fe-beed-4838-abf7-94a4b25ccdd9",
              "name": "Unexpected server-side error.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "sales-events",
                    ":sales_event_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "TICKET-2026-04-25-001234:PURCHASE",
                      "key": "sales_event_id",
                      "description": "(Required) Sales event reference: the external_id you sent when ingesting the sale, or the canonical Noticia id (e.g. `evt_cl9z3k1xb0000v8x9d2a1b3c4`)."
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-api-key",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"INTERNAL_ERROR\",\n  \"message\": \"An unexpected error occurred. Quote the request_id when contacting support.\",\n  \"request_id\": \"b3f1c8d2-2b9e-4c5e-8a1f-2c7d6a9e4b1a\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    }
  ],
  "event": [],
  "variable": [
    {
      "type": "string",
      "value": "https://api.sms.noticia.ai",
      "key": "baseUrl"
    }
  ],
  "info": {
    "_postman_id": "a71fe074-dbaf-4442-81b0-45b7c5dacabd",
    "name": "Noticia Public API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": {
      "content": "Noticia's REST API for retail integrations. Sync customer profiles, SMS subscriptions (with GDPR/CNIL consent proof), stores and sales events between your CRM, POS or data warehouse and Noticia.\n\nAuthenticate every request with your secret API key in the `x-api-key` header. Errors share a stable `{ code, message, request_id }` envelope, list endpoints are cursor-paginated (`limit` + `cursor`), and writes accept an optional `Idempotency-Key` header.\n\nFull quickstart, guides and concepts: https://docs.sms.noticia.ai\n\nContact Support:\n Name: Noticia\n Email: contact@noticia.ai",
      "type": "text/plain"
    }
  }
}