{
  "info": {
    "_postman_id": "d6afe037-0f3c-4a2e-9a30-fac3a777ee5e",
    "name": "fiskaly SIGN FR (Version 2026-06-01) Postman Collection",
    "description": "Comprehensive Postman collection for the fiskaly SIGN FR API (v5, 2026-06-01).\n\n**Business scenario:** La Maison Doree \u2014 a Parisian bakery-patisserie (boulangerie-patisserie) on Rue de Grenelle, 75007 Paris.\n\n**Covers all transaction types:**\n- RECEIPT (standard sale, deposit, MPV/SPV vouchers)\n- CORRECTION (receipt and invoice credit notes)\n- DUPLICATE (reprint of a receipt)\n- DRAFT_RECEIPT (pre-payment note)\n- ABORT (void an intention)\n- EVENT (JET events)\n- INVOICE (B2B, down payments)\n- PRO_FORMA_INVOICE (quote)\n- PROOF_OF_PAYMENT\n\n**Compliance:**\nAll transactions follow the FR guides:\n- fr_guide_general.md (corrections, document numbers, Grand Totals exemptions)\n- fr_guide_mandatory_API_fields.md (SIRET, creators, product codes, dates)\n- fr_guide_properties_fields.md (mandatory + representative conditional properties)\n\n**Usage:**\n1. Import this collection and the accompanying environment file\n2. Fill in your apiKey and apiSecret in the environment\n3. Run the 'setup' folder first (creates org, subject, taxpayer, location, system)\n4. Run individual record folders or the entire collection sequentially\n\nPostman Collection version: 3.00\nAPI Version: 2026-06-01",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_exporter_id": "50707164"
  },
  "item": [
    {
      "name": "setup",
      "description": "Setup the fiscal environment: management token, organization, subject, operational token, taxpayer, location, and system.",
      "item": [
        {
          "name": "tokens (management)",
          "item": [
            {
              "name": "Create a Token",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"API_KEY\",\n    \"key\": \"{{apiKey}}\",\n    \"secret\": \"{{apiSecret}}\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/tokens",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "tokens"
                  ]
                },
                "description": "Create a management token using the API key and secret."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"apiBearerToken\", data.content.authentication.bearer);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "organizations",
          "item": [
            {
              "name": "Create an Organization::UNIT",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{apiBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"UNIT\",\n    \"name\": \"La Maison Doree SAS\"\n  },\n  \"metadata\": {\n    \"sector\": \"bakery-patisserie\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/organizations",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "organizations"
                  ]
                },
                "description": "Create an organization unit for the bakery."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"organizationUnitId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve an Organization::UNIT",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{apiBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/organizations/{{organizationUnitId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "organizations",
                    "{{organizationUnitId}}"
                  ]
                },
                "description": "Retrieve the organization."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "List Organizations",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{apiBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/organizations",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "organizations"
                  ]
                },
                "description": "List all organizations."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "subjects",
          "item": [
            {
              "name": "Create a Subject::API_KEY",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  },
                  {
                    "key": "X-Scope-Identifier",
                    "value": "{{organizationUnitId}}",
                    "description": "Organization scope"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{apiBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"API_KEY\",\n    \"name\": \"pos-terminal-01\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/subjects",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "subjects"
                  ]
                },
                "description": "Create an operational subject (API key) scoped to the organization."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"subjectApiKey\", data.content.credentials.key);",
                      "    pm.environment.set(\"subjectApiSecret\", data.content.credentials.secret);",
                      "    pm.environment.set(\"subjectApiKeyId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a Subject::API_KEY",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{apiBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/subjects/{{subjectApiKeyId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "subjects",
                    "{{subjectApiKeyId}}"
                  ]
                },
                "description": "Retrieve the subject."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "tokens (operation)",
          "item": [
            {
              "name": "Create a Token",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"API_KEY\",\n    \"key\": \"{{subjectApiKey}}\",\n    \"secret\": \"{{subjectApiSecret}}\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/tokens",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "tokens"
                  ]
                },
                "description": "Create an operational token for day-to-day transactions."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"opBearerToken\", data.content.authentication.bearer);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "taxpayers",
          "item": [
            {
              "name": "Create a Taxpayer::COMPANY",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"COMPANY\",\n    \"name\": {\n      \"legal\": \"La Maison Doree SAS\",\n      \"trade\": \"La Maison Doree\"\n    },\n    \"address\": {\n      \"line\": {\n        \"type\": \"STREET_NUMBER\",\n        \"street\": \"Rue de Grenelle\",\n        \"number\": \"47\"\n      },\n      \"code\": \"75007\",\n      \"city\": \"Paris\",\n      \"country\": \"FR\"\n    },\n    \"fiscalization\": {\n      \"type\": \"FR\",\n      \"tax_id_number\": \"847263915\",\n      \"credentials\": {\n        \"type\": \"LNE\",\n        \"properties\": {\n          \"naf_ape_code\": \"10.71C\",\n          \"vat_number_eu\": \"FR32847263915\",\n          \"legal_form\": \"SAS\",\n          \"rcs_number\": \"RCS Paris B 847 263 915\",\n          \"vat_payment_option\": \"on_debits\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/taxpayers",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "taxpayers"
                  ]
                },
                "description": "Create a taxpayer for the bakery.\n\nMandatory properties (fr_guide_properties_fields.md):\n- naf_ape_code: French business activity code (10.71C = Boulangerie-patisserie)\n- vat_number_eu: Intracommunity VAT number\n- legal_form, rcs_number, vat_payment_option: Required when issuing invoices"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"taxpayerId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a Taxpayer::COMPANY",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/taxpayers/{{taxpayerId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "taxpayers",
                    "{{taxpayerId}}"
                  ]
                },
                "description": "Retrieve the taxpayer."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Update a Taxpayer::COMPANY (Commission)",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"state\": \"COMMISSIONED\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/taxpayers/{{taxpayerId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "taxpayers",
                    "{{taxpayerId}}"
                  ]
                },
                "description": "Commission the taxpayer to activate fiscal operations."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "List Taxpayers",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/taxpayers",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "taxpayers"
                  ]
                },
                "description": "List all taxpayers."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "locations",
          "item": [
            {
              "name": "Create a Location::BRANCH",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"BRANCH\",\n    \"taxpayer\": {\n      \"id\": \"{{taxpayerId}}\"\n    },\n    \"label\": \"84726391500014\",\n    \"name\": \"Maison Doree - Grenelle\",\n    \"address\": {\n      \"line\": {\n        \"type\": \"STREET_NUMBER\",\n        \"street\": \"Rue de Grenelle\",\n        \"number\": \"47\"\n      },\n      \"code\": \"75007\",\n      \"city\": \"Paris\",\n      \"country\": \"FR\"\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/locations",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "locations"
                  ]
                },
                "description": "Create a location for the bakery branch.\n\nMandatory (fr_guide_mandatory_API_fields.md):\n- label: SIRET number (14 digits) \u2014 identifies the establishment"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"locationId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a Location::BRANCH",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/locations/{{locationId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "locations",
                    "{{locationId}}"
                  ]
                },
                "description": "Retrieve the location."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Update a Location::BRANCH (Commission)",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"state\": \"COMMISSIONED\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/locations/{{locationId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "locations",
                    "{{locationId}}"
                  ]
                },
                "description": "Commission the location to start fiscal operations."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "List Locations",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/locations",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "locations"
                  ]
                },
                "description": "List all locations."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "systems",
          "item": [
            {
              "name": "Create a System::FISCAL_DEVICE",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"FISCAL_DEVICE\",\n    \"location\": {\n      \"id\": \"{{locationId}}\"\n    },\n    \"producer\": {\n      \"type\": \"MPN\",\n      \"number\": \"POS-T1-2025\",\n      \"details\": {\n        \"name\": \"SmartPOS Terminal\",\n        \"brand\": \"CashGuard\",\n        \"model\": \"CG-500FR\",\n        \"serial\": \"CG500-2025-001847\",\n        \"label\": \"Checkout Counter 1\",\n        \"date_of_production\": \"2025-03-15\",\n        \"date_of_entry\": \"2025-06-01\"\n      }\n    },\n    \"software\": {\n      \"name\": \"BakeryPOS\",\n      \"version\": \"3.2.1\"\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/systems",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "systems"
                  ]
                },
                "description": "Create a fiscal system (POS terminal) for the bakery."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"systemId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a System::FISCAL_DEVICE",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/systems/{{systemId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "systems",
                    "{{systemId}}"
                  ]
                },
                "description": "Retrieve the system."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Update a System::FISCAL_DEVICE (Commission)",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"state\": \"COMMISSIONED\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/systems/{{systemId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "systems",
                    "{{systemId}}"
                  ]
                },
                "description": "Commission the system to start signing transactions."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "List Systems",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/systems",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "systems"
                  ]
                },
                "description": "List all systems."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        }
      ]
    },
    {
      "name": "records",
      "description": "All record operations: receipts, corrections, duplicates, draft receipts, aborts, events, invoices, pro forma invoices, proofs of payment, deposits, vouchers (MPV/SPV), down payments.",
      "item": [
        {
          "name": "records (RECEIPT)",
          "description": "Issue a standard receipt (Ticket de caisse).\nScenario: Walk-in customer buys baguettes, croissants, and pains au chocolat. Pays cash.",
          "item": [
            {
              "name": "Create a Record::INTENTION",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create a transaction intention."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"recordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a Record::INTENTION",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records/{{recordId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records",
                    "{{recordId}}"
                  ]
                },
                "description": "Retrieve the intention to verify it was created."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::RECEIPT",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{recordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"RECEIPT\",\n      \"document\": {\n        \"number\": \"RE-1\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Baguette Tradition\",\n            \"unit\": {\n              \"quantity\": \"2\",\n              \"price\": {\n                \"inclusive\": \"1.30\",\n                \"exclusive\": \"1.23\"\n              }\n            },\n            \"value\": {\n              \"base\": \"2.46\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_2\",\n              \"percentage\": \"5.50\",\n              \"amount\": \"0.14\",\n              \"exclusive\": \"2.46\",\n              \"inclusive\": \"2.60\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"BAG-TRAD\",\n              \"details\": {\n                \"name\": \"Baguette Tradition\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"1\"\n          }\n        },\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Croissant au Beurre\",\n            \"unit\": {\n              \"quantity\": \"3\",\n              \"price\": {\n                \"inclusive\": \"1.50\",\n                \"exclusive\": \"1.42\"\n              }\n            },\n            \"value\": {\n              \"base\": \"4.27\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_2\",\n              \"percentage\": \"5.50\",\n              \"amount\": \"0.23\",\n              \"exclusive\": \"4.27\",\n              \"inclusive\": \"4.50\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"CRO-BEU\",\n              \"details\": {\n                \"name\": \"Croissant au Beurre\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"2\"\n          }\n        },\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Pain au Chocolat\",\n            \"unit\": {\n              \"quantity\": \"2\",\n              \"price\": {\n                \"inclusive\": \"1.80\",\n                \"exclusive\": \"1.71\"\n              }\n            },\n            \"value\": {\n              \"base\": \"3.41\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_2\",\n              \"percentage\": \"5.50\",\n              \"amount\": \"0.19\",\n              \"exclusive\": \"3.41\",\n              \"inclusive\": \"3.60\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"PAC-001\",\n              \"details\": {\n                \"name\": \"Pain au Chocolat\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"3\"\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"REDUCED_2\",\n          \"percentage\": \"5.50\",\n          \"amount\": \"0.56\",\n          \"exclusive\": \"10.14\",\n          \"inclusive\": \"10.70\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"0.56\",\n          \"exclusive\": \"10.14\",\n          \"inclusive\": \"10.70\"\n        }\n      },\n      \"payments\": [\n        {\n          \"type\": \"CASH\",\n          \"details\": {\n            \"amount\": \"10.70\"\n          }\n        }\n      ],\n      \"customer\": {\n        \"type\": \"EXTERNAL\"\n      },\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false,\n        \"properties\": {\n          \"consumption_grouping\": \"counter-sale\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Sign the receipt transaction.\n\nMandatory fields:\n- details.creators[].label: Operator code (C001)\n- data.product.number: Product code on each entry\n\nConditional properties used:\n- consumption_grouping: Identifies this as a counter sale"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"receiptRecordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a Record::TRANSACTION::RECEIPT",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records/{{receiptRecordId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records",
                    "{{receiptRecordId}}"
                  ]
                },
                "description": "Retrieve the signed receipt."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "records (ABORT)",
          "description": "Abort an intention that was started but will not be completed.\nScenario: Cashier started a transaction by mistake.",
          "item": [
            {
              "name": "Create a Record::INTENTION",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create a transaction intention."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"recordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::ABORT",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{recordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"ABORT\"\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Abort the intention. No fiscal record is created."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"abortRecordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a Record::TRANSACTION::ABORT",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records/{{abortRecordId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records",
                    "{{abortRecordId}}"
                  ]
                },
                "description": "Retrieve the aborted record."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "records (CORRECTION::RECEIPT)",
          "description": "Issue a correction (credit note) for a receipt.\nScenario: Customer returns an eclair due to allergic reaction.\n\nPer fr_guide_general.md:\n- RETURN entries use UNSIGNED values\n- breakdown, totals, payments use NEGATIVE values\n- reference_document_number is MANDATORY in properties",
          "item": [
            {
              "name": "Create a Record::INTENTION",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create intention for the original receipt."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"recordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::RECEIPT (to be corrected)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{recordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"RECEIPT\",\n      \"document\": {\n        \"number\": \"RE-2\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Eclair au Cafe\",\n            \"unit\": {\n              \"quantity\": \"2\",\n              \"price\": {\n                \"inclusive\": \"4.20\",\n                \"exclusive\": \"3.82\"\n              }\n            },\n            \"value\": {\n              \"base\": \"7.64\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"0.76\",\n              \"exclusive\": \"7.64\",\n              \"inclusive\": \"8.40\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"ECL-CAF\",\n              \"details\": {\n                \"name\": \"Eclair au Cafe\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"1\"\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"REDUCED_1\",\n          \"percentage\": \"10.00\",\n          \"amount\": \"0.76\",\n          \"exclusive\": \"7.64\",\n          \"inclusive\": \"8.40\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"0.76\",\n          \"exclusive\": \"7.64\",\n          \"inclusive\": \"8.40\"\n        }\n      },\n      \"payments\": [\n        {\n          \"type\": \"CASH\",\n          \"details\": {\n            \"amount\": \"8.40\"\n          }\n        }\n      ],\n      \"customer\": {\n        \"type\": \"EXTERNAL\"\n      },\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Issue the original receipt that will be corrected."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"originalReceiptId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::INTENTION (correction)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create intention for the correction."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"correctionRecordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::CORRECTION",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{correctionRecordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"CORRECTION\",\n      \"record\": {\n        \"id\": \"{{originalReceiptId}}\"\n      },\n      \"reason\": \"Customer allergic reaction - product return\",\n      \"data\": {\n        \"type\": \"RECEIPT\",\n        \"document\": {\n          \"number\": \"RE-3\"\n        },\n        \"entries\": [\n          {\n            \"type\": \"RETURN\",\n            \"data\": {\n              \"type\": \"ITEM\",\n              \"text\": \"Eclair au Cafe (return)\",\n              \"unit\": {\n                \"quantity\": \"1\",\n                \"price\": {\n                  \"inclusive\": \"4.20\",\n                  \"exclusive\": \"3.82\"\n                }\n              },\n              \"value\": {\n                \"base\": \"3.82\"\n              },\n              \"vat\": {\n                \"type\": \"VAT_RATE\",\n                \"code\": \"REDUCED_1\",\n                \"percentage\": \"10.00\",\n                \"amount\": \"0.38\",\n                \"exclusive\": \"3.82\",\n                \"inclusive\": \"4.20\"\n              },\n              \"product\": {\n                \"type\": \"OTHER\",\n                \"number\": \"ECL-CAF\",\n                \"details\": {\n                  \"name\": \"Eclair au Cafe\"\n                }\n              }\n            },\n            \"details\": {\n              \"concept\": \"GOOD\",\n              \"number\": \"1\"\n            }\n          }\n        ],\n        \"breakdown\": [\n          {\n            \"type\": \"VAT_RATE\",\n            \"code\": \"REDUCED_1\",\n            \"percentage\": \"10.00\",\n            \"amount\": \"0.38\",\n            \"exclusive\": \"3.82\",\n            \"inclusive\": \"4.20\"\n          }\n        ],\n        \"totals\": {\n          \"vat\": {\n            \"amount\": \"0.38\",\n            \"exclusive\": \"3.82\",\n            \"inclusive\": \"4.20\"\n          }\n        },\n        \"payments\": [\n          {\n            \"type\": \"CASH\",\n            \"details\": {\n              \"amount\": \"4.20\"\n            }\n          }\n        ],\n        \"customer\": {\n          \"type\": \"EXTERNAL\"\n        },\n        \"details\": {\n          \"creators\": [\n            {\n              \"type\": \"PERSON\",\n              \"label\": \"C001\"\n            }\n          ],\n          \"training\": false,\n          \"properties\": {\n            \"reference_document_number\": \"RE-2\"\n          }\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Sign the correction.\n\nMandatory (fr_guide_properties_fields.md):\n- reference_document_number: Document number of the original receipt (RE-2)\n\nMandatory (fr_guide_mandatory_API_fields.md):\n- operation.reason: Reason for correction\n- details.creators[].label: Operator code\n- data.product.number: Product code on each entry"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"correctionRecordId_result\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a Record::TRANSACTION::CORRECTION",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records/{{correctionRecordId_result}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records",
                    "{{correctionRecordId_result}}"
                  ]
                },
                "description": "Retrieve the signed correction."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "records (DUPLICATE::RECEIPT)",
          "description": "Issue a duplicate (reprint) of a receipt.\nScenario: Customer requests a copy of their tarte receipt for an expense report.\n\nPer fr_guide_properties_fields.md:\n- document_number (MANDATORY): Sequential number of the duplicate\n- reference_document_number (MANDATORY): Original document number",
          "item": [
            {
              "name": "Create a Record::INTENTION",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create intention for the original receipt."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"recordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::RECEIPT",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{recordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"RECEIPT\",\n      \"document\": {\n        \"number\": \"RE-4\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Tarte aux Fraises (whole)\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"32.00\",\n                \"exclusive\": \"29.09\"\n              }\n            },\n            \"value\": {\n              \"base\": \"29.09\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"2.91\",\n              \"exclusive\": \"29.09\",\n              \"inclusive\": \"32.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"TAR-FRA\",\n              \"details\": {\n                \"name\": \"Tarte aux Fraises\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"1\"\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"REDUCED_1\",\n          \"percentage\": \"10.00\",\n          \"amount\": \"2.91\",\n          \"exclusive\": \"29.09\",\n          \"inclusive\": \"32.00\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"2.91\",\n          \"exclusive\": \"29.09\",\n          \"inclusive\": \"32.00\"\n        }\n      },\n      \"payments\": [\n        {\n          \"type\": \"CARD\",\n          \"details\": {\n            \"amount\": \"32.00\"\n          },\n          \"number\": \"************7842\",\n          \"kind\": \"DEBIT\"\n        }\n      ],\n      \"customer\": {\n        \"type\": \"EXTERNAL\"\n      },\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Issue the receipt to be duplicated."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"duplicateOriginalId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::INTENTION::DUPLICATE",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"DUPLICATE\",\n      \"record\": {\n        \"id\": \"{{duplicateOriginalId}}\"\n      },\n      \"number\": \"1\",\n      \"reason\": \"Customer requested printed copy for expense report\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"properties\": {\n          \"document_number\": \"DUP-1\",\n          \"reference_document_number\": \"RE-4\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create the duplicate intention (single-step, no separate TRANSACTION).\n\nNote: DUPLICATE is an INTENTION-only operation \u2014 it is signed in one step.\n\nMandatory (fr_guide_mandatory_API_fields.md):\n- details.creators[].label: Operator code\n\nMandatory properties (fr_guide_properties_fields.md):\n- document_number: Sequential duplicate number (DUP-1)\n- reference_document_number: Original document number (RE-4)"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"duplicateRecordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a Record::INTENTION::DUPLICATE",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records/{{duplicateRecordId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records",
                    "{{duplicateRecordId}}"
                  ]
                },
                "description": "Retrieve the signed duplicate."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "records (DRAFT_RECEIPT)",
          "description": "Issue a draft receipt (Note de vente) \u2014 pre-payment document.\nScenario: Two customers order lunch at the tea salon area. The note is presented before payment.\n\nNote: DRAFT_RECEIPT has NO payments field (payment happens when converting to a RECEIPT).",
          "item": [
            {
              "name": "Create a Record::INTENTION",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create a transaction intention."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"recordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::DRAFT_RECEIPT",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{recordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"DRAFT_RECEIPT\",\n      \"document\": {\n        \"number\": \"NOTE-1\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Formule Dejeuner (Quiche + Salade + Boisson)\",\n            \"unit\": {\n              \"quantity\": \"2\",\n              \"price\": {\n                \"inclusive\": \"14.50\",\n                \"exclusive\": \"13.18\"\n              }\n            },\n            \"value\": {\n              \"base\": \"26.36\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"2.64\",\n              \"exclusive\": \"26.36\",\n              \"inclusive\": \"29.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"FORM-DEJ\",\n              \"details\": {\n                \"name\": \"Formule Dejeuner\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"SERVICE\",\n            \"number\": \"1\"\n          }\n        },\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Cafe Expresso\",\n            \"unit\": {\n              \"quantity\": \"2\",\n              \"price\": {\n                \"inclusive\": \"2.20\",\n                \"exclusive\": \"2.00\"\n              }\n            },\n            \"value\": {\n              \"base\": \"4.00\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"0.40\",\n              \"exclusive\": \"4.00\",\n              \"inclusive\": \"4.40\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"CAF-EXP\",\n              \"details\": {\n                \"name\": \"Cafe Expresso\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"SERVICE\",\n            \"number\": \"2\"\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"REDUCED_1\",\n          \"percentage\": \"10.00\",\n          \"amount\": \"3.04\",\n          \"exclusive\": \"30.36\",\n          \"inclusive\": \"33.40\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"3.04\",\n          \"exclusive\": \"30.36\",\n          \"inclusive\": \"33.40\"\n        }\n      },\n      \"customer\": {\n        \"type\": \"EXTERNAL\"\n      },\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false,\n        \"properties\": {\n          \"consumption_grouping\": \"Table 7\",\n          \"number_of_customers_or_seats\": \"2\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Sign the draft receipt.\n\nConditional properties:\n- consumption_grouping: Table number\n- number_of_customers_or_seats: Number of guests"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"draftReceiptRecordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a Record::TRANSACTION::DRAFT_RECEIPT",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records/{{draftReceiptRecordId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records",
                    "{{draftReceiptRecordId}}"
                  ]
                },
                "description": "Retrieve the signed draft receipt."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "records (EVENT)",
          "description": "Record a JET event.\nScenario: Operator logs into the POS terminal at start of shift.\n\nJET event code 80: Terminal startup, connection, login\n\nPer fr_guide_general.md: All mandatory and conditional JET events must be implemented per the JET events table.",
          "item": [
            {
              "name": "Create a Record::INTENTION::EVENT",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"EVENT\",\n      \"code\": \"80\",\n      \"description\": \"Terminal startup, connection, login\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Record JET event 80 (terminal startup).\n\nThe EVENT type is signed in a single step (INTENTION only, no TRANSACTION).\n\nMandatory:\n- code: JET event code\n- description: Human-readable event description\n- details.creators[].label: Operator code"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"eventRecordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a Record::INTENTION::EVENT",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records/{{eventRecordId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records",
                    "{{eventRecordId}}"
                  ]
                },
                "description": "Retrieve the signed event."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "records (PROOF_OF_PAYMENT)",
          "description": "Issue a proof of payment.\nScenario: Customer pays for their mille-feuilles, and a proof of payment is printed.\n\nMandatory properties (fr_guide_properties_fields.md):\n- document_number: Sequential proof of payment number (POP-1)\n\nConditional properties:\n- consumption_grouping, number_of_customers_or_seats",
          "item": [
            {
              "name": "Create a Record::INTENTION",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create intention for the reference receipt."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"recordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::RECEIPT (reference)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{recordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"RECEIPT\",\n      \"document\": {\n        \"number\": \"RE-5\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Mille-feuille Vanille\",\n            \"unit\": {\n              \"quantity\": \"2\",\n              \"price\": {\n                \"inclusive\": \"5.50\",\n                \"exclusive\": \"5.00\"\n              }\n            },\n            \"value\": {\n              \"base\": \"10.00\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"1.00\",\n              \"exclusive\": \"10.00\",\n              \"inclusive\": \"11.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"MIL-VAN\",\n              \"details\": {\n                \"name\": \"Mille-feuille Vanille\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"1\"\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"REDUCED_1\",\n          \"percentage\": \"10.00\",\n          \"amount\": \"1.00\",\n          \"exclusive\": \"10.00\",\n          \"inclusive\": \"11.00\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"1.00\",\n          \"exclusive\": \"10.00\",\n          \"inclusive\": \"11.00\"\n        }\n      },\n      \"payments\": [\n        {\n          \"type\": \"CASH\",\n          \"details\": {\n            \"amount\": \"11.00\"\n          }\n        }\n      ],\n      \"customer\": {\n        \"type\": \"EXTERNAL\"\n      },\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Issue the receipt that the proof of payment references."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"popReferenceId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::INTENTION (proof of payment)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create intention for the proof of payment."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"popRecordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::PROOF_OF_PAYMENT",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{popRecordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"PROOF_OF_PAYMENT\",\n      \"record\": {\n        \"id\": \"{{popReferenceId}}\"\n      },\n      \"payments\": [\n        {\n          \"type\": \"CASH\",\n          \"details\": {\n            \"amount\": \"11.00\"\n          }\n        }\n      ],\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false,\n        \"properties\": {\n          \"document_number\": \"POP-1\",\n          \"consumption_grouping\": \"Table 3\",\n          \"number_of_customers_or_seats\": \"2\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Sign the proof of payment."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"popResultId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a Record::TRANSACTION::PROOF_OF_PAYMENT",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records/{{popResultId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records",
                    "{{popResultId}}"
                  ]
                },
                "description": "Retrieve the signed proof of payment."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "records (RECEIPT - Single-Purpose Voucher)",
          "description": "Single-Purpose Voucher (SPV) workflow: issuance and redemption.\nScenario: Customer buys a 25 EUR patisserie voucher (cakes only). Later redeemed for a Tarte Tatin.\n\nPer fr_guide_general.md:\n- SPV issuance: VAT charged at issuance (specific product category known)\n- SPV redemption: SALE for product + RETURN for voucher value (net 0 additional VAT)\n- RETURN entry uses purpose=GIFT (Grand Totals exemption)\n- reference_record + reference_document_number mandatory",
          "item": [
            {
              "name": "Create a Record::INTENTION",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create intention for SPV issuance."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"recordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::RECEIPT (SPV Issuance)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{recordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"RECEIPT\",\n      \"document\": {\n        \"number\": \"RE-10\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Patisserie Voucher 25 EUR (cakes & tarts only)\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"25.00\",\n                \"exclusive\": \"22.73\"\n              }\n            },\n            \"value\": {\n              \"base\": \"22.73\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"2.27\",\n              \"exclusive\": \"22.73\",\n              \"inclusive\": \"25.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"SPV-PAT-25\",\n              \"details\": {\n                \"name\": \"Patisserie Voucher 25 EUR\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"purpose\": \"GIFT\",\n            \"number\": \"1\",\n            \"properties\": {\n              \"voucher_transaction_type\": \"SINGLE_PURPOSE_VOUCHER_ISSUANCE\",\n              \"voucher_id\": \"SPV-2026-000312\"\n            }\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"REDUCED_1\",\n          \"percentage\": \"10.00\",\n          \"amount\": \"2.27\",\n          \"exclusive\": \"22.73\",\n          \"inclusive\": \"25.00\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"2.27\",\n          \"exclusive\": \"22.73\",\n          \"inclusive\": \"25.00\"\n        }\n      },\n      \"payments\": [\n        {\n          \"type\": \"CASH\",\n          \"details\": {\n            \"amount\": \"25.00\"\n          }\n        }\n      ],\n      \"customer\": {\n        \"type\": \"EXTERNAL\"\n      },\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false,\n        \"properties\": {\n          \"consumption_grouping\": \"counter-sale\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Issue the single-purpose voucher.\n\nKey points:\n- Entry type: SALE (not VOUCHER)\n- VAT: Charged at issuance (product category known)\n- purpose: GIFT (Grand Totals exemption)\n- voucher_transaction_type in properties identifies it as SPV"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"spvIssuanceId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::INTENTION (SPV redemption)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create intention for SPV redemption."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"spvRedeemRecordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::RECEIPT (SPV Redemption)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{spvRedeemRecordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"RECEIPT\",\n      \"document\": {\n        \"number\": \"RE-11\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Tarte Tatin (individual)\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"25.00\",\n                \"exclusive\": \"22.73\"\n              }\n            },\n            \"value\": {\n              \"base\": \"22.73\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"2.27\",\n              \"exclusive\": \"22.73\",\n              \"inclusive\": \"25.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"TAR-TAT\",\n              \"details\": {\n                \"name\": \"Tarte Tatin\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"1\"\n          }\n        },\n        {\n          \"type\": \"RETURN\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"SPV Redemption - Patisserie Voucher\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"25.00\",\n                \"exclusive\": \"22.73\"\n              }\n            },\n            \"value\": {\n              \"base\": \"22.73\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"2.27\",\n              \"exclusive\": \"22.73\",\n              \"inclusive\": \"25.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"SPV-PAT-25\",\n              \"details\": {\n                \"name\": \"Patisserie Voucher 25 EUR\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"purpose\": \"GIFT\",\n            \"number\": \"2\",\n            \"properties\": {\n              \"voucher_transaction_type\": \"SINGLE_PURPOSE_VOUCHER_REDEMPTION\",\n              \"voucher_id\": \"SPV-2026-000312\"\n            }\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"REDUCED_1\",\n          \"percentage\": \"10.00\",\n          \"amount\": \"0.00\",\n          \"exclusive\": \"0.00\",\n          \"inclusive\": \"0.00\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"0.00\",\n          \"exclusive\": \"0.00\",\n          \"inclusive\": \"0.00\"\n        }\n      },\n      \"payments\": [\n        {\n          \"type\": \"VOUCHER\",\n          \"details\": {\n            \"amount\": \"0.00\"\n          },\n          \"number\": \"***************0312\",\n          \"kind\": \"SINGLE\"\n        }\n      ],\n      \"customer\": {\n        \"type\": \"EXTERNAL\"\n      },\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false,\n        \"properties\": {\n          \"reference_record\": \"{{spvIssuanceId}}\",\n          \"reference_document_number\": \"RE-10\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Redeem the single-purpose voucher.\n\nKey points:\n- SALE: Product being purchased (Tarte Tatin)\n- RETURN: Voucher value deducted (purpose=GIFT for Grand Totals exemption)\n- Net VAT = 0 (already charged at issuance)\n- Payment: VOUCHER with kind: SINGLE, ISO 7812 number"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"spvRedeemResultId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "records (RECEIPT - Multi-Purpose Voucher)",
          "description": "Multi-Purpose Voucher (MPV) workflow: issuance and redemption.\nScenario: Customer buys a 50 EUR gift card. Later, another customer redeems it for macarons and financiers.\n\nPer fr_guide_general.md:\n- MPV issuance: No VAT (NOT_SUBJECT), purpose=GIFT (Grand Totals exemption)\n- MPV redemption: Full VAT charged, VOUCHER payment type\n- reference_record + reference_document_number mandatory at redemption",
          "item": [
            {
              "name": "Create a Record::INTENTION",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create intention for MPV issuance."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"recordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::RECEIPT (MPV Issuance)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{recordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"RECEIPT\",\n      \"document\": {\n        \"number\": \"RE-8\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Gift Card 50 EUR - La Maison Doree\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"50.00\",\n                \"exclusive\": \"50.00\"\n              }\n            },\n            \"value\": {\n              \"base\": \"50.00\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_EXEMPTION\",\n              \"code\": \"NOT_SUBJECT\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"GC-050\",\n              \"details\": {\n                \"name\": \"Gift Card 50 EUR\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"purpose\": \"GIFT\",\n            \"number\": \"1\",\n            \"properties\": {\n              \"voucher_transaction_type\": \"MULTI_PURPOSE_VOUCHER_ISSUANCE\",\n              \"voucher_id\": \"GC-2026-001847\"\n            }\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_EXEMPTION\",\n          \"code\": \"NOT_SUBJECT\",\n          \"exclusive\": \"50.00\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"0.00\",\n          \"exclusive\": \"50.00\",\n          \"inclusive\": \"50.00\"\n        }\n      },\n      \"payments\": [\n        {\n          \"type\": \"CASH\",\n          \"details\": {\n            \"amount\": \"50.00\"\n          }\n        }\n      ],\n      \"customer\": {\n        \"type\": \"EXTERNAL\"\n      },\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false,\n        \"properties\": {\n          \"consumption_grouping\": \"counter-sale\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Issue the multi-purpose voucher (gift card).\n\nKey points:\n- Entry type: SALE (not VOUCHER)\n- VAT: NOT_SUBJECT (no VAT at issuance for MPV)\n- purpose: GIFT (exempts from Grand Totals)\n- voucher_transaction_type in properties identifies it as MPV"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"mpvIssuanceId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::INTENTION (MPV redemption)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create intention for MPV redemption."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"mpvRedeemRecordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::RECEIPT (MPV Redemption)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{mpvRedeemRecordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"RECEIPT\",\n      \"document\": {\n        \"number\": \"RE-9\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Box of 12 Macarons (assorted)\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"28.00\",\n                \"exclusive\": \"25.45\"\n              }\n            },\n            \"value\": {\n              \"base\": \"25.45\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"2.55\",\n              \"exclusive\": \"25.45\",\n              \"inclusive\": \"28.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"MAC-BOX-12\",\n              \"details\": {\n                \"name\": \"Box 12 Macarons\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"1\"\n          }\n        },\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Financiers aux Amandes (6 pieces)\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"12.00\",\n                \"exclusive\": \"10.91\"\n              }\n            },\n            \"value\": {\n              \"base\": \"10.91\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"1.09\",\n              \"exclusive\": \"10.91\",\n              \"inclusive\": \"12.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"FIN-AMD-6\",\n              \"details\": {\n                \"name\": \"Financiers Amandes 6pc\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"2\"\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"REDUCED_1\",\n          \"percentage\": \"10.00\",\n          \"amount\": \"3.64\",\n          \"exclusive\": \"36.36\",\n          \"inclusive\": \"40.00\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"3.64\",\n          \"exclusive\": \"36.36\",\n          \"inclusive\": \"40.00\"\n        }\n      },\n      \"payments\": [\n        {\n          \"type\": \"VOUCHER\",\n          \"details\": {\n            \"amount\": \"40.00\"\n          },\n          \"number\": \"***************1847\",\n          \"kind\": \"MULTIPLE\"\n        }\n      ],\n      \"customer\": {\n        \"type\": \"EXTERNAL\"\n      },\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false,\n        \"properties\": {\n          \"reference_record\": \"{{mpvIssuanceId}}\",\n          \"reference_document_number\": \"RE-8\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Redeem the multi-purpose voucher.\n\nKey points:\n- VAT charged now (at redemption)\n- Payment type: VOUCHER with kind: MULTIPLE\n- number: ISO 7812 format (max 19 chars, only * and digits)\n- reference_record + reference_document_number in properties"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"mpvRedeemResultId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "records (RECEIPT - Deposit)",
          "description": "Deposit (non-binding advance payment) workflow: issuance and balance.\nScenario: Customer places a 100 EUR deposit for a custom birthday cake. The final order (cake + decoration) totals 148 EUR, so the customer pays 48 EUR extra at pickup.\n\nPer fr_guide_general.md:\n- Deposits are VAT exempt (NOT_SUBJECT) until final sale\n- purpose=GIFT exempts from Grand Totals\n- Deposit credited on payment level at balance",
          "item": [
            {
              "name": "Create a Record::INTENTION",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create intention for deposit issuance."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"recordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::RECEIPT (Deposit Issuance)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{recordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"RECEIPT\",\n      \"document\": {\n        \"number\": \"RE-6\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Deposit - Custom Birthday Cake (goods not yet defined)\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"100.00\",\n                \"exclusive\": \"100.00\"\n              }\n            },\n            \"value\": {\n              \"base\": \"100.00\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_EXEMPTION\",\n              \"code\": \"NOT_SUBJECT\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"DEP-CUST\",\n              \"details\": {\n                \"name\": \"Deposit Custom Cake\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"purpose\": \"GIFT\",\n            \"number\": \"1\"\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_EXEMPTION\",\n          \"code\": \"NOT_SUBJECT\",\n          \"exclusive\": \"100.00\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"0.00\",\n          \"exclusive\": \"100.00\",\n          \"inclusive\": \"100.00\"\n        }\n      },\n      \"payments\": [\n        {\n          \"type\": \"CASH\",\n          \"details\": {\n            \"amount\": \"100.00\"\n          }\n        }\n      ],\n      \"customer\": {\n        \"type\": \"EXTERNAL\"\n      },\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false,\n        \"properties\": {\n          \"consumption_grouping\": \"counter-sale\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Issue the deposit receipt.\n\npurpose=GIFT: Exempts from Grand Totals (fr_guide_general.md)\nVAT_EXEMPTION NOT_SUBJECT: No VAT on non-binding deposit"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"depositIssuanceId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::INTENTION (deposit balance)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create intention for the deposit balance."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"depositBalanceRecordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::RECEIPT (Deposit Balance)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{depositBalanceRecordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"RECEIPT\",\n      \"document\": {\n        \"number\": \"RE-7\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Custom Birthday Cake - Chocolate & Caramel (10 persons)\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"130.00\",\n                \"exclusive\": \"118.18\"\n              }\n            },\n            \"value\": {\n              \"base\": \"118.18\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"11.82\",\n              \"exclusive\": \"118.18\",\n              \"inclusive\": \"130.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"CAK-CUST-10\",\n              \"details\": {\n                \"name\": \"Custom Birthday Cake 10p\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"1\"\n          }\n        },\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Birthday Candles & Decoration Set\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"18.00\",\n                \"exclusive\": \"15.00\"\n              }\n            },\n            \"value\": {\n              \"base\": \"15.00\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"STANDARD\",\n              \"percentage\": \"20.00\",\n              \"amount\": \"3.00\",\n              \"exclusive\": \"15.00\",\n              \"inclusive\": \"18.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"ACC-CNDL-DEC\",\n              \"details\": {\n                \"name\": \"Birthday Candles & Decoration\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"2\"\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"REDUCED_1\",\n          \"percentage\": \"10.00\",\n          \"amount\": \"11.82\",\n          \"exclusive\": \"118.18\",\n          \"inclusive\": \"130.00\"\n        },\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"STANDARD\",\n          \"percentage\": \"20.00\",\n          \"amount\": \"3.00\",\n          \"exclusive\": \"15.00\",\n          \"inclusive\": \"18.00\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"14.82\",\n          \"exclusive\": \"133.18\",\n          \"inclusive\": \"148.00\"\n        }\n      },\n      \"payments\": [\n        {\n          \"type\": \"OTHER\",\n          \"details\": {\n            \"amount\": \"100.00\",\n            \"properties\": {\n              \"code_payment_method\": \"DEPOSIT_OFFSET\"\n            }\n          }\n        },\n        {\n          \"type\": \"CARD\",\n          \"details\": {\n            \"amount\": \"48.00\"\n          },\n          \"number\": \"************3156\",\n          \"kind\": \"DEBIT\"\n        }\n      ],\n      \"customer\": {\n        \"type\": \"EXTERNAL\"\n      },\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false,\n        \"properties\": {\n          \"reference_record\": \"{{depositIssuanceId}}\",\n          \"reference_document_number\": \"RE-6\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Issue the final receipt, crediting the deposit on payment level.\n\nPer fr_guide_general.md:\n- reference_record + reference_document_number in properties\n- Deposit offset as OTHER payment with code_payment_method: DEPOSIT_OFFSET"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"depositBalanceResultId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "records (INVOICE - Down Payment)",
          "description": "Down Payment (binding advance) workflow: issuance and balance.\nScenario: Corporate catering order \u2014 10% down payment for a 120-guest garden party, then final invoice crediting the down payment.\n\nPer fr_guide_general.md:\n- Down payment recorded as INVOICE (VAT due immediately)\n- Down payment credited on entries level as RETURN on final invoice\n- reference_record + reference_document_number mandatory\n- down_payments_received property on final invoice",
          "item": [
            {
              "name": "Create a Record::INTENTION",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create intention for down payment invoice."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"recordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::INVOICE (Down Payment)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{recordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"INVOICE\",\n      \"document\": {\n        \"number\": \"IN-1\",\n        \"issued_at\": \"2026-06-01T14:00:00+02:00\",\n        \"operation_date\": \"2026-06-01\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"10% Down Payment - Summer Garden Party Catering (120 guests)\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"144.00\",\n                \"exclusive\": \"120.00\"\n              }\n            },\n            \"value\": {\n              \"base\": \"120.00\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"STANDARD\",\n              \"percentage\": \"20.00\",\n              \"amount\": \"24.00\",\n              \"exclusive\": \"120.00\",\n              \"inclusive\": \"144.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"CAT-GARDEN\",\n              \"details\": {\n                \"name\": \"Catering Garden Party\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"SERVICE\",\n            \"number\": \"1\",\n            \"properties\": {\n              \"unit_price_excl_vat\": \"120.00\"\n            }\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"STANDARD\",\n          \"percentage\": \"20.00\",\n          \"amount\": \"24.00\",\n          \"exclusive\": \"120.00\",\n          \"inclusive\": \"144.00\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"24.00\",\n          \"exclusive\": \"120.00\",\n          \"inclusive\": \"144.00\"\n        }\n      },\n      \"recipients\": [\n        {\n          \"type\": \"BUSINESS\",\n          \"name\": \"Editions Gallimard SA\",\n          \"address\": {\n            \"line\": {\n              \"type\": \"STREET_NUMBER\",\n              \"street\": \"Rue Gaston-Gallimard\",\n              \"number\": \"5\"\n            },\n            \"code\": \"75007\",\n            \"city\": \"Paris\",\n            \"country\": \"FR\"\n          },\n          \"identification\": {\n            \"type\": \"VAT\",\n            \"number\": \"FR91572073598\"\n          }\n        }\n      ],\n      \"payments\": [\n        {\n          \"type\": \"ONLINE\",\n          \"name\": \"Bank Transfer\",\n          \"details\": {\n            \"amount\": \"144.00\"\n          }\n        }\n      ],\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false,\n        \"properties\": {\n          \"professional_customer_number\": \"CLI-0891\",\n          \"purchase_order_reference\": \"PO-GALL-2026-067\",\n          \"customer_siret\": \"57207359800035\",\n          \"down_payment_date\": \"2026-06-01\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Issue the down payment invoice.\n\nPer fr_guide_general.md: Down payment is a binding advance \u2014 VAT is due immediately.\nOnly mention the payable down payment amount, not the full contract value."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"dpInvoiceId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::INTENTION (final invoice)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create intention for the final invoice."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"dpBalanceRecordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::INVOICE (Down Payment Balance)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{dpBalanceRecordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"INVOICE\",\n      \"document\": {\n        \"number\": \"IN-2\",\n        \"issued_at\": \"2026-06-15T16:00:00+02:00\",\n        \"operation_date\": \"2026-06-14\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Summer Garden Party Catering - Full Service (120 guests)\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"1440.00\",\n                \"exclusive\": \"1200.00\"\n              }\n            },\n            \"value\": {\n              \"base\": \"1200.00\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"STANDARD\",\n              \"percentage\": \"20.00\",\n              \"amount\": \"240.00\",\n              \"exclusive\": \"1200.00\",\n              \"inclusive\": \"1440.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"CAT-GARDEN\",\n              \"details\": {\n                \"name\": \"Catering Garden Party Full\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"SERVICE\",\n            \"number\": \"1\",\n            \"properties\": {\n              \"unit_price_excl_vat\": \"1200.00\"\n            }\n          }\n        },\n        {\n          \"type\": \"RETURN\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Credit: Down Payment (IN-1)\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"144.00\",\n                \"exclusive\": \"120.00\"\n              }\n            },\n            \"value\": {\n              \"base\": \"120.00\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"STANDARD\",\n              \"percentage\": \"20.00\",\n              \"amount\": \"24.00\",\n              \"exclusive\": \"120.00\",\n              \"inclusive\": \"144.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"CAT-GARDEN\",\n              \"details\": {\n                \"name\": \"Down Payment Credit\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"SERVICE\",\n            \"number\": \"2\",\n            \"properties\": {\n              \"unit_price_excl_vat\": \"120.00\"\n            }\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"STANDARD\",\n          \"percentage\": \"20.00\",\n          \"amount\": \"216.00\",\n          \"exclusive\": \"1080.00\",\n          \"inclusive\": \"1296.00\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"216.00\",\n          \"exclusive\": \"1080.00\",\n          \"inclusive\": \"1296.00\"\n        }\n      },\n      \"recipients\": [\n        {\n          \"type\": \"BUSINESS\",\n          \"name\": \"Editions Gallimard SA\",\n          \"address\": {\n            \"line\": {\n              \"type\": \"STREET_NUMBER\",\n              \"street\": \"Rue Gaston-Gallimard\",\n              \"number\": \"5\"\n            },\n            \"code\": \"75007\",\n            \"city\": \"Paris\",\n            \"country\": \"FR\"\n          },\n          \"identification\": {\n            \"type\": \"VAT\",\n            \"number\": \"FR91572073598\"\n          }\n        }\n      ],\n      \"payments\": [\n        {\n          \"type\": \"ONLINE\",\n          \"name\": \"Bank Transfer\",\n          \"details\": {\n            \"amount\": \"1296.00\"\n          }\n        }\n      ],\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false,\n        \"properties\": {\n          \"professional_customer_number\": \"CLI-0891\",\n          \"purchase_order_reference\": \"PO-GALL-2026-067\",\n          \"customer_siret\": \"57207359800035\",\n          \"down_payments_received\": \"true\",\n          \"reference_record\": \"{{dpInvoiceId}}\",\n          \"reference_document_number\": \"IN-1\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Issue the final invoice, crediting the down payment.\n\nKey points:\n- Full service as SALE entry\n- Down payment credited as RETURN entry (unsigned values)\n- Breakdown/totals reflect net (1440-144 = 1296)\n- down_payments_received: 'true' in properties"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"dpBalanceResultId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "records (INVOICE)",
          "description": "Issue a B2C invoice.\nScenario: Private catering order \u2014 viennoiseries buffet, macarons, and delivery for a family communion celebration.\n\nMandatory (fr_guide_mandatory_API_fields.md):\n- document.issued_at, document.operation_date\n- details.creators[].label\n- data.product.number on each entry\n\nMandatory properties (fr_guide_properties_fields.md):\n- consumer_account_number: B2C customer account\n\nConditional properties used:\n- invoice_transmission_method",
          "item": [
            {
              "name": "Create a Record::INTENTION",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create a transaction intention."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"recordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::INVOICE",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{recordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"INVOICE\",\n      \"document\": {\n        \"number\": \"IN-3\",\n        \"issued_at\": \"2026-06-01T10:30:00+02:00\",\n        \"operation_date\": \"2026-06-01\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Buffet Viennoiseries (50 pieces assorted)\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"180.00\",\n                \"exclusive\": \"163.64\"\n              }\n            },\n            \"value\": {\n              \"base\": \"163.64\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"16.36\",\n              \"exclusive\": \"163.64\",\n              \"inclusive\": \"180.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"CAT-VIE-50\",\n              \"details\": {\n                \"name\": \"Buffet Viennoiseries 50pc\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"1\",\n            \"properties\": {\n              \"unit_price_excl_vat\": \"163.64\"\n            }\n          }\n        },\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Assortiment Macarons (100 pieces)\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"250.00\",\n                \"exclusive\": \"227.27\"\n              }\n            },\n            \"value\": {\n              \"base\": \"227.27\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"22.73\",\n              \"exclusive\": \"227.27\",\n              \"inclusive\": \"250.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"CAT-MAC-100\",\n              \"details\": {\n                \"name\": \"Assortiment Macarons 100pc\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"2\",\n            \"properties\": {\n              \"unit_price_excl_vat\": \"227.27\"\n            }\n          }\n        },\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Delivery and Setup Service\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"60.00\",\n                \"exclusive\": \"50.00\"\n              }\n            },\n            \"value\": {\n              \"base\": \"50.00\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"STANDARD\",\n              \"percentage\": \"20.00\",\n              \"amount\": \"10.00\",\n              \"exclusive\": \"50.00\",\n              \"inclusive\": \"60.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"SVC-DELIV\",\n              \"details\": {\n                \"name\": \"Delivery and Setup\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"SERVICE\",\n            \"number\": \"3\",\n            \"properties\": {\n              \"unit_price_excl_vat\": \"50.00\"\n            }\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"REDUCED_1\",\n          \"percentage\": \"10.00\",\n          \"amount\": \"39.09\",\n          \"exclusive\": \"390.91\",\n          \"inclusive\": \"430.00\"\n        },\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"STANDARD\",\n          \"percentage\": \"20.00\",\n          \"amount\": \"10.00\",\n          \"exclusive\": \"50.00\",\n          \"inclusive\": \"60.00\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"49.09\",\n          \"exclusive\": \"440.91\",\n          \"inclusive\": \"490.00\"\n        }\n      },\n      \"recipients\": [\n        {\n          \"type\": \"CONSUMER\",\n          \"name\": {\n            \"gender\": \"FEMALE\",\n            \"forename\": \"Claire\",\n            \"surname\": \"Beaumont\"\n          },\n          \"address\": {\n            \"line\": {\n              \"type\": \"STREET_NUMBER\",\n              \"street\": \"Boulevard Saint-Germain\",\n              \"number\": \"15\"\n            },\n            \"code\": \"75006\",\n            \"city\": \"Paris\",\n            \"country\": \"FR\"\n          }\n        }\n      ],\n      \"payments\": [\n        {\n          \"type\": \"ONLINE\",\n          \"name\": \"Bank Transfer\",\n          \"details\": {\n            \"amount\": \"490.00\"\n          }\n        }\n      ],\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false,\n        \"properties\": {\n          \"consumer_account_number\": \"TIE-00892\",\n          \"invoice_transmission_method\": \"electronic\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Sign the B2C invoice."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"invoiceRecordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a Record::TRANSACTION::INVOICE",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records/{{invoiceRecordId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records",
                    "{{invoiceRecordId}}"
                  ]
                },
                "description": "Retrieve the signed invoice."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "records (CORRECTION::INVOICE)",
          "description": "Issue a correction (credit note) for an invoice.\nScenario: The delivery service for the catering order (IN-3) is cancelled. Partial credit note issued.\n\nPer fr_guide_general.md:\n- RETURN entries use UNSIGNED values\n- breakdown, totals, payments use NEGATIVE values\n- reason field is mandatory\n\nPer fr_guide_mandatory_API_fields.md:\n- document.issued_at, document.operation_date on correction data\n- details.creators[].label, data.product.number",
          "item": [
            {
              "name": "Create a Record::INTENTION",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create intention for the invoice correction."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"recordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::CORRECTION (Invoice)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{recordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"CORRECTION\",\n      \"record\": {\n        \"id\": \"{{invoiceRecordId}}\"\n      },\n      \"reason\": \"Delivery cancelled by customer - full refund\",\n      \"data\": {\n        \"type\": \"INVOICE\",\n        \"document\": {\n          \"number\": \"IN-4\",\n          \"issued_at\": \"2026-06-02T10:00:00+02:00\",\n          \"operation_date\": \"2026-06-02\"\n        },\n        \"entries\": [\n          {\n            \"type\": \"RETURN\",\n            \"data\": {\n              \"type\": \"ITEM\",\n              \"text\": \"Void: Delivery and Setup Service\",\n              \"unit\": {\n                \"quantity\": \"1\",\n                \"price\": {\n                  \"inclusive\": \"60.00\",\n                  \"exclusive\": \"50.00\"\n                }\n              },\n              \"value\": {\n                \"base\": \"50.00\"\n              },\n              \"vat\": {\n                \"type\": \"VAT_RATE\",\n                \"code\": \"STANDARD\",\n                \"percentage\": \"20.00\",\n                \"amount\": \"10.00\",\n                \"exclusive\": \"50.00\",\n                \"inclusive\": \"60.00\"\n              },\n              \"product\": {\n                \"type\": \"OTHER\",\n                \"number\": \"SVC-DELIV\",\n                \"details\": {\n                  \"name\": \"Delivery and Setup\"\n                }\n              }\n            },\n            \"details\": {\n              \"concept\": \"SERVICE\",\n              \"number\": \"1\",\n              \"properties\": {\n                \"unit_price_excl_vat\": \"50.00\"\n              }\n            }\n          }\n        ],\n        \"breakdown\": [\n          {\n            \"type\": \"VAT_RATE\",\n            \"code\": \"STANDARD\",\n            \"percentage\": \"20.00\",\n            \"amount\": \"10.00\",\n            \"exclusive\": \"50.00\",\n            \"inclusive\": \"60.00\"\n          }\n        ],\n        \"totals\": {\n          \"vat\": {\n            \"amount\": \"10.00\",\n            \"exclusive\": \"50.00\",\n            \"inclusive\": \"60.00\"\n          }\n        },\n        \"recipients\": [\n          {\n            \"type\": \"CONSUMER\",\n            \"name\": {\n              \"gender\": \"FEMALE\",\n              \"forename\": \"Claire\",\n              \"surname\": \"Beaumont\"\n            },\n            \"address\": {\n              \"line\": {\n                \"type\": \"STREET_NUMBER\",\n                \"street\": \"Boulevard Saint-Germain\",\n                \"number\": \"15\"\n              },\n              \"code\": \"75006\",\n              \"city\": \"Paris\",\n              \"country\": \"FR\"\n            }\n          }\n        ],\n        \"payments\": [\n          {\n            \"type\": \"ONLINE\",\n            \"name\": \"Bank Transfer Refund\",\n            \"details\": {\n              \"amount\": \"60.00\"\n            }\n          }\n        ],\n        \"details\": {\n          \"creators\": [\n            {\n              \"type\": \"PERSON\",\n              \"label\": \"C001\"\n            }\n          ],\n          \"training\": false,\n          \"properties\": {\n            \"consumer_account_number\": \"TIE-00892\",\n            \"reference_document_number\": \"IN-3\"\n          }\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Sign the invoice correction (credit note)."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"correctionInvoiceId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a Record::TRANSACTION::CORRECTION (Invoice)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records/{{correctionInvoiceId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records",
                    "{{correctionInvoiceId}}"
                  ]
                },
                "description": "Retrieve the signed invoice correction."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "records (PRO_FORMA_INVOICE)",
          "description": "Issue a pro forma invoice (quote).\nScenario: Customer requests a quote for a wedding cake with decorative sugar flowers.\n\nNote: PRO_FORMA_INVOICE has NO payments (not a demand for payment).\n\nMandatory (fr_guide_mandatory_API_fields.md):\n- document.issued_at, document.operation_date\n- details.creators[].label\n- data.product.number\n\nMandatory properties (fr_guide_properties_fields.md):\n- consumer_account_number: B2C customer ID",
          "item": [
            {
              "name": "Create a Record::INTENTION",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"INTENTION\",\n    \"system\": {\n      \"id\": \"{{systemId}}\"\n    },\n    \"operation\": {\n      \"type\": \"TRANSACTION\",\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ]\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Create a transaction intention."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"recordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Create a Record::TRANSACTION::PRO_FORMA_INVOICE",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  },
                  {
                    "key": "X-Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "(Required) Idempotency key"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"content\": {\n    \"type\": \"TRANSACTION\",\n    \"record\": {\n      \"id\": \"{{recordId}}\"\n    },\n    \"operation\": {\n      \"type\": \"PRO_FORMA_INVOICE\",\n      \"document\": {\n        \"number\": \"PF-1\",\n        \"issued_at\": \"2026-06-01T09:00:00+02:00\",\n        \"operation_date\": \"2026-06-01\"\n      },\n      \"entries\": [\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Wedding Cake 3-Tier (Vanilla & Raspberry)\",\n            \"unit\": {\n              \"quantity\": \"1\",\n              \"price\": {\n                \"inclusive\": \"450.00\",\n                \"exclusive\": \"409.09\"\n              }\n            },\n            \"value\": {\n              \"base\": \"409.09\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"40.91\",\n              \"exclusive\": \"409.09\",\n              \"inclusive\": \"450.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"WED-3T-VR\",\n              \"details\": {\n                \"name\": \"Wedding Cake 3-Tier\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"1\",\n            \"properties\": {\n              \"unit_price_excl_vat\": \"409.09\"\n            }\n          }\n        },\n        {\n          \"type\": \"SALE\",\n          \"data\": {\n            \"type\": \"ITEM\",\n            \"text\": \"Decorative Sugar Flowers (handmade)\",\n            \"unit\": {\n              \"quantity\": \"12\",\n              \"price\": {\n                \"inclusive\": \"8.50\",\n                \"exclusive\": \"7.73\"\n              }\n            },\n            \"value\": {\n              \"base\": \"92.73\"\n            },\n            \"vat\": {\n              \"type\": \"VAT_RATE\",\n              \"code\": \"REDUCED_1\",\n              \"percentage\": \"10.00\",\n              \"amount\": \"9.27\",\n              \"exclusive\": \"92.73\",\n              \"inclusive\": \"102.00\"\n            },\n            \"product\": {\n              \"type\": \"OTHER\",\n              \"number\": \"DEC-SUG-FLW\",\n              \"details\": {\n                \"name\": \"Sugar Flowers\"\n              }\n            }\n          },\n          \"details\": {\n            \"concept\": \"GOOD\",\n            \"number\": \"2\",\n            \"properties\": {\n              \"unit_price_excl_vat\": \"7.73\"\n            }\n          }\n        }\n      ],\n      \"breakdown\": [\n        {\n          \"type\": \"VAT_RATE\",\n          \"code\": \"REDUCED_1\",\n          \"percentage\": \"10.00\",\n          \"amount\": \"50.18\",\n          \"exclusive\": \"501.82\",\n          \"inclusive\": \"552.00\"\n        }\n      ],\n      \"totals\": {\n        \"vat\": {\n          \"amount\": \"50.18\",\n          \"exclusive\": \"501.82\",\n          \"inclusive\": \"552.00\"\n        }\n      },\n      \"recipients\": [\n        {\n          \"type\": \"CONSUMER\",\n          \"name\": {\n            \"gender\": \"FEMALE\",\n            \"forename\": \"Sophie\",\n            \"surname\": \"Laurent-Dupont\"\n          },\n          \"address\": {\n            \"line\": {\n              \"type\": \"STREET_NUMBER\",\n              \"street\": \"Rue du Bac\",\n              \"number\": \"23\"\n            },\n            \"code\": \"75007\",\n            \"city\": \"Paris\",\n            \"country\": \"FR\"\n          }\n        }\n      ],\n      \"details\": {\n        \"creators\": [\n          {\n            \"type\": \"PERSON\",\n            \"label\": \"C001\"\n          }\n        ],\n        \"training\": false,\n        \"properties\": {\n          \"consumer_account_number\": \"TIE-00451\",\n          \"quotation_reference\": \"DEV-2026-089\"\n        }\n      }\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records"
                  ]
                },
                "description": "Sign the pro forma invoice."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "    var data = pm.response.json();",
                      "    pm.environment.set(\"proFormaRecordId\", data.content.id);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            },
            {
              "name": "Retrieve a Record::TRANSACTION::PRO_FORMA_INVOICE",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Api-Version",
                    "value": "{{apiVersion}}",
                    "description": "API version"
                  }
                ],
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{opBearerToken}}",
                      "type": "string"
                    }
                  ]
                },
                "url": {
                  "raw": "{{apiBaseUrl}}/records/{{proFormaRecordId}}",
                  "host": [
                    "{{apiBaseUrl}}"
                  ],
                  "path": [
                    "records",
                    "{{proFormaRecordId}}"
                  ]
                },
                "description": "Retrieve the signed pro forma invoice."
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.test(\"Status code is 200\", function () {",
                      "    pm.response.to.have.status(200);",
                      "});",
                      ""
                    ],
                    "type": "text/javascript",
                    "packages": {}
                  }
                }
              ],
              "response": []
            }
          ]
        },
        {
          "name": "List Records",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Api-Version",
                "value": "{{apiVersion}}",
                "description": "API version"
              }
            ],
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{opBearerToken}}",
                  "type": "string"
                }
              ]
            },
            "url": {
              "raw": "{{apiBaseUrl}}/records",
              "host": [
                "{{apiBaseUrl}}"
              ],
              "path": [
                "records"
              ]
            },
            "description": "List all records for the current system/location."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "pm.test(\"Status code is 200\", function () {",
                  "    pm.response.to.have.status(200);",
                  "});",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "response": []
        }
      ]
    }
  ]
}