{
  "info": {
    "_postman_id": "doorid-public-api",
    "name": "DoorID API",
    "description": "DoorID API 1.0.0. Generated from lib/api-spec/openapi.yaml and lib/api-spec/scripts/postman-products.mjs (node lib/api-spec/scripts/generate-postman.mjs); do not edit by hand. One folder per product: Address check, Collection check, Delivery check, Licence check. Each starts the check, gets its status or result, downloads the report PDF, resends the link, and shows an example signed webhook body; the rest of each product's requests are in \"More requests\" inside each folder. Set base_url and api_key (a doorid_test_ key) at the collection level, and webhook_url and webhook_secret to try the webhook examples against your own receiver. Made-up details only. The full reference is at {{base_url}}/docs.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{api_key}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://www.doorid.ai",
      "type": "string"
    },
    {
      "key": "api_key",
      "value": "doorid_test_xxxxxxxxxxxx",
      "type": "string"
    },
    {
      "key": "reference",
      "value": "POSTMAN-0001",
      "type": "string"
    },
    {
      "key": "verification_id",
      "value": "",
      "type": "string"
    },
    {
      "key": "licence_session_id",
      "value": "",
      "type": "string"
    },
    {
      "key": "dealership_session_id",
      "value": "",
      "type": "string"
    },
    {
      "key": "address_check_id",
      "value": "",
      "type": "string"
    },
    {
      "key": "licence_check_id",
      "value": "",
      "type": "string"
    },
    {
      "key": "collection_check_id",
      "value": "",
      "type": "string"
    },
    {
      "key": "delivery_check_id",
      "value": "",
      "type": "string"
    },
    {
      "key": "webhook_url",
      "value": "https://your-app.example.com/webhooks/doorid",
      "type": "string"
    },
    {
      "key": "webhook_secret",
      "value": "replace-with-your-webhook-signing-secret",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Address check",
      "item": [
        {
          "name": "Start the check",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/address-checks",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "address-checks"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"first_name\": \"Alex\",\n  \"last_name\": \"Example\",\n  \"phone\": \"+447700900123\",\n  \"reference\": \"{{reference}}-address\",\n  \"address\": {\n    \"line_1\": \"14 Example Road\",\n    \"city\": \"Bournemouth\",\n    \"postcode\": \"BH1 1AA\",\n    \"country\": \"GB\"\n  },\n  \"callback_url\": \"{{webhook_url}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 201\", () => pm.expect([201]).to.include(pm.response.code));",
                  "if (pm.response.code < 300) { pm.collectionVariables.set(\"address_check_id\", pm.response.json()[\"check_id\"]); }"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 25,
            "operation_id": "createAddressCheck",
            "expect": [
              201
            ],
            "save": {
              "address_check_id": "check_id"
            }
          }
        },
        {
          "name": "Get status / result",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/address-checks/{{address_check_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "address-checks",
                "{{address_check_id}}"
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 26,
            "operation_id": "getAddressCheck",
            "expect": [
              200
            ]
          }
        },
        {
          "name": "Download report PDF (409 until the check finishes, 202 while it renders)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/address-checks/{{address_check_id}}/report",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "address-checks",
                "{{address_check_id}}",
                "report"
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200, 202, 409\", () => pm.expect([200, 202, 409]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 27,
            "operation_id": "getAddressCheckReport",
            "expect": [
              200,
              202,
              409
            ]
          }
        },
        {
          "name": "Resend the link",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/address-checks/{{address_check_id}}/resend",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "address-checks",
                "{{address_check_id}}",
                "resend"
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 28,
            "operation_id": "resendAddressCheckLink",
            "expect": [
              200
            ]
          }
        },
        {
          "name": "Example webhook body",
          "request": {
            "method": "POST",
            "auth": {
              "type": "noauth"
            },
            "description": "What DoorID sends to your webhook URL for `verification.decision`. The Address check result. Sent after verification.completed when Share decision events is on in the portal; otherwise read the same body from last_decision on Get status / result. Made-up values. Sending this request posts the body to your own {{webhook_url}}, signed with {{webhook_secret}} the way DoorID signs every delivery, so you can test your receiver. It is not a DoorID API call.",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-DoorID-Event",
                "value": "verification.decision"
              },
              {
                "key": "X-DoorID-Schema-Version",
                "value": "7"
              },
              {
                "key": "X-DoorID-Timestamp",
                "value": "{{webhook_timestamp}}"
              },
              {
                "key": "X-DoorID-Signature-V2",
                "value": "t={{webhook_timestamp}},v1={{webhook_signature}}"
              },
              {
                "key": "X-DoorID-Signature",
                "value": "sha256={{webhook_legacy_signature}}"
              }
            ],
            "url": {
              "raw": "{{webhook_url}}",
              "host": [
                "{{webhook_url}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"schema_version\": 7,\n  \"event\": \"verification.decision\",\n  \"verification_id\": \"did_3f2a4c91e8b7d0f2a6c4e8b1d3f5a7c9\",\n  \"customer_id\": null,\n  \"reference\": \"APP-44218\",\n  \"decision\": \"pass\",\n  \"created_at\": \"2026-10-12T11:58:00.000Z\",\n  \"decided_at\": \"2026-10-12T12:10:00.000Z\",\n  \"confidence_band\": \"high\",\n  \"summary\": {\n    \"identity\": {\n      \"two_capture_consistency\": {\n        \"result\": \"pass\"\n      },\n      \"document_ocr_cross_check\": {\n        \"result\": \"pass\"\n      },\n      \"face_match\": {\n        \"result\": \"pass\",\n        \"similarity\": 97.4,\n        \"licence_source\": \"customer_capture\"\n      }\n    },\n    \"device_and_capture\": {\n      \"device_integrity\": {\n        \"result\": \"pass\"\n      },\n      \"continuity\": {\n        \"result\": \"pass\"\n      }\n    },\n    \"address\": {\n      \"gps_cluster\": {\n        \"result\": \"pass\",\n        \"max_deviation_m\": 12\n      },\n      \"reverse_geocode\": {\n        \"result\": \"pass\"\n      }\n    },\n    \"property\": {\n      \"property_presence\": {\n        \"result\": \"pass\",\n        \"method\": \"street_view\",\n        \"manual_reviewed\": false\n      }\n    }\n  },\n  \"risk_flags\": [],\n  \"reasons\": [],\n  \"evidence_pack_url\": \"https://www.doorid.ai/v1/public/evidence-pack/did_3f2a4c91e8b7d0f2a6c4e8b1d3f5a7c9?exp=1760875800&token=example\",\n  \"customer_informed\": true,\n  \"eligibility_tags\": [],\n  \"metadata\": {},\n  \"verification_type\": \"detached_house\",\n  \"status_plain\": \"Result: Pass\",\n  \"result_plain\": \"Pass\",\n  \"evidence_available_until\": null\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const secret = pm.collectionVariables.get(\"webhook_secret\");",
                  "const body = pm.request.body.raw;",
                  "const t = String(Math.floor(Date.now() / 1000));",
                  "pm.variables.set(\"webhook_timestamp\", t);",
                  "pm.variables.set(\"webhook_signature\", CryptoJS.HmacSHA256(`${t}.${body}`, secret).toString(CryptoJS.enc.Hex));",
                  "pm.variables.set(\"webhook_legacy_signature\", CryptoJS.HmacSHA256(body, secret).toString(CryptoJS.enc.Hex));"
                ]
              }
            }
          ],
          "x-doorid": {
            "kind": "webhook_example",
            "event": "verification.decision",
            "schema_version": 7
          }
        },
        {
          "name": "More requests",
          "item": [
            {
              "name": "Create an Address check",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/v1/verifications",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "verifications"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"first_name\": \"Sarah\",\n  \"last_name\": \"Johnson\",\n  \"phone\": \"+447700900123\",\n  \"reference\": \"{{reference}}\",\n  \"address\": {\n    \"line_1\": \"14 Beach Road\",\n    \"city\": \"Bournemouth\",\n    \"postcode\": \"BH1 1AA\",\n    \"country\": \"GB\"\n  },\n  \"identity_mode\": \"skip\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 201\", () => pm.expect([201]).to.include(pm.response.code));",
                      "if (pm.response.code < 300) { pm.collectionVariables.set(\"verification_id\", pm.response.json()[\"verification_id\"]); }"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 30,
                "operation_id": "createVerification",
                "expect": [
                  201
                ],
                "save": {
                  "verification_id": "verification_id"
                }
              }
            },
            {
              "name": "List checks",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{base_url}}/v1/verifications?limit=20&offset=0",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "verifications"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "20"
                    },
                    {
                      "key": "offset",
                      "value": "0"
                    }
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 40,
                "operation_id": "listVerifications",
                "expect": [
                  200
                ]
              }
            },
            {
              "name": "Get a check",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{base_url}}/v1/verifications/{{verification_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "verifications",
                    "{{verification_id}}"
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 50,
                "operation_id": "getVerification",
                "expect": [
                  200
                ]
              }
            },
            {
              "name": "Resend the customer link",
              "request": {
                "method": "POST",
                "header": [],
                "url": {
                  "raw": "{{base_url}}/v1/verifications/{{verification_id}}/resend-link",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "verifications",
                    "{{verification_id}}",
                    "resend-link"
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 60,
                "operation_id": "resendVerificationLink",
                "expect": [
                  200
                ]
              }
            },
            {
              "name": "Resend the decision webhook (404 until there is a decision)",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/v1/verifications/{{verification_id}}/resend-webhook",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "verifications",
                    "{{verification_id}}",
                    "resend-webhook"
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200, 404\", () => pm.expect([200, 404]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 70,
                "operation_id": "resendVerificationWebhook",
                "expect": [
                  200,
                  404
                ]
              }
            },
            {
              "name": "Evidence pack, JSON (409 until the check finishes)",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{base_url}}/v1/verifications/{{verification_id}}/evidence",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "verifications",
                    "{{verification_id}}",
                    "evidence"
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200, 409\", () => pm.expect([200, 409]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 80,
                "operation_id": "getEvidencePack",
                "expect": [
                  200,
                  409
                ]
              }
            },
            {
              "name": "Evidence pack, PDF (409 until the check finishes, 202 while it renders)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/pdf"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/v1/verifications/{{verification_id}}/evidence?format=pdf",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "verifications",
                    "{{verification_id}}",
                    "evidence"
                  ],
                  "query": [
                    {
                      "key": "format",
                      "value": "pdf"
                    }
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200, 202, 409\", () => pm.expect([200, 202, 409]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 90,
                "operation_id": "getEvidencePack",
                "expect": [
                  200,
                  202,
                  409
                ]
              }
            },
            {
              "name": "Webhook deliveries for the check",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{base_url}}/v1/webhooks/deliveries?verification_id={{verification_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "webhooks",
                    "deliveries"
                  ],
                  "query": [
                    {
                      "key": "verification_id",
                      "value": "{{verification_id}}"
                    }
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 100,
                "operation_id": "listWebhookDeliveries",
                "expect": [
                  200
                ]
              }
            },
            {
              "name": "Export evidence packs for a date range (ZIP; 404 when no check falls in the range)",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{base_url}}/v1/verifications/export?from=2026-01-01&to=2026-01-31",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "verifications",
                    "export"
                  ],
                  "query": [
                    {
                      "key": "from",
                      "value": "2026-01-01"
                    },
                    {
                      "key": "to",
                      "value": "2026-01-31"
                    }
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200, 404\", () => pm.expect([200, 404]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 105,
                "operation_id": "exportVerifications",
                "expect": [
                  200,
                  404
                ]
              }
            },
            {
              "name": "Cancel the check",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/v1/verifications/{{verification_id}}/cancel",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "verifications",
                    "{{verification_id}}",
                    "cancel"
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 110,
                "operation_id": "cancelVerification",
                "expect": [
                  200
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Collection check",
      "item": [
        {
          "name": "Start the check",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/collection-checks",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "collection-checks"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"first_name\": \"Alex\",\n  \"last_name\": \"Example\",\n  \"phone\": \"+447700900124\",\n  \"reference\": \"{{reference}}-collection-new\",\n  \"collection_address\": {\n    \"line_1\": \"1 Forecourt Way\",\n    \"city\": \"Bournemouth\",\n    \"postcode\": \"BH2 5AA\",\n    \"country\": \"GB\"\n  },\n  \"registration_plate\": \"AB12 CDE\",\n  \"collection_name\": \"Example Motors Ltd\",\n  \"callback_url\": \"{{webhook_url}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 201\", () => pm.expect([201]).to.include(pm.response.code));",
                  "if (pm.response.code < 300) { pm.collectionVariables.set(\"collection_check_id\", pm.response.json()[\"check_id\"]); }"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 195,
            "operation_id": "createCollectCheck",
            "expect": [
              201
            ],
            "save": {
              "collection_check_id": "check_id"
            }
          }
        },
        {
          "name": "Get status / result",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/collection-checks/{{collection_check_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "collection-checks",
                "{{collection_check_id}}"
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 196,
            "operation_id": "getCollectCheck",
            "expect": [
              200
            ]
          }
        },
        {
          "name": "Download report PDF",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/collection-checks/{{collection_check_id}}/report",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "collection-checks",
                "{{collection_check_id}}",
                "report"
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200, 404\", () => pm.expect([200, 404]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 197,
            "operation_id": "getCollectCheckReport",
            "expect": [
              200,
              404
            ]
          }
        },
        {
          "name": "Resend the text",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/collection-checks/{{collection_check_id}}/resend",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "collection-checks",
                "{{collection_check_id}}",
                "resend"
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 198,
            "operation_id": "resendCollectCheckLink",
            "expect": [
              200
            ]
          }
        },
        {
          "name": "Example webhook body",
          "request": {
            "method": "POST",
            "auth": {
              "type": "noauth"
            },
            "description": "What DoorID sends to your webhook URL for `dealership_check.outcome`. The Collection check verdict (approved, referred or failed) with the three checks behind it. Made-up values. Sending this request posts the body to your own {{webhook_url}}, signed with {{webhook_secret}} the way DoorID signs every delivery, so you can test your receiver. It is not a DoorID API call.",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-DoorID-Event",
                "value": "dealership_check.outcome"
              },
              {
                "key": "X-DoorID-Schema-Version",
                "value": "1"
              },
              {
                "key": "X-DoorID-Timestamp",
                "value": "{{webhook_timestamp}}"
              },
              {
                "key": "X-DoorID-Signature-V2",
                "value": "t={{webhook_timestamp}},v1={{webhook_signature}}"
              },
              {
                "key": "X-DoorID-Signature",
                "value": "sha256={{webhook_legacy_signature}}"
              }
            ],
            "url": {
              "raw": "{{webhook_url}}",
              "host": [
                "{{webhook_url}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"schema_version\": 1,\n  \"event\": \"dealership_check.outcome\",\n  \"session_id\": \"dchk_2b4d6f8a0c2e4a6c8e0b2d4f6a8c0e2b\",\n  \"client_id\": \"00000000-0000-4000-8000-000000000000\",\n  \"client_reference\": \"APP-44218\",\n  \"customer_name\": \"Alex Example\",\n  \"phone_e164\": \"+447700900124\",\n  \"expected_car\": {\n    \"registration_plate\": \"AB12 CDE\",\n    \"colour\": null,\n    \"make\": null\n  },\n  \"dealership_address\": {\n    \"line_1\": \"1 Forecourt Way\",\n    \"city\": \"Bournemouth\",\n    \"postcode\": \"BH2 5AA\",\n    \"country\": \"GB\"\n  },\n  \"status\": \"completed\",\n  \"outcome_status\": \"final\",\n  \"verdict\": \"approved\",\n  \"outcome\": \"pass\",\n  \"manual_review_required\": false,\n  \"status_line\": \"No manual review required.\",\n  \"status_detail\": \"All three checks passed: the registration, the customer's face and the collection location.\",\n  \"checks\": {\n    \"plate_match\": {\n      \"key\": \"plate_match\",\n      \"label\": \"Registration plate\",\n      \"result\": \"pass\",\n      \"headline\": \"Plate matches\",\n      \"detail\": \"Read AB12 CDE, expected AB12 CDE.\"\n    },\n    \"face_match\": {\n      \"key\": \"face_match\",\n      \"label\": \"Face match\",\n      \"result\": \"pass\",\n      \"headline\": \"Face matches\",\n      \"detail\": \"Compared with the licence photo on file.\",\n      \"similarity_pct\": 96.2\n    },\n    \"gps_location\": {\n      \"key\": \"gps_location\",\n      \"label\": \"Location\",\n      \"result\": \"pass\",\n      \"headline\": \"At the dealership\",\n      \"detail\": \"Captured 18 m from the collection address.\",\n      \"distance_m\": 18,\n      \"tolerance_radius_m\": 150\n    }\n  },\n  \"evidence_pack_url\": \"https://www.doorid.ai/v1/public/dealership-evidence/dchk_2b4d6f8a0c2e4a6c8e0b2d4f6a8c0e2b?exp=1760875800&token=example\",\n  \"evaluated_at\": \"2026-10-12T12:09:00.000Z\",\n  \"created_at\": \"2026-10-12T11:58:00.000Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const secret = pm.collectionVariables.get(\"webhook_secret\");",
                  "const body = pm.request.body.raw;",
                  "const t = String(Math.floor(Date.now() / 1000));",
                  "pm.variables.set(\"webhook_timestamp\", t);",
                  "pm.variables.set(\"webhook_signature\", CryptoJS.HmacSHA256(`${t}.${body}`, secret).toString(CryptoJS.enc.Hex));",
                  "pm.variables.set(\"webhook_legacy_signature\", CryptoJS.HmacSHA256(body, secret).toString(CryptoJS.enc.Hex));"
                ]
              }
            }
          ],
          "x-doorid": {
            "kind": "webhook_example",
            "event": "dealership_check.outcome",
            "schema_version": 1
          }
        },
        {
          "name": "More requests",
          "item": [
            {
              "name": "Create a Collection check",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/v1/verifications",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "verifications"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"first_name\": \"Priya\",\n  \"last_name\": \"Nair\",\n  \"phone\": \"+447700900124\",\n  \"reference\": \"{{reference}}-collect\",\n  \"address\": {\n    \"line_1\": \"14 Beach Road\",\n    \"city\": \"Bournemouth\",\n    \"postcode\": \"BH1 1AA\",\n    \"country\": \"GB\"\n  },\n  \"dealership_address\": {\n    \"line_1\": \"1 Forecourt Way\",\n    \"city\": \"Bournemouth\",\n    \"postcode\": \"BH2 5AA\",\n    \"country\": \"GB\"\n  },\n  \"expected_registration_plate\": \"AB12 CDE\",\n  \"dealership_name\": \"Example Motors\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 201\", () => pm.expect([201]).to.include(pm.response.code));",
                      "if (pm.response.code < 300) { pm.collectionVariables.set(\"dealership_session_id\", pm.response.json()[\"dealership_check_session_id\"]); }"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 200,
                "operation_id": "createVerification",
                "expect": [
                  201
                ],
                "save": {
                  "dealership_session_id": "dealership_check_session_id"
                }
              }
            },
            {
              "name": "List Collection checks",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{base_url}}/v1/dealership-check/sessions",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "dealership-check",
                    "sessions"
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 210,
                "operation_id": "listDealershipCheckSessions",
                "expect": [
                  200
                ]
              }
            },
            {
              "name": "Get a Collection check",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{base_url}}/v1/dealership-check/sessions/{{dealership_session_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "dealership-check",
                    "sessions",
                    "{{dealership_session_id}}"
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 220,
                "operation_id": "getDealershipCheckSession",
                "expect": [
                  200
                ]
              }
            },
            {
              "name": "Collection check outcome",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{base_url}}/v1/dealership-check/sessions/{{dealership_session_id}}/outcome",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "dealership-check",
                    "sessions",
                    "{{dealership_session_id}}",
                    "outcome"
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 230,
                "operation_id": "getDealershipRunOutcome",
                "expect": [
                  200
                ]
              }
            },
            {
              "name": "Collection check report, PDF",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{base_url}}/v1/dealership-check/sessions/{{dealership_session_id}}/evidence/pdf",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "dealership-check",
                    "sessions",
                    "{{dealership_session_id}}",
                    "evidence",
                    "pdf"
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200, 404\", () => pm.expect([200, 404]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 240,
                "operation_id": "getDealershipEvidencePdf",
                "expect": [
                  200,
                  404
                ]
              }
            },
            {
              "name": "Cancel the Collection check",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/v1/dealership-check/sessions/{{dealership_session_id}}/cancel",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "dealership-check",
                    "sessions",
                    "{{dealership_session_id}}",
                    "cancel"
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 250,
                "operation_id": "cancelDealershipCheckSession",
                "expect": [
                  200
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Delivery check",
      "item": [
        {
          "name": "Start the check",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/delivery-checks",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "delivery-checks"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"first_name\": \"Alex\",\n  \"last_name\": \"Example\",\n  \"phone\": \"+447700900125\",\n  \"reference\": \"{{reference}}-delivery-new\",\n  \"delivery_address\": {\n    \"line_1\": \"14 Example Road\",\n    \"city\": \"Bournemouth\",\n    \"postcode\": \"BH1 1AA\",\n    \"country\": \"GB\"\n  },\n  \"registration_plate\": \"AB12 CDE\",\n  \"vehicle_make\": \"Example\",\n  \"vehicle_colour\": \"Blue\",\n  \"callback_url\": \"{{webhook_url}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 201\", () => pm.expect([201]).to.include(pm.response.code));",
                  "if (pm.response.code < 300) { pm.collectionVariables.set(\"delivery_check_id\", pm.response.json()[\"check_id\"]); }"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 150,
            "operation_id": "createDeliveryCheck",
            "expect": [
              201
            ],
            "save": {
              "delivery_check_id": "check_id"
            }
          }
        },
        {
          "name": "Get status / result",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/delivery-checks/{{delivery_check_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "delivery-checks",
                "{{delivery_check_id}}"
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 151,
            "operation_id": "getDeliveryCheck",
            "expect": [
              200
            ]
          }
        },
        {
          "name": "Download report PDF",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/delivery-checks/{{delivery_check_id}}/report",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "delivery-checks",
                "{{delivery_check_id}}",
                "report"
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200, 404\", () => pm.expect([200, 404]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 152,
            "operation_id": "getDeliveryCheckReport",
            "expect": [
              200,
              404
            ]
          }
        },
        {
          "name": "Resend the text",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/delivery-checks/{{delivery_check_id}}/resend",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "delivery-checks",
                "{{delivery_check_id}}",
                "resend"
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 153,
            "operation_id": "resendDeliveryCheckLink",
            "expect": [
              200
            ]
          }
        },
        {
          "name": "Example webhook body",
          "request": {
            "method": "POST",
            "auth": {
              "type": "noauth"
            },
            "description": "What DoorID sends to your webhook URL for `dealership_check.outcome`. The Delivery check verdict (approved, referred or failed) with the three checks behind it; the delivery address is in dealership_address. Made-up values. Sending this request posts the body to your own {{webhook_url}}, signed with {{webhook_secret}} the way DoorID signs every delivery, so you can test your receiver. It is not a DoorID API call.",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-DoorID-Event",
                "value": "dealership_check.outcome"
              },
              {
                "key": "X-DoorID-Schema-Version",
                "value": "1"
              },
              {
                "key": "X-DoorID-Timestamp",
                "value": "{{webhook_timestamp}}"
              },
              {
                "key": "X-DoorID-Signature-V2",
                "value": "t={{webhook_timestamp}},v1={{webhook_signature}}"
              },
              {
                "key": "X-DoorID-Signature",
                "value": "sha256={{webhook_legacy_signature}}"
              }
            ],
            "url": {
              "raw": "{{webhook_url}}",
              "host": [
                "{{webhook_url}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"schema_version\": 1,\n  \"event\": \"dealership_check.outcome\",\n  \"session_id\": \"dchk_4d6f8a0c2e4a6c8e0b2d4f6a8c0e2b4d\",\n  \"client_id\": \"00000000-0000-4000-8000-000000000000\",\n  \"client_reference\": \"APP-44219\",\n  \"customer_name\": \"Alex Example\",\n  \"phone_e164\": \"+447700900125\",\n  \"expected_car\": {\n    \"registration_plate\": \"AB12 CDE\",\n    \"colour\": \"Blue\",\n    \"make\": \"Example\"\n  },\n  \"dealership_address\": {\n    \"line_1\": \"14 Example Road\",\n    \"city\": \"Bournemouth\",\n    \"postcode\": \"BH1 1AA\",\n    \"country\": \"GB\"\n  },\n  \"status\": \"completed\",\n  \"outcome_status\": \"final\",\n  \"verdict\": \"approved\",\n  \"outcome\": \"pass\",\n  \"manual_review_required\": false,\n  \"status_line\": \"No manual review required.\",\n  \"status_detail\": \"All three checks passed: the registration, the customer's face and the delivery location.\",\n  \"checks\": {\n    \"plate_match\": {\n      \"key\": \"plate_match\",\n      \"label\": \"Registration plate\",\n      \"result\": \"pass\",\n      \"headline\": \"Plate matches\",\n      \"detail\": \"Read AB12 CDE, expected AB12 CDE.\"\n    },\n    \"face_match\": {\n      \"key\": \"face_match\",\n      \"label\": \"Face match\",\n      \"result\": \"pass\",\n      \"headline\": \"Face matches\",\n      \"detail\": \"Compared with the licence photo on file.\",\n      \"similarity_pct\": 96.2\n    },\n    \"gps_location\": {\n      \"key\": \"gps_location\",\n      \"label\": \"Location\",\n      \"result\": \"pass\",\n      \"headline\": \"At the delivery address\",\n      \"detail\": \"Captured 18 m from the delivery address.\",\n      \"distance_m\": 18,\n      \"tolerance_radius_m\": 150\n    }\n  },\n  \"evidence_pack_url\": \"https://www.doorid.ai/v1/public/dealership-evidence/dchk_4d6f8a0c2e4a6c8e0b2d4f6a8c0e2b4d?exp=1760875800&token=example\",\n  \"evaluated_at\": \"2026-10-13T12:09:00.000Z\",\n  \"created_at\": \"2026-10-13T11:58:00.000Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const secret = pm.collectionVariables.get(\"webhook_secret\");",
                  "const body = pm.request.body.raw;",
                  "const t = String(Math.floor(Date.now() / 1000));",
                  "pm.variables.set(\"webhook_timestamp\", t);",
                  "pm.variables.set(\"webhook_signature\", CryptoJS.HmacSHA256(`${t}.${body}`, secret).toString(CryptoJS.enc.Hex));",
                  "pm.variables.set(\"webhook_legacy_signature\", CryptoJS.HmacSHA256(body, secret).toString(CryptoJS.enc.Hex));"
                ]
              }
            }
          ],
          "x-doorid": {
            "kind": "webhook_example",
            "event": "dealership_check.outcome",
            "schema_version": 1
          }
        }
      ]
    },
    {
      "name": "Licence check",
      "item": [
        {
          "name": "Start the check",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/licence-checks",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "licence-checks"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"first_name\": \"Alex\",\n  \"last_name\": \"Example\",\n  \"phone\": \"+447700900123\",\n  \"reference\": \"{{reference}}-licence-new\",\n  \"address\": {\n    \"line_1\": \"14 Example Road\",\n    \"city\": \"Bournemouth\",\n    \"postcode\": \"BH1 1AA\",\n    \"country\": \"GB\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 201\", () => pm.expect([201]).to.include(pm.response.code));",
                  "if (pm.response.code < 300) { pm.collectionVariables.set(\"licence_check_id\", pm.response.json()[\"check_id\"]); }"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 115,
            "operation_id": "createLicenceCheck",
            "expect": [
              201
            ],
            "save": {
              "licence_check_id": "check_id"
            }
          }
        },
        {
          "name": "Get status / result (your most recent Licence checks)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/licence-precapture/sessions",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "licence-precapture",
                "sessions"
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 116,
            "operation_id": "listLicencePrecaptureSessions",
            "expect": [
              200
            ]
          }
        },
        {
          "name": "Download report PDF (404 until the licence is captured)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/licence-checks/{{licence_check_id}}/report",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "licence-checks",
                "{{licence_check_id}}",
                "report"
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200, 404\", () => pm.expect([200, 404]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 117,
            "operation_id": "getLicenceCheckReport",
            "expect": [
              200,
              404
            ]
          }
        },
        {
          "name": "Resend the text",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/licence-checks/{{licence_check_id}}/resend",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "licence-checks",
                "{{licence_check_id}}",
                "resend"
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 118,
            "operation_id": "resendLicenceCheckLink",
            "expect": [
              200
            ]
          }
        },
        {
          "name": "Example webhook body",
          "request": {
            "method": "POST",
            "auth": {
              "type": "noauth"
            },
            "description": "What DoorID sends to your webhook URL for `licence_capture.completed`. The licence was captured. A Licence check has no verdict event; evidence_url is a signed link to the report. Made-up values. Sending this request posts the body to your own {{webhook_url}}, signed with {{webhook_secret}} the way DoorID signs every delivery, so you can test your receiver. It is not a DoorID API call.",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-DoorID-Event",
                "value": "licence_capture.completed"
              },
              {
                "key": "X-DoorID-Schema-Version",
                "value": "1"
              },
              {
                "key": "X-DoorID-Timestamp",
                "value": "{{webhook_timestamp}}"
              },
              {
                "key": "X-DoorID-Signature-V2",
                "value": "t={{webhook_timestamp}},v1={{webhook_signature}}"
              },
              {
                "key": "X-DoorID-Signature",
                "value": "sha256={{webhook_legacy_signature}}"
              }
            ],
            "url": {
              "raw": "{{webhook_url}}",
              "host": [
                "{{webhook_url}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"schema_version\": 1,\n  \"event\": \"licence_capture.completed\",\n  \"session_id\": \"pcs_7d1e5b9a2c4f6e8a0b3d5f7a9c1e3b5d\",\n  \"client_id\": \"00000000-0000-4000-8000-000000000000\",\n  \"client_reference\": \"APP-44218\",\n  \"customer_name\": \"Alex Example\",\n  \"phone_e164\": \"+447700900123\",\n  \"status\": \"captured\",\n  \"opened_at\": \"2026-10-12T12:01:00.000Z\",\n  \"completed_at\": \"2026-10-12T12:04:00.000Z\",\n  \"created_at\": \"2026-10-12T11:58:00.000Z\",\n  \"evidence_url\": \"https://www.doorid.ai/v1/public/licence-evidence/pcs_7d1e5b9a2c4f6e8a0b3d5f7a9c1e3b5d?exp=1760875800&token=example\",\n  \"evidence_expected_by\": \"2026-10-12T12:14:00.000Z\",\n  \"status_message\": \"The customer has completed the licence capture. The evidence pack will be ready within 10 minutes.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const secret = pm.collectionVariables.get(\"webhook_secret\");",
                  "const body = pm.request.body.raw;",
                  "const t = String(Math.floor(Date.now() / 1000));",
                  "pm.variables.set(\"webhook_timestamp\", t);",
                  "pm.variables.set(\"webhook_signature\", CryptoJS.HmacSHA256(`${t}.${body}`, secret).toString(CryptoJS.enc.Hex));",
                  "pm.variables.set(\"webhook_legacy_signature\", CryptoJS.HmacSHA256(body, secret).toString(CryptoJS.enc.Hex));"
                ]
              }
            }
          ],
          "x-doorid": {
            "kind": "webhook_example",
            "event": "licence_capture.completed",
            "schema_version": 1
          }
        },
        {
          "name": "More requests",
          "item": [
            {
              "name": "Create a Licence check",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/v1/licence-precapture/sessions",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "licence-precapture",
                    "sessions"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reference\": \"{{reference}}-licence\",\n  \"first_name\": \"Sarah\",\n  \"last_name\": \"Johnson\",\n  \"phone\": \"+447700900123\",\n  \"address\": {\n    \"line_1\": \"14 Beach Road\",\n    \"city\": \"Bournemouth\",\n    \"postcode\": \"BH1 1AA\",\n    \"country\": \"GB\"\n  },\n  \"consent\": {\n    \"agreed\": true\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 201\", () => pm.expect([201]).to.include(pm.response.code));",
                      "if (pm.response.code < 300) { pm.collectionVariables.set(\"licence_session_id\", pm.response.json()[\"precapture_session_id\"]); }"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 120,
                "operation_id": "createLicencePrecaptureSession",
                "expect": [
                  201
                ],
                "save": {
                  "licence_session_id": "precapture_session_id"
                }
              }
            },
            {
              "name": "List Licence checks",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{base_url}}/v1/licence-precapture/sessions",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "licence-precapture",
                    "sessions"
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 130,
                "operation_id": "listLicencePrecaptureSessions",
                "expect": [
                  200
                ]
              }
            },
            {
              "name": "Licence check report, PDF (404 until the licence is captured)",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{base_url}}/v1/licence-precapture/sessions/{{licence_session_id}}/evidence/pdf",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "licence-precapture",
                    "sessions",
                    "{{licence_session_id}}",
                    "evidence",
                    "pdf"
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200, 404\", () => pm.expect([200, 404]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 140,
                "operation_id": "getSessionLicenceEvidencePdf",
                "expect": [
                  200,
                  404
                ]
              }
            },
            {
              "name": "Cancel the Licence check",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/v1/licence-precapture/sessions/{{licence_session_id}}/cancel",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "v1",
                    "licence-precapture",
                    "sessions",
                    "{{licence_session_id}}",
                    "cancel"
                  ]
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                    ]
                  }
                }
              ],
              "x-doorid": {
                "order": 150,
                "operation_id": "cancelLicencePrecaptureSession",
                "expect": [
                  200
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Health",
      "item": [
        {
          "name": "Health",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/health",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "health"
              ]
            },
            "auth": {
              "type": "noauth"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 10,
            "operation_id": "versionedHealth",
            "expect": [
              200
            ]
          }
        },
        {
          "name": "Discovery: endpoints and live products",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1"
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 20,
            "operation_id": "apiDiscovery",
            "expect": [
              200
            ]
          }
        }
      ]
    },
    {
      "name": "Addresses",
      "item": [
        {
          "name": "Assess an address",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/v1/addresses/assess?line_1=14%20Beach%20Road&city=Bournemouth&postcode=BH1%201AA&country=GB",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "addresses",
                "assess"
              ],
              "query": [
                {
                  "key": "line_1",
                  "value": "14 Beach Road"
                },
                {
                  "key": "city",
                  "value": "Bournemouth"
                },
                {
                  "key": "postcode",
                  "value": "BH1 1AA"
                },
                {
                  "key": "country",
                  "value": "GB"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 300,
            "operation_id": "assessAddress",
            "expect": [
              200
            ]
          }
        },
        {
          "name": "Assess addresses in bulk",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/addresses/assess/batch",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "addresses",
                "assess",
                "batch"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"addresses\": [\n    {\n      \"line_1\": \"14 Beach Road\",\n      \"city\": \"Bournemouth\",\n      \"postcode\": \"BH1 1AA\",\n      \"country\": \"GB\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is one of 200\", () => pm.expect([200]).to.include(pm.response.code));"
                ]
              }
            }
          ],
          "x-doorid": {
            "order": 310,
            "operation_id": "assessAddressBatch",
            "expect": [
              200
            ]
          }
        }
      ]
    }
  ]
}
