{"info":{"_postman_id":"dc344f5e-c1ca-4100-b556-987b4caacc78","name":"Blerify Public API","description":"<html><head></head><body><h1 id=\"blerify-public-api\">Blerify Public API</h1>\n<p>This collection groups the public endpoints of the <strong>Blerify</strong> platform for issuing, verifying, and managing digital credentials. It covers authentication, W3C and ISO mDL credentials, identity verification via <strong>OpenID4VP</strong>, notifications, proof of verification (PoV), and the verifier federation trust list.</p>\n<hr>\n<h2 id=\"authentication\">Authentication</h2>\n<p>All endpoints require a <strong>JWT Bearer Token</strong> in the <code>Authorization</code> header, except the authentication endpoints themselves and the <strong>Verifier Federation</strong> endpoints (which are public by design).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{access-token}}\n\n</code></pre><p>The token is obtained through the <strong>Login with signed Jwt</strong> endpoint in the <code>Blerify Auth</code> folder. Once obtained, store it in the <code>access-token</code> environment variable.</p>\n<h3 id=\"required-environment-variables\">Required environment variables</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>api-host</code></td>\n<td>Base URL of the Blerify API</td>\n</tr>\n<tr>\n<td><code>auth-api-host</code></td>\n<td>Base URL of the authentication service</td>\n</tr>\n<tr>\n<td><code>organization-id</code></td>\n<td>Organization ID</td>\n</tr>\n<tr>\n<td><code>project-id</code></td>\n<td>Project ID within the organization</td>\n</tr>\n<tr>\n<td><code>access-token</code></td>\n<td>Access JWT obtained after login</td>\n</tr>\n<tr>\n<td><code>federation-host</code></td>\n<td>Base URL of the verifier federation endpoints</td>\n</tr>\n</tbody>\n</table>\n</div><hr>\n<h2 id=\"folder-structure\">Folder structure</h2>\n<h3 id=\"🔐-blerify-auth\">🔐 Blerify Auth</h3>\n<p>Authentication endpoints. Obtains the access token using a signed JWT (OpenID Connect flow).</p>\n<ul>\n<li><code>Login with signed Jwt</code> — Obtains the <code>access-token</code> required by the rest of the endpoints.</li>\n</ul>\n<hr>\n<h3 id=\"📄-credentials\">📄 Credentials</h3>\n<p>Digital-credential lifecycle management, organized in two subfolders by standard:</p>\n<h4 id=\"w3c\">W3C</h4>\n<p>Credentials under the <strong>W3C Verifiable Credentials</strong> standard.</p>\n<ul>\n<li><p><code>create</code> — Creates a new W3C credential.</p>\n</li>\n<li><p><code>sign credential</code> — Signs an existing credential.</p>\n</li>\n<li><p><code>assemble</code> — Assembles the signed credential, ready for use.</p>\n</li>\n</ul>\n<h4 id=\"mdl-iso-18013-5\">mDL (ISO 18013-5)</h4>\n<p><strong>Mobile Driving License</strong> credentials under the ISO standard.</p>\n<ul>\n<li><p><code>create</code> — Creates an mDL credential.</p>\n</li>\n<li><p><code>validate signature</code> — Validates a credential's signature.</p>\n</li>\n<li><p><code>assemble</code> — Assembles the mDL credential.</p>\n</li>\n<li><p><code>hold</code> — Puts a credential on hold.</p>\n</li>\n<li><p><code>revoke</code> — Revokes a credential.</p>\n</li>\n</ul>\n<hr>\n<h3 id=\"🔔-notifications\">🔔 Notifications</h3>\n<p>Sending and querying notifications for users or groups.</p>\n<ul>\n<li><p><code>Send Notifications</code> — Sends bulk notifications to a group.</p>\n</li>\n<li><p><code>getNotificationStatus</code> — Queries the status of a specific notification.</p>\n</li>\n</ul>\n<hr>\n<h3 id=\"👤-pov-proof-of-verification\">👤 PoV (Proof of Verification)</h3>\n<p>Proof-of-verification and user enrollment flows.</p>\n<h4 id=\"enroll\">enroll</h4>\n<ul>\n<li><p><code>InviteFlowGetChallenge</code> — Obtains the invite-flow challenge.</p>\n</li>\n<li><p><code>InviteFlowSubmitChallenge</code> — Submits the response to the invite-flow challenge.</p>\n</li>\n</ul>\n<h4 id=\"mdl\">mDL</h4>\n<ul>\n<li><p><code>GetVerificationRules</code> — Retrieves the available verification rules.</p>\n</li>\n<li><p><code>Validate document status against registry</code> — Validates a document's status against the registry.</p>\n</li>\n<li><p><code>GetCertificates</code> — Retrieves the trusted certificates (trusted list).</p>\n</li>\n</ul>\n<hr>\n<h3 id=\"🪪-openid4vp\">🪪 Openid4VP</h3>\n<p>Credential-presentation verification flows under the <strong>OpenID for Verifiable Presentations (OpenID4VP)</strong> protocol.</p>\n<h4 id=\"iso-mdl\">Iso MDL</h4>\n<ul>\n<li><p><code>initSession</code> — Starts a verification session for ISO mDL credentials.</p>\n</li>\n<li><p><code>SaveSignature</code> — Stores the wallet's signature in the verification session.</p>\n</li>\n<li><p><code>Get Response pooling</code> — Polls the verification result (v2).</p>\n</li>\n</ul>\n<h4 id=\"w3c-1\">W3C</h4>\n<ul>\n<li><p><code>initSession</code> — Starts a verification session for W3C credentials.</p>\n</li>\n<li><p><code>Get Response pooling</code> — Polls the verification result (v1).</p>\n</li>\n</ul>\n<hr>\n<h3 id=\"🔏-verifier-federation\">🔏 Verifier Federation</h3>\n<p>The OpenID Federation-shaped <strong>verifier trust list</strong> — how wallets learn which verifier organizations to trust. Public <code>GET</code> endpoints, CDN-cacheable; validity is governed by the signed claims (<code>exp</code>, <code>sequence</code>), never by HTTP headers.</p>\n<ul>\n<li><p><code>Get Trust Anchor Entity Configuration</code> — The trust anchor's Entity Configuration (pinned root + statement-signing key).</p>\n</li>\n<li><p><code>Fetch Subordinate Statement</code> — One organization's trust-list entry (<code>?sub=&lt;entity-identifier&gt;</code>).</p>\n</li>\n<li><p><code>List Subordinates</code> — Entity Identifiers of all currently trusted organizations.</p>\n</li>\n<li><p><code>Get Revocation List</code> — The positive revocation-list statement (short-lived by design).</p>\n</li>\n</ul>\n<hr>\n<h2 id=\"conventions\">Conventions</h2>\n<ul>\n<li><p>Variables between <code>{{</code> and <code>}}</code> must be configured in the active environment before running the requests.</p>\n</li>\n<li><p>IDs prefixed with <code>_</code> (e.g. <code>{{_credential-id}}</code>) are variables typically set automatically by pre-request scripts or tests of earlier requests in the flow.</p>\n</li>\n<li><p>Each request includes example responses (<code>success</code>, and error cases where relevant) to make development and testing easier.</p>\n</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Blerify Public API","slug":"blerify-public-api"}],"owner":"40210155","collectionId":"dc344f5e-c1ca-4100-b556-987b4caacc78","publishedId":"2sBY4QtLC7","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-07-25T06:15:39.000Z"},"item":[{"name":"Blerify Auth","item":[{"name":"Login with signed Jwt","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","","    const responseJson = pm.response.json();","    pm.environment.set(\"access-token\", responseJson.access_token);","});",""],"type":"text/javascript","packages":{},"id":"50c2e673-43b6-4487-ac15-03794ba2d5d4"}}],"id":"7890894d-04f3-4f5e-90f7-e7bf7acbb439","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"client_id","value":"{{client-id}}"},{"key":"client_assertion","value":"{{client-assertion}}"},{"key":"organization_id","value":"{{organization-id}}","type":"text"}]},"url":"{{auth-api-host}}/auth/v2/protocol/openid-connect/token","urlObject":{"path":["auth","v2","protocol","openid-connect","token"],"host":["{{auth-api-host}}"],"query":[],"variable":[]}},"response":[{"id":"b7c02f18-7ac8-4ffb-b666-7801e3c3a5ba","name":"success","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"client_id","value":"blerify-api"},{"key":"client_assertion","value":"<signed-jwt-example>"},{"key":"organization_id","value":"{{organization-id}}","type":"text"}]},"url":"{{auth-api-host}}/auth/v2/protocol/openid-connect/token"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"1258"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.7.2"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Thu, 09 Jan 2025 14:55:37 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"<signed-jwt-example>\",\n    \"expires_in\": 36000,\n    \"refresh_expires_in\": 0,\n    \"token_type\": \"Bearer\",\n    \"not-before-policy\": 0,\n    \"scope\": \"email profile\"\n}"},{"id":"34893cb7-b5a5-4870-9604-ff6775015d16","name":"invalid-credentials","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"client_id","value":"blerify-api"},{"key":"client_assertion","value":"<signed-jwt-example>"},{"key":"organization_id","value":"{{organization-id}}","type":"text"}]},"url":"{{auth-api-host}}/auth/v2/protocol/openid-connect/token"},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"92"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.7.2"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Thu, 09 Jan 2025 14:51:27 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The user credentials isnt valid\",\n    \"statusCode\": 503,\n    \"action\": null\n}"}],"_postman_id":"7890894d-04f3-4f5e-90f7-e7bf7acbb439"}],"id":"e6c70604-8e22-476e-b9ac-071b7f7ec819","_postman_id":"e6c70604-8e22-476e-b9ac-071b7f7ec819","description":""},{"name":"Credentials","item":[{"name":"mDL","item":[{"name":"create","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","","    const responseJson = pm.response.json();","    pm.environment.set(\"_signingMessage\", responseJson.signingMessage);","    pm.environment.set(\"_credential_id\", responseJson.credential._id);","});"],"type":"text/javascript","packages":{},"requests":{},"id":"96c4ab07-e216-4cf6-b786-c621743e20bd"}}],"id":"c6313520-4627-46f3-b1e4-b183e42a603b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\": \"{{template-id}}\",\n    \"additionalData\": {\n        \"mdlData\": {\n            \"family_name\": \"Maravi\",\n            \"given_name\": \"Carlos Antonio\",\n            \"birth_date\": \"1987-03-15\",\n            \"issue_date\": \"2023-09-01\",\n            \"expiry_date\": \"2028-09-30\",\n            \"issuing_country\": \"US\",\n            \"issuing_authority\": \"Sertracen\",\n            \"document_number\": \"8-203-1369\",\n            \"nationality\": \"UY\", // alpha 2 code\n            \"portrait\": \"FFD8FFE000104A46494600010101009000900000FFDB004300130D0E110E0C13110F11151413171D301F1D1A1A1D3A2A2C2330453D4947443D43414C566D5D4C51685241435F82606871757B7C7B4A5C869085778F6D787B76FFDB0043011415151D191D381F1F38764F434F7676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676FFC00011080018006403012200021101031101FFC4001B00000301000301000000000000000000000005060401020307FFC400321000010303030205020309000000000000010203040005110612211331141551617122410781A1163542527391B2C1F1FFC4001501010100000000000000000000000000000001FFC4001A110101010003010000000000000000000000014111213161FFDA000C03010002110311003F00A5BBDE22DA2329C7D692BC7D0D03F52CFB0FF75E7A7EF3E7709723A1D0DAE146DDFBB3C039CE07AD2BD47A7E32DBB8DD1D52D6EF4B284F64A480067DFB51F87FFB95FF00EB9FF14D215DE66AF089CE44B7DBDE9CB6890A2838EDDF18078F7ADD62D411EF4DB9B10A65D6B95A147381EA0D495B933275FE6BBA75C114104A8BA410413E983DFF004F5AF5D34B4B4CDE632D0BF1FD1592BDD91C6411F3934C2FA6AF6B54975D106DCF4A65AE56E856001EBC03C7CE29DD9EEF1EF10FC447DC9DA76AD2AEE93537A1BA7E4F70DD8EFF0057C6DFFB5E1A19854A83758E54528750946EC6704850CD037BCEB08B6D7D2CC76D3317FC7B5CC04FB6707269C5C6E0C5B60AE549242123B0E493F602A075559E359970D98DB89525456B51C951C8AFA13EA8E98E3C596836783D5C63F5A61A99FDB7290875DB4BE88AB384BBBBBFC7183FDEAA633E8951DB7DA396DC48524FB1A8BD611A5AA2A2432F30AB420A7A6D3240C718CF031FA9EF4C9AD550205AA02951DF4A1D6C8421B015B769DB8C9229837EA2BE8B1B0D39D0EBA9C51484EFDB8C0EFD8D258DAF3C449699F2EDBD4584E7AF9C64E3F96B9BEB28D4AC40931E6478C8E76A24A825449501D867D2B1DCDEBAE99B9C752AE4ECD6DDE4A179C1C1E460938F9149EF655E515C03919A289CB3DCA278FB7BF177F4FAA829DD8CE3F2AC9A7ECDE490971FAFD7DCE15EED9B71C018C64FA514514B24E8E4F8C5C9B75C1E82579DC1233DFEC08238F6ADD62D391ACC1C5256A79E706D52D431C7A0145140B9FD149EB3A60DC5E88CBBC2DA092411E9DC71F39A7766B447B344E847DCAC9DCB5ABBA8D145061D43A6FCF1E65CF15D0E90231D3DD9CFE62995C6DCC5CA12A2C904A15F71DD27D451453E09D1A21450961CBB3EA8A956433B781F1CE33DFED54F0E2B50A2B71D84ED6DB18028A28175F74FC6BDA105C529A791C25C4F3C7A11F71586268F4A66B726E33DE9EA6F1B52B181C760724E47B514520A5A28A283FFD9\",\n            \"driving_privileges\": [\n                {\n                    \"vehicle_category_code\": \"B\", // nacional\n                    \"issue_date\": \"2025-05-21\",\n                    \"expiry_date\": \"2027-05-21\",\n                    \"codes\": []\n                }/*,\n                {\n                    \"vehicle_category_code\": \"C\",\n                    \"issue_date\": \"2025-05-21\",\n                    \"expiry_date\": \"2027-05-21\",\n                    \"codes\": [{ \"code\": \"220\" }]\n                },\n                {\n                    \"vehicle_category_code\": \"D\",\n                    \"issue_date\": \"2025-05-21\",\n                    \"expiry_date\": \"2027-05-21\",\n                    \"codes\": [{ \"code\": \"230\" }]\n                },\n                {\n                    \"vehicle_category_code\": \"E1\",\n                    \"issue_date\": \"2025-05-21\",\n                    \"expiry_date\": \"2027-05-21\",\n                    \"codes\": [{ \"code\": \"240\" }]\n                }*/\n            ],\n            \"un_distinguishing_sign\": \"PA\"\n        },\n        \"validityInfo\": {\n            \"signed\": \"2025-02-13T10:10:18Z\",\n            \"validFrom\": \"2025-03-06T21:50:15Z\",\n            \"validUntil\": \"2030-02-13T10:10:18Z\"\n        },\n        \"devicePublicKey\": {\n            \"kty\": \"EC\",\n            \"crv\": \"P-256\",\n            \"x\": \"dRdfCvQ4obmgCg4DZ_QVJISNYpamA61G-gD0D1-WqJA\",\n            \"y\": \"pzYl3qu_2sb7OfCHNaaPYOjV-E5oHbvv-KxSaDVOxqs\"\n        },\n        \"kid\": \"{{kid}}\",\n        \"certificate\": \"{{pemCertificate}}\"\n        /*\"namespaces\": [\n            {\n                \"title\": \"\",\n                \"data\": {\n                    \"bloodType\": \"\",\n                    \"organDonor\": false,\n                    \"citizenIdNumber\": \"tstr\",\n                    \"citizenIdType\": \"tstr\"\n                }\n            }\n        ]*/\n    },\n    \"organizationUser\": {\n        \"id\": \"8-203-1365\",\n        \"did\": \"did:lac1:1iT5g9gduT4Q5DWE2bnncfnBCnM9uXPWMrCTvhPf2a8wpHWJgFBEZn295t1h9ucnQyvJ\"\n    },\n    \"options\": {\n        \"additionalData\": true,\n        \"onboard\": true\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials","description":"<h3 id=\"create-new-digital-license\">Create New Digital License</h3>\n<hr />\n<p><strong>Purpose:</strong><br />This HTTP POST request is used to create a new digital license for a specific project within an organization. It requires the organization ID and project ID in the URL path.</p>\n<p><strong>Request URL Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST {{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials\n\n</code></pre><ul>\n<li><p><code>{{api-host}}</code>: The base URL of the API.</p>\n</li>\n<li><p><code>{{organization-id}}</code>: The unique identifier of the organization.</p>\n</li>\n<li><p><code>{{project-id}}</code>: The unique identifier of the project.</p>\n</li>\n</ul>\n<p><strong>Parameters:</strong></p>\n<ul>\n<li><p><code>templateId</code>: The unique identifier of the template used in for the digital license project.</p>\n</li>\n<li><p><code>additionalData</code>: Additional data for the digital license, including <code>mdlData</code> and <code>devicePublicKey</code>.</p>\n<ul>\n<li><p><code>mdlData</code>: Data for the digital license, including personal information and document details.</p>\n<ul>\n<li><p><code>family_name</code>: The family name of the individual.</p>\n</li>\n<li><p><code>given_name</code>: The given name of the individual.</p>\n</li>\n<li><p><code>birth_date</code>: The birth date of the individual.</p>\n</li>\n<li><p><code>issue_date</code>: The issue date of the document.</p>\n</li>\n<li><p><code>expiry_date</code>: The expiry date of the document.</p>\n</li>\n<li><p><code>issuing_country</code>: The issuing country of the document.</p>\n</li>\n<li><p><code>issuing_authority</code>: The issuing authority of the document.</p>\n</li>\n<li><p><code>document_number</code>: The document number.</p>\n</li>\n<li><p><code>portrait</code>: The portrait of the individual.</p>\n</li>\n<li><p><code>driving_privileges</code>: Details of driving privileges including vehicle category code, issue date, expiry date, and codes.</p>\n</li>\n<li><p><code>un_distinguishing_sign</code>: Un-distinguishing sign for the issuing country.</p>\n</li>\n</ul>\n</li>\n<li><p><code>devicePublicKey</code>: Public key information for the device in JWK format</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Request Body (Raw):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"receiver\": \"86a4da0593fd03d70f36d9d2914a44 ...\",\n  \"templateId\": \"55555555-2222-cccc-bbbb-2e2e2e ...\",\n  \"additionalData\": {\n    \"mdlData\": {\n      \"family_name\": \"Maravi\",\n      \"given_name\": \"Carlos\",\n      \"birth_date\": \"1987-03-15\",\n      \"issue_date\": \"2023-09-01\",\n      \"expiry_date\": \"2028-09-30\",\n      \"issuing_country\": \"US\",\n      \"issuing_authority\": \"Sertracen\",\n      \"document_number\": \"8-203-1365\",\n      \"portrait\": \"FFD8FFE000104A4649460001010100 ...\",\n      \"driving_privileges\": [\n        {\n          \"vehicle_category_code\": \"A\",\n          \"issue_date\": \"2023-09-01\",\n          \"expiry_date\": \"2028-09-30\",\n          \"codes\": [\n            {\n              \"code\": \"A1\",\n              \"sign\": \"+\",\n              \"value\": \"automatic\"\n            }\n          ]\n        }\n      ],\n      \"un_distinguishing_sign\": \"PA\"\n    },\n    \"devicePublicKey\": {\n      \"kty\": \"EC\",\n      \"x\": \"iBh5ynojixm_D0wfjADpouGbp6b3Pq ...\",\n      \"y\": \"oxS1OAORJ7XNUHNfVFGeM8E0RQVFxW ...\",\n      \"crv\": \"P-256\"\n    }\n  }\n}\n\n</code></pre>\n<p><strong>Expected Response Format:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"credential\": {\n    \"_id\": \"\",\n    \"issuer\": \"\",\n    \"receiver\": null,\n    \"data\": {\n      \"DocType\": \"\",\n      \"issuerNameSpaces\": {\n        \"org_iso_18013_5_1\": [\n          {\n            \"dataItem\": {\n              \"data\": {\n                \"digestID\": 0,\n                \"random\": \"\",\n                \"elementIdentifier\": \"\",\n                \"elementValue\": \"\"\n              }\n            },\n            \"isValid\": true\n          }\n        ]\n      },\n      \"deviceKeyInfo\": {\n        \"DeviceKey\": {\n          \"1\": 0,\n          \"3\": 0,\n          \"-1\": 0,\n          \"-2\": \"\",\n          \"-3\": \"\"\n        }\n      },\n      \"validityInfo\": {\n        \"Signed\": \"\",\n        \"ValidFrom\": \"\",\n        \"ValidUntil\": \"\",\n        \"ExpectedUpdate\": \"\"\n      },\n      \"digestAlgorithm\": \"\",\n      \"payload\": \"\"\n    },\n    \"issued\": null,\n    \"template\": {\n      \"id\": \"\",\n      \"name\": null,\n      \"description\": null,\n      \"projectId\": \"\",\n      \"organizationId\": \"\"\n    },\n    \"pdf\": null,\n    \"thumbnail\": null,\n    \"status\": \"\",\n    \"signers\": null,\n    \"approvers\": null,\n    \"signatures\": null,\n    \"creation\": {\n      \"userId\": \"\",\n      \"createdAt\": \"\"\n    },\n    \"revocation\": null,\n    \"issuance\": null,\n    \"signaturesCompletedAt\": null,\n    \"evidence\": null,\n    \"code\": null\n  },\n  \"signingMessage\": \"\"\n}\n\n</code></pre>\n","urlObject":{"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"1b77f9a9-cb4a-4a47-8bf1-dd17c537553e","name":"success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"receiver\":\"86a4da0593fd03d70f36d9d2914a4468b1415d34702e14299b73f8cabfa93783\",\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"additionalData\":{\n        \"mdlData\":{\n            \"family_name\":\"Maravi\",\n            \"given_name\":\"Carlos\",\n            \"birth_date\":\"1987-03-15\",\n            \"issue_date\":\"2023-09-01\",\n            \"expiry_date\":\"2028-09-30\",\n            \"issuing_country\":\"US\",\n            \"issuing_authority\":\"Sertracen\",\n            \"document_number\":\"8-203-1365\"\n        },\n        \"devicePublicKey\":{\n            \"kty\":\"EC\",\n            \"x\":\"iBh5ynojixm_D0wfjADpouGbp6b3Pq6SuFHU3htQhVk\",\n            \"y\":\"oxS1OAORJ7XNUHNfVFGeM8E0RQVFxWA62fJj-sxW03c\",\n            \"crv\": \"P-256\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 01 Feb 2025 02:06:08 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"5816"},{"key":"Connection","value":"keep-alive"},{"key":"vary","value":"Origin"},{"key":"x-krakend","value":"Version 2.7.2"},{"key":"x-krakend-completed","value":"false"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=vIxQ6JbH4qKFdmbd0rqkIqx6A9FNDUq1%2BO4AR%2BOkFOACGLdiKyl1%2FK%2F%2Bh9wPXO3dc9c74b0rcAycj2D%2FQ2ZuckPABHHKQzJs4p%2B%2BeXw1djgu7v1L1NpOoMRu5o5G2hHrEvo1asV3J1u9\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"90ae61674f43013a-GRU"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=203306&min_rtt=164904&rtt_var=51745&sent=44&recv=47&lost=0&retrans=0&sent_bytes=7479&recv_bytes=7160&delivery_rate=32244&cwnd=257&unsent_bytes=0&cid=0ec6fdaf804e875f&ts=41901&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"credential\": {\n        \"_id\": \"0x277f9cebfb5f3081cf27e92836add9487c00c3306df10387e94a4464ef28603d\",\n        \"issuer\": \"did:lac1:1iT6Py5GfSQWWPkzpV7JxJREKyiU7tZx5Xjdf9fpVSBdwyWcMFVV3FS41khXKhMDQYFy\",\n        \"receiver\": null,\n        \"data\": {\n            \"DocType\": \"org_iso_18013_5_1.mDL\",\n            \"issuerNameSpaces\": {\n                \"org_iso_18013_5_1\": [\n                    {\n                        \"dataItem\": {\n                            \"data\": {\n                                \"digestID\": 0,\n                                \"random\": \"qTD7RJUdaTKx4yQ2x0mjTB6VTtZyOeHTVaZWr3qr5YE=\",\n                                \"elementIdentifier\": \"expiry_date\",\n                                \"elementValue\": \"2028-09-30\"\n                            }\n                        },\n                        \"isValid\": false\n                    },\n                    {\n                        \"dataItem\": {\n                            \"data\": {\n                                \"digestID\": 1,\n                                \"random\": \"1Yn5aBjJh8/mEtsPBybbEZkUyccoUFU95xz368iD7SE=\",\n                                \"elementIdentifier\": \"issuing_country\",\n                                \"elementValue\": \"US\"\n                            }\n                        },\n                        \"isValid\": false\n                    },\n                    {\n                        \"dataItem\": {\n                            \"data\": {\n                                \"digestID\": 2,\n                                \"random\": \"tyS/SrD3/OjtMPlQY46fIpdLFFid1vrVR4WiNeipJag=\",\n                                \"elementIdentifier\": \"issuing_authority\",\n                                \"elementValue\": \"Sertracen\"\n                            }\n                        },\n                        \"isValid\": false\n                    },\n                    {\n                        \"dataItem\": {\n                            \"data\": {\n                                \"digestID\": 3,\n                                \"random\": \"ifEazwkt+rQWndA2GURkzmg8YhuUoo9914CsA0IzYE4=\",\n                                \"elementIdentifier\": \"document_number\",\n                                \"elementValue\": \"8-203-1365\"\n                            }\n                        },\n                        \"isValid\": false\n                    },\n                    {\n                        \"dataItem\": {\n                            \"data\": {\n                                \"digestID\": 4,\n                                \"random\": \"RUbPehCAkmUN5m1DrwaVQn4CIzhKaAEPIPIKP83vLkA=\",\n                                \"elementIdentifier\": \"family_name\",\n                                \"elementValue\": \"Maravi\"\n                            }\n                        },\n                        \"isValid\": false\n                    },\n                    {\n                        \"dataItem\": {\n                            \"data\": {\n                                \"digestID\": 5,\n                                \"random\": \"qa6myF6Syj8ldvMx5exxFrs/OaJARqHpXuBCtiQ8MNs=\",\n                                \"elementIdentifier\": \"given_name\",\n                                \"elementValue\": \"Carlos\"\n                            }\n                        },\n                        \"isValid\": false\n                    },\n                    {\n                        \"dataItem\": {\n                            \"data\": {\n                                \"digestID\": 6,\n                                \"random\": \"+k+hNQNms8Xt86J69ENLnR17OIu9yyNdRHXdGlNjpGY=\",\n                                \"elementIdentifier\": \"birth_date\",\n                                \"elementValue\": \"1987-03-15\"\n                            }\n                        },\n                        \"isValid\": false\n                    },\n                    {\n                        \"dataItem\": {\n                            \"data\": {\n                                \"digestID\": 7,\n                                \"random\": \"AydJ42ggTK6TI/rlYzkdEejY4z5GETHG9tHsbB7h1ls=\",\n                                \"elementIdentifier\": \"issue_date\",\n                                \"elementValue\": \"2023-09-01\"\n                            }\n                        },\n                        \"isValid\": false\n                    }\n                ]\n            },\n            \"deviceKeyInfo\": {\n                \"DeviceKey\": {\n                    \"1\": 2,\n                    \"3\": -7,\n                    \"-1\": 1,\n                    \"-2\": \"iBh5ynojixm/D0wfjADpouGbp6b3Pq6SuFHU3htQhVk=\",\n                    \"-3\": \"oxS1OAORJ7XNUHNfVFGeM8E0RQVFxWA62fJj+sxW03c=\"\n                }\n            },\n            \"validityInfo\": {\n                \"Signed\": \"2025-02-01T02:06:08Z\",\n                \"ValidFrom\": \"2025-02-01T02:11:08Z\",\n                \"ValidUntil\": \"2055-02-01T02:11:08Z\",\n                \"ExpectedUpdate\": \"2030-02-01T02:11:08Z\"\n            },\n            \"digestAlgorithm\": \"SHA-256\",\n            \"payload\": \"2BhZAnOmZ3ZlcnNpb25jMS4wb2RpZ2VzdEFsZ29yaXRobWdTSEEtMjU2bHZhbHVlRGlnZXN0c6Fxb3JnLmlzby4xODAxMy41LjGoAlggGxVrxHMuIOoAec7/ReMKn8MvAq4QQqc6lfeDymXCyakDWCCuSk7AkiElOarvQUkuJHKMBAbjpl03J5K8+boJj9LQewRYINfEIpnV4ZQF5Anhm0z8SMDnowo3GBocMjXB4d/xY9rcBVggH6wRCTT1zX7KxCsFIDcafHg55ToI6iiIU8YXbGX9OaUGWCCrZCafhOiNKaRyL4JRB89FCrowXGvczGMWibO0PjAPRQdYIL3UhYgwkPaETaiMg0H0AIzLkzeYME9XA2byonAK+FKNAFggqiNGFZCCpZpsoUWVxMhzE5yWgZqQjSsP3ERksUuv2FIBWCAS7El5UdO3PF/hr/Xbz2O7QeCR8j2WNbeGxdYGkoQn5W1kZXZpY2VLZXlJbmZvoWlkZXZpY2VLZXmlAQIDJiABIVggiBh5ynojixm/D0wfjADpouGbp6b3Pq6SuFHU3htQhVkiWCCjFLU4A5Entc1Qc19UUZ4zwTRFBUXFYDrZ8mP6zFbTd2dkb2NUeXBldW9yZy5pc28uMTgwMTMuNS4xLm1ETGx2YWxpZGl0eUluZm+kZnNpZ25lZMB0MjAyNS0wMi0wMVQwMjowNjowOFppdmFsaWRGcm9twHQyMDI1LTAyLTAxVDAyOjExOjA4Wmp2YWxpZFVudGlswHQyMDU1LTAyLTAxVDAyOjExOjA4Wm5leHBlY3RlZFVwZGF0ZcB0MjAzMC0wMi0wMVQwMjoxMTowOFo=\"\n        },\n        \"issued\": null,\n        \"template\": {\n            \"id\": \"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n            \"name\": null,\n            \"description\": null,\n            \"projectId\": \"fc14b1a0-78db-4fa6-8126-ca0a59416d7c\",\n            \"organizationId\": \"e6c13817-3453-4476-837f-ed1202c0a7f5\"\n        },\n        \"pdf\": null,\n        \"thumbnail\": null,\n        \"status\": \"PENDING\",\n        \"signers\": null,\n        \"approvers\": null,\n        \"signatures\": null,\n        \"creation\": {\n            \"userId\": \"a5ef3db9-be2f-4157-b2fa-3aa3409e8e50\",\n            \"createdAt\": \"2025-02-01T02:06:08.69404482\"\n        },\n        \"revocation\": null,\n        \"issuance\": null,\n        \"signaturesCompletedAt\": null,\n        \"evidence\": null,\n        \"code\": null\n    },\n    \"signingMessage\": \"hGpTaWduYXR1cmUxQ6EBJkBZAnjYGFkCc6ZndmVyc2lvbmMxLjBvZGlnZXN0QWxnb3JpdGhtZ1NIQS0yNTZsdmFsdWVEaWdlc3RzoXFvcmcuaXNvLjE4MDEzLjUuMagCWCAbFWvEcy4g6gB5zv9F4wqfwy8CrhBCpzqV94PKZcLJqQNYIK5KTsCSISU5qu9BSS4kcowEBuOmXTcnkrz5ugmP0tB7BFgg18QimdXhlAXkCeGbTPxIwOejCjcYGhwyNcHh3/Fj2twFWCAfrBEJNPXNfsrEKwUgNxp8eDnlOgjqKIhTxhdsZf05pQZYIKtkJp+E6I0ppHIvglEHz0UKujBca9zMYxaJs7Q+MA9FB1ggvdSFiDCQ9oRNqIyDQfQAjMuTN5gwT1cDZvKicAr4Uo0AWCCqI0YVkIKlmmyhRZXEyHMTnJaBmpCNKw/cRGSxS6/YUgFYIBLsSXlR07c8X+Gv9dvPY7tB4JHyPZY1t4bF1gaShCflbWRldmljZUtleUluZm+haWRldmljZUtleaUBAgMmIAEhWCCIGHnKeiOLGb8PTB+MAOmi4Zunpvc+rpK4UdTeG1CFWSJYIKMUtTgDkSe1zVBzX1RRnjPBNEUFRcVgOtnyY/rMVtN3Z2RvY1R5cGV1b3JnLmlzby4xODAxMy41LjEubURMbHZhbGlkaXR5SW5mb6Rmc2lnbmVkwHQyMDI1LTAyLTAxVDAyOjA2OjA4Wml2YWxpZEZyb23AdDIwMjUtMDItMDFUMDI6MTE6MDhaanZhbGlkVW50aWzAdDIwNTUtMDItMDFUMDI6MTE6MDhabmV4cGVjdGVkVXBkYXRlwHQyMDMwLTAyLTAxVDAyOjExOjA4Wg==\"\n}"},{"id":"f930ac3b-c9cf-4722-9b7e-b5c4e1ed5043","name":"error-invalid-body-request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"additionalData\":{\n        \"mdlData\":{\n            \"family_name\":\"Maravi\",\n            \"given_name\":\"Carlos\",\n            \"birth_date\":\"1987-03-15\",\n            \"issue_date\":\"2023-09-01\",\n            \"expiry_date\":\"2028-09-30\",\n            \"issuing_country\":\"US\",\n            \"issuing_authority\":\"Sertracen\",\n            \"document_number\":\"8-203-1365\",\n            \"portrait\": \"FFD8FFE000104A46494600010101009000900000FFDB004300130D0E110E0C13110F11151413171D301F1D1A1A1D3A2A2C2330453D4947443D43414C566D5D4C51685241435F82606871757B7C7B4A5C869085778F6D787B76FFDB0043011415151D191D381F1F38764F434F7676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676FFC00011080018006403012200021101031101FFC4001B00000301000301000000000000000000000005060401020307FFC400321000010303030205020309000000000000010203040005110612211331141551617122410781A1163542527391B2C1F1FFC4001501010100000000000000000000000000000001FFC4001A110101010003010000000000000000000000014111213161FFDA000C03010002110311003F00A5BBDE22DA2329C7D692BC7D0D03F52CFB0FF75E7A7EF3E7709723A1D0DAE146DDFBB3C039CE07AD2BD47A7E32DBB8DD1D52D6EF4B284F64A480067DFB51F87FFB95FF00EB9FF14D215DE66AF089CE44B7DBDE9CB6890A2838EDDF18078F7ADD62D411EF4DB9B10A65D6B95A147381EA0D495B933275FE6BBA75C114104A8BA410413E983DFF004F5AF5D34B4B4CDE632D0BF1FD1592BDD91C6411F3934C2FA6AF6B54975D106DCF4A65AE56E856001EBC03C7CE29DD9EEF1EF10FC447DC9DA76AD2AEE93537A1BA7E4F70DD8EFF0057C6DFFB5E1A19854A83758E54528750946EC6704850CD037BCEB08B6D7D2CC76D3317FC7B5CC04FB6707269C5C6E0C5B60AE549242123B0E493F602A075559E359970D98DB89525456B51C951C8AFA13EA8E98E3C596836783D5C63F5A61A99FDB7290875DB4BE88AB384BBBBBFC7183FDEAA633E8951DB7DA396DC48524FB1A8BD611A5AA2A2432F30AB420A7A6D3240C718CF031FA9EF4C9AD550205AA02951DF4A1D6C8421B015B769DB8C9229837EA2BE8B1B0D39D0EBA9C51484EFDB8C0EFD8D258DAF3C449699F2EDBD4584E7AF9C64E3F96B9BEB28D4AC40931E6478C8E76A24A825449501D867D2B1DCDEBAE99B9C752AE4ECD6DDE4A179C1C1E460938F9149EF655E515C03919A289CB3DCA278FB7BF177F4FAA829DD8CE3F2AC9A7ECDE490971FAFD7DCE15EED9B71C018C64FA514514B24E8E4F8C5C9B75C1E82579DC1233DFEC08238F6ADD62D391ACC1C5256A79E706D52D431C7A0145140B9FD149EB3A60DC5E88CBBC2DA092411E9DC71F39A7766B447B344E847DCAC9DCB5ABBA8D145061D43A6FCF1E65CF15D0E90231D3DD9CFE62995C6DCC5CA12A2C904A15F71DD27D451453E09D1A21450961CBB3EA8A956433B781F1CE33DFED54F0E2B50A2B71D84ED6DB18028A28175F74FC6BDA105C529A791C25C4F3C7A11F71586268F4A66B726E33DE9EA6F1B52B181C760724E47B514520A5A28A283FFD9\",\n            \"driving_privileges\": [ //optional\n                {\n                    \"vehicle_category_code\": \"A\",\n                    \"issue_date\": \"2023-09-01\",\n                    \"expiry_date\":\"2028-09-30\",\n                    \"codes\": [\n                        {\n                            \"code\": \"A1\",\n                            \"sign\": \"+\",\n                            \"value\": \"automatic\"\n                        },\n                        {\n                            \"code\": \"A2\",\n                            \"sign\": \"+\"\n                        },\n                        {\n                            \"code\": \"AM\",\n                            \"sign\": \"-\"\n                        }\n                    ]\n                },\n                {\n                    \"vehicle_category_code\": \"B\",\n                    \"issue_date\": \"2023-09-01\",\n                    \"expiry_date\":\"2028-09-30\",\n                    \"codes\":[\n                        {\n                            \"code\": \"B\", //B or 70?\n                            \"sign\": \"+\",\n                            \"value\": \"automatic\" // only automatic transmission\n                        },\n                        {\n                            \"code\": \"01\",\n                            \"sign\": \"-\",\n                            \"value\": \"Corrective lenses required\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"devicePublicKey\":{\n            \"kty\":\"EC\",\n            \"x\":\"iBh5ynojixm_D0wfjADpouGbp6b3Pq6SuFHU3htQhVk\",\n            \"y\":\"oxS1OAORJ7XNUHNfVFGeM8E0RQVFxWA62fJj-sxW03c\",\n            \"crv\": \"P-256\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 11 Feb 2025 04:03:49 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"80"},{"key":"Connection","value":"keep-alive"},{"key":"vary","value":"Origin"},{"key":"x-krakend","value":"Version 2.7.2"},{"key":"x-krakend-completed","value":"false"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=I6enqieH2h8iR99SC4gz8jyh8UrcZLFlMiTT2WU6Xj4ZfJn1i9n48qmVd7yXTYX5iOkPkfWfbHyagOp%2F58p9HFvTI3knK3XCYev6E5YMh0yt6lLM8oY5AkH314tA2XjMkbyIUPK6JQVe\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"910173826822b4ef-SCL"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=55245&min_rtt=54953&rtt_var=15962&sent=7&recv=10&lost=0&retrans=0&sent_bytes=2820&recv_bytes=6521&delivery_rate=74084&cwnd=252&unsent_bytes=0&cid=e89d312efefa406b&ts=1109&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": 400,\n    \"error\": \"{UnDistinguishingSign=this field is mandatory}\"\n}"},{"id":"302052ca-8c2e-40b2-9405-f7a73f9c1d28","name":"error-initialize-validityinfo","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"additionalData\":{\n        \"mdlData\":{\n            \"family_name\":\"Maravi\",\n            \"given_name\":\"Carlos\",\n            \"birth_date\":\"1987-03-15\",\n            \"issue_date\":\"2023-09-01\",\n            \"expiry_date\":\"2028-09-30\",\n            \"issuing_country\":\"US\"\n        },\n        \"devicePublicKey\":{\n            \"kty\":\"EC\",\n            \"x\":\"iBh5ynojixm_D0wfjADpouGbp6b3Pq6SuFHU3htQhVk\",\n            \"y\":\"oxS1OAORJ7XNUHNfVFGeM8E0RQVFxWA62fJj-sxW03c\",\n            \"crv\": \"P-256\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"Text","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 32100,\n  \"error\" : \"failed initialize ValidityInfo\"\n}"},{"id":"397b2ee0-3a05-4e42-bd29-bf89e8432d0c","name":"error-initialize-issuernamespace","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"additionalData\":{\n        \"mdlData\":{\n            \"family_name\":\"Maravi\",\n            \"given_name\":\"Carlos\",\n            \"birth_date\":\"1987-03-15\",\n            \"issue_date\":\"2023-09-01\",\n            \"expiry_date\":\"2028-09-30\",\n            \"issuing_country\":\"US\"\n        },\n        \"devicePublicKey\":{\n            \"kty\":\"EC\",\n            \"x\":\"iBh5ynojixm_D0wfjADpouGbp6b3Pq6SuFHU3htQhVk\",\n            \"y\":\"oxS1OAORJ7XNUHNfVFGeM8E0RQVFxWA62fJj-sxW03c\",\n            \"crv\": \"P-256\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"Text","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 32100,\n  \"error\" : \"failed initialize IssuerNamespace\"\n}"},{"id":"4741c150-37b1-43d8-a664-d29c3fed1593","name":"error-initialize-valuedigests","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"additionalData\":{\n        \"mdlData\":{\n            \"family_name\":\"Maravi\",\n            \"given_name\":\"Carlos\",\n            \"birth_date\":\"1987-03-15\",\n            \"issue_date\":\"2023-09-01\",\n            \"expiry_date\":\"2028-09-30\",\n            \"issuing_country\":\"US\"\n        },\n        \"devicePublicKey\":{\n            \"kty\":\"EC\",\n            \"x\":\"iBh5ynojixm_D0wfjADpouGbp6b3Pq6SuFHU3htQhVk\",\n            \"y\":\"oxS1OAORJ7XNUHNfVFGeM8E0RQVFxWA62fJj-sxW03c\",\n            \"crv\": \"P-256\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"Text","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 32100,\n  \"error\" : \"failed initialize ValueDigests\"\n}"},{"id":"3bf40622-77ad-44c6-a10a-ff27d0d12398","name":"error-initialize-mso","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"additionalData\":{\n        \"mdlData\":{\n            \"family_name\":\"Maravi\",\n            \"given_name\":\"Carlos\",\n            \"birth_date\":\"1987-03-15\",\n            \"issue_date\":\"2023-09-01\",\n            \"expiry_date\":\"2028-09-30\",\n            \"issuing_country\":\"US\"\n        },\n        \"devicePublicKey\":{\n            \"kty\":\"EC\",\n            \"x\":\"iBh5ynojixm_D0wfjADpouGbp6b3Pq6SuFHU3htQhVk\",\n            \"y\":\"oxS1OAORJ7XNUHNfVFGeM8E0RQVFxWA62fJj-sxW03c\",\n            \"crv\": \"P-256\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"Text","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 32100,\n  \"error\" : \"failed initialize MSO\"\n}"},{"id":"97f082a3-fc6f-4cbd-b838-d1490409f433","name":"error-generating-cose-sign1","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"additionalData\":{\n        \"mdlData\":{\n            \"family_name\":\"Maravi\",\n            \"given_name\":\"Carlos\",\n            \"birth_date\":\"1987-03-15\",\n            \"issue_date\":\"2023-09-01\",\n            \"expiry_date\":\"2028-09-30\",\n            \"issuing_country\":\"US\"\n        },\n        \"devicePublicKey\":{\n            \"kty\":\"EC\",\n            \"x\":\"iBh5ynojixm_D0wfjADpouGbp6b3Pq6SuFHU3htQhVk\",\n            \"y\":\"oxS1OAORJ7XNUHNfVFGeM8E0RQVFxWA62fJj-sxW03c\",\n            \"crv\": \"P-256\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"Text","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 32501,\n  \"error\" : \"failed generating COSE_Sign1 message\"\n}"},{"id":"d9204808-a589-48be-afca-24e7abf2deb3","name":"error-generating-payload-tosign","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"additionalData\":{\n        \"mdlData\":{\n            \"family_name\":\"Maravi\",\n            \"given_name\":\"Carlos\",\n            \"birth_date\":\"1987-03-15\",\n            \"issue_date\":\"2023-09-01\",\n            \"expiry_date\":\"2028-09-30\",\n            \"issuing_country\":\"US\"\n        },\n        \"devicePublicKey\":{\n            \"kty\":\"EC\",\n            \"x\":\"iBh5ynojixm_D0wfjADpouGbp6b3Pq6SuFHU3htQhVk\",\n            \"y\":\"oxS1OAORJ7XNUHNfVFGeM8E0RQVFxWA62fJj-sxW03c\",\n            \"crv\": \"P-256\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"Text","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 32502,\n  \"error\" : \"failed generating payload to sign\"\n}"},{"id":"02a8496e-697b-48f0-8154-33ddd4940172","name":"error-encoding-mso-cbor","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"additionalData\":{\n        \"mdlData\":{\n            \"family_name\":\"Maravi\",\n            \"given_name\":\"Carlos\",\n            \"birth_date\":\"1987-03-15\",\n            \"issue_date\":\"2023-09-01\",\n            \"expiry_date\":\"2028-09-30\",\n            \"issuing_country\":\"US\"\n        },\n        \"devicePublicKey\":{\n            \"kty\":\"EC\",\n            \"x\":\"iBh5ynojixm_D0wfjADpouGbp6b3Pq6SuFHU3htQhVk\",\n            \"y\":\"oxS1OAORJ7XNUHNfVFGeM8E0RQVFxWA62fJj-sxW03c\",\n            \"crv\": \"P-256\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"Text","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 32102,\n  \"error\" : \"failed encode MSO to CBOR\"\n}"},{"id":"d63e8975-973e-4f7a-8387-3c65fcd1c6fb","name":"error-invalid-body-params","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"additionalData\":{\n        \"mdlData\":{\n            \"family_name\":\"Maravi\",\n            \"given_name\":\"Carlos\",\n            \"birth_date\":\"1987-03-15\",\n            \"issue_date\":\"2023-09-01\",\n            \"expiry_date\":\"2028-09-30\",\n            \"issuing_country\":\"US\"\n        },\n        \"devicePublicKey\":{\n            \"kty\":\"EC\",\n            \"x\":\"iBh5ynojixm_D0wfjADpouGbp6b3Pq6SuFHU3htQhVk\",\n            \"y\":\"oxS1OAORJ7XNUHNfVFGeM8E0RQVFxWA62fJj-sxW03c\",\n            \"crv\": \"P-256\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"Text","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 32400,\n  \"error\" : \"invalid input params\"\n}"}],"_postman_id":"c6313520-4627-46f3-b1e4-b183e42a603b"},{"name":"validate signature","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","","    const responseJson = pm.response.json();","    pm.environment.set(\"_signingMessage\", responseJson.signingMessage);","    pm.environment.set(\"_credential_id\", responseJson.credential._id);","});"],"type":"text/javascript","packages":{},"id":"80b2ebbf-df3a-433e-86ec-22a86ab86b16"}}],"id":"4496c0c8-c04d-4ea2-a29f-032b483b0887","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"mdoc\": \"{{mdoc}}\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/signature/validate","description":"<h3 id=\"create-new-digital-license\">Create New Digital License</h3>\n<hr />\n<p><strong>Purpose:</strong><br />This HTTP POST request is used to create a new digital license for a specific project within an organization. It requires the organization ID and project ID in the URL path.</p>\n<p><strong>Request URL Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST {{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials\n\n</code></pre><ul>\n<li><p><code>{{api-host}}</code>: The base URL of the API.</p>\n</li>\n<li><p><code>{{organization-id}}</code>: The unique identifier of the organization.</p>\n</li>\n<li><p><code>{{project-id}}</code>: The unique identifier of the project.</p>\n</li>\n</ul>\n<p><strong>Parameters:</strong></p>\n<ul>\n<li><p><code>templateId</code>: The unique identifier of the template used in for the digital license project.</p>\n</li>\n<li><p><code>additionalData</code>: Additional data for the digital license, including <code>mdlData</code> and <code>devicePublicKey</code>.</p>\n<ul>\n<li><p><code>mdlData</code>: Data for the digital license, including personal information and document details.</p>\n<ul>\n<li><p><code>family_name</code>: The family name of the individual.</p>\n</li>\n<li><p><code>given_name</code>: The given name of the individual.</p>\n</li>\n<li><p><code>birth_date</code>: The birth date of the individual.</p>\n</li>\n<li><p><code>issue_date</code>: The issue date of the document.</p>\n</li>\n<li><p><code>expiry_date</code>: The expiry date of the document.</p>\n</li>\n<li><p><code>issuing_country</code>: The issuing country of the document.</p>\n</li>\n<li><p><code>issuing_authority</code>: The issuing authority of the document.</p>\n</li>\n<li><p><code>document_number</code>: The document number.</p>\n</li>\n<li><p><code>portrait</code>: The portrait of the individual.</p>\n</li>\n<li><p><code>driving_privileges</code>: Details of driving privileges including vehicle category code, issue date, expiry date, and codes.</p>\n</li>\n<li><p><code>un_distinguishing_sign</code>: Un-distinguishing sign for the issuing country.</p>\n</li>\n</ul>\n</li>\n<li><p><code>devicePublicKey</code>: Public key information for the device in JWK format</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Request Body (Raw):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"receiver\": \"86a4da0593fd03d70f36d9d2914a44 ...\",\n  \"templateId\": \"55555555-2222-cccc-bbbb-2e2e2e ...\",\n  \"additionalData\": {\n    \"mdlData\": {\n      \"family_name\": \"Maravi\",\n      \"given_name\": \"Carlos\",\n      \"birth_date\": \"1987-03-15\",\n      \"issue_date\": \"2023-09-01\",\n      \"expiry_date\": \"2028-09-30\",\n      \"issuing_country\": \"US\",\n      \"issuing_authority\": \"Sertracen\",\n      \"document_number\": \"8-203-1365\",\n      \"portrait\": \"FFD8FFE000104A4649460001010100 ...\",\n      \"driving_privileges\": [\n        {\n          \"vehicle_category_code\": \"A\",\n          \"issue_date\": \"2023-09-01\",\n          \"expiry_date\": \"2028-09-30\",\n          \"codes\": [\n            {\n              \"code\": \"A1\",\n              \"sign\": \"+\",\n              \"value\": \"automatic\"\n            }\n          ]\n        }\n      ],\n      \"un_distinguishing_sign\": \"PA\"\n    },\n    \"devicePublicKey\": {\n      \"kty\": \"EC\",\n      \"x\": \"iBh5ynojixm_D0wfjADpouGbp6b3Pq ...\",\n      \"y\": \"oxS1OAORJ7XNUHNfVFGeM8E0RQVFxW ...\",\n      \"crv\": \"P-256\"\n    }\n  }\n}\n\n</code></pre>\n<p><strong>Expected Response Format:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"credential\": {\n    \"_id\": \"\",\n    \"issuer\": \"\",\n    \"receiver\": null,\n    \"data\": {\n      \"DocType\": \"\",\n      \"issuerNameSpaces\": {\n        \"org_iso_18013_5_1\": [\n          {\n            \"dataItem\": {\n              \"data\": {\n                \"digestID\": 0,\n                \"random\": \"\",\n                \"elementIdentifier\": \"\",\n                \"elementValue\": \"\"\n              }\n            },\n            \"isValid\": true\n          }\n        ]\n      },\n      \"deviceKeyInfo\": {\n        \"DeviceKey\": {\n          \"1\": 0,\n          \"3\": 0,\n          \"-1\": 0,\n          \"-2\": \"\",\n          \"-3\": \"\"\n        }\n      },\n      \"validityInfo\": {\n        \"Signed\": \"\",\n        \"ValidFrom\": \"\",\n        \"ValidUntil\": \"\",\n        \"ExpectedUpdate\": \"\"\n      },\n      \"digestAlgorithm\": \"\",\n      \"payload\": \"\"\n    },\n    \"issued\": null,\n    \"template\": {\n      \"id\": \"\",\n      \"name\": null,\n      \"description\": null,\n      \"projectId\": \"\",\n      \"organizationId\": \"\"\n    },\n    \"pdf\": null,\n    \"thumbnail\": null,\n    \"status\": \"\",\n    \"signers\": null,\n    \"approvers\": null,\n    \"signatures\": null,\n    \"creation\": {\n      \"userId\": \"\",\n      \"createdAt\": \"\"\n    },\n    \"revocation\": null,\n    \"issuance\": null,\n    \"signaturesCompletedAt\": null,\n    \"evidence\": null,\n    \"code\": null\n  },\n  \"signingMessage\": \"\"\n}\n\n</code></pre>\n","urlObject":{"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{_credential_id}}","signature","validate"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"235c8a86-cee3-4c37-9af3-7ac83f995f39","name":"success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"mdoc\": \"{{mdoc}}\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/signature/validate"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 22 May 2025 20:04:03 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"vary","value":"Origin"},{"key":"x-krakend","value":"Version 2.9.4"},{"key":"x-krakend-completed","value":"false"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=DrfThyztQFUsRMXyjlz6EAwAj%2Bpm9jHnhzhOb%2BhrqT8jTT6XBcqdK4uSG6TWPjKUMrKv6%2F3csFG9yezNkhPE2XJ0KT%2F8M9UWbx4avKKiZzK2QQ8AVycnOYyLR7Kzn9B8HyIM4nCy\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"943eeb9dca7b01b0-GRU"},{"key":"Content-Encoding","value":"br"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=109720&min_rtt=86141&rtt_var=7417&sent=93&recv=96&lost=0&retrans=0&sent_bytes=20136&recv_bytes=25168&delivery_rate=89593&cwnd=257&unsent_bytes=0&cid=28cc630728751b92&ts=57534&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"mdlData\": {\n        \"family_name\": \"Maravi\",\n        \"given_name\": \"Carlos\",\n        \"birth_date\": \"1987-03-15\",\n        \"issue_date\": \"2023-09-01\",\n        \"expiry_date\": \"2028-09-30\",\n        \"issuing_country\": \"US\",\n        \"issuing_authority\": \"Sertracen\",\n        \"document_number\": \"8-203-1365\",\n        \"portrait\": \"FFD8FFE000104A46494600010101009000900000FFDB004300130D0E110E0C13110F11151413171D301F1D1A1A1D3A2A2C2330453D4947443D43414C566D5D4C51685241435F82606871757B7C7B4A5C869085778F6D787B76FFDB0043011415151D191D381F1F38764F434F7676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676FFC00011080018006403012200021101031101FFC4001B00000301000301000000000000000000000005060401020307FFC400321000010303030205020309000000000000010203040005110612211331141551617122410781A1163542527391B2C1F1FFC4001501010100000000000000000000000000000001FFC4001A110101010003010000000000000000000000014111213161FFDA000C03010002110311003F00A5BBDE22DA2329C7D692BC7D0D03F52CFB0FF75E7A7EF3E7709723A1D0DAE146DDFBB3C039CE07AD2BD47A7E32DBB8DD1D52D6EF4B284F64A480067DFB51F87FFB95FF00EB9FF14D215DE66AF089CE44B7DBDE9CB6890A2838EDDF18078F7ADD62D411EF4DB9B10A65D6B95A147381EA0D495B933275FE6BBA75C114104A8BA410413E983DFF004F5AF5D34B4B4CDE632D0BF1FD1592BDD91C6411F3934C2FA6AF6B54975D106DCF4A65AE56E856001EBC03C7CE29DD9EEF1EF10FC447DC9DA76AD2AEE93537A1BA7E4F70DD8EFF0057C6DFFB5E1A19854A83758E54528750946EC6704850CD037BCEB08B6D7D2CC76D3317FC7B5CC04FB6707269C5C6E0C5B60AE549242123B0E493F602A075559E359970D98DB89525456B51C951C8AFA13EA8E98E3C596836783D5C63F5A61A99FDB7290875DB4BE88AB384BBBBBFC7183FDEAA633E8951DB7DA396DC48524FB1A8BD611A5AA2A2432F30AB420A7A6D3240C718CF031FA9EF4C9AD550205AA02951DF4A1D6C8421B015B769DB8C9229837EA2BE8B1B0D39D0EBA9C51484EFDB8C0EFD8D258DAF3C449699F2EDBD4584E7AF9C64E3F96B9BEB28D4AC40931E6478C8E76A24A825449501D867D2B1DCDEBAE99B9C752AE4ECD6DDE4A179C1C1E460938F9149EF655E515C03919A289CB3DCA278FB7BF177F4FAA829DD8CE3F2AC9A7ECDE490971FAFD7DCE15EED9B71C018C64FA514514B24E8E4F8C5C9B75C1E82579DC1233DFEC08238F6ADD62D391ACC1C5256A79E706D52D431C7A0145140B9FD149EB3A60DC5E88CBBC2DA092411E9DC71F39A7766B447B344E847DCAC9DCB5ABBA8D145061D43A6FCF1E65CF15D0E90231D3DD9CFE62995C6DCC5CA12A2C904A15F71DD27D451453E09D1A21450961CBB3EA8A956433B781F1CE33DFED54F0E2B50A2B71D84ED6DB18028A28175F74FC6BDA105C529A791C25C4F3C7A11F71586268F4A66B726E33DE9EA6F1B52B181C760724E47B514520A5A28A283FFD9\",\n        \"driving_privileges\": [\n            {\n                \"vehicle_category_code\": \"C\",\n                \"codes\": [\n                    {\n                        \"code\": \"01\"\n                    },\n                    {\n                        \"code\": \"220\",\n                        \"sign\": \"=\",\n                        \"value\": \"C\"\n                    }\n                ]\n            },\n            {\n                \"vehicle_category_code\": \"A\",\n                \"codes\": [\n                    {\n                        \"code\": \"S04\",\n                        \"sign\": \"<\",\n                        \"value\": \"70\"\n                    },\n                    {\n                        \"code\": \"210\",\n                        \"sign\": \"=\",\n                        \"value\": \"B\"\n                    }\n                ]\n            }\n        ],\n        \"un_distinguishing_sign\": \"PA\"\n    },\n    \"verifyInfo\": {\n        \"signature\": true,\n        \"publicKey\": {\n            \"kty\": \"EC\",\n            \"x\": \"iTwtg0eQbcbNabf2Nq9L_VM_lhhPCq2s0Qgw2kRx29s\",\n            \"y\": \"YKwXDRz8U0-uLZ3NSI93R_35eNkl6jHp6Qg8OCup7VM\",\n            \"crv\": \"P-256\"\n        }\n    }\n}"}],"_postman_id":"4496c0c8-c04d-4ea2-a29f-032b483b0887"},{"name":"assemble","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","    pm.environment.set(\"mdoc\", pm.response.json());","});"],"type":"text/javascript","packages":{},"id":"476de9e7-49ce-4b13-8796-12ba632e04cb"}}],"id":"21cd406a-ad5e-49a3-83a7-3ebc6af67aaf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"{{template-id}}\",\n    \"signature\": \"{{_signature}}\",\n    \"kid\": \"{{kid}}\",\n    \"certificate\": \"{{pemCertificate}}\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/sign","description":"<h3 id=\"update-organization-project-credential-sign\">Update Organization Project Credential Sign</h3>\n<p>This API endpoint is a HTTP PUT request used to assemble a digital license providing signature and certificate for a specific credential within a project of an organization.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p>Method: PUT</p>\n</li>\n<li><p>Path: <code>{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/sign</code></p>\n</li>\n<li><p>Body:</p>\n<ul>\n<li><p><code>templateId</code> (string): The ID of the template.</p>\n</li>\n<li><p><code>signature</code> (string): The signature for the credential.</p>\n</li>\n<li><p><code>kid</code> (string): The key ID of the jwk</p>\n</li>\n<li><p><code>certificate</code> (string): The PEM certificate.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<ul>\n<li><p>{ \"type\": \"string\" }</p>\n</li>\n<li><p>Description: The response is final mDL compliant with ISO18013-5 in hex format</p>\n</li>\n</ul>\n<h4 id=\"authentication\">Authentication</h4>\n<ul>\n<li>This API request requires the appropriate authentication and authorization for access.</li>\n</ul>\n","urlObject":{"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{_credential_id}}","sign"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"628ac03a-a56c-4295-bc85-65261b853dbb","name":"success","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"signature\": \"{{_signature}}\",\n    \"kid\": \"{{kid}}\",\n    \"certificate\": \"{{pemCertificate}}\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/sign"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"4538"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.7.2"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Wed, 05 Feb 2025 14:26:28 GMT"}],"cookie":[],"responseTime":null,"body":"\"a36776657273696f6e63312e3069646f63756d656e747381a267646f6354797065756f72672e69736f2e31383031332e352e312e6d444c6c6973737565725369676e6564a26a6e616d65537061636573a1716f72672e69736f2e31383031332e352e3188d818586aa4686469676573744944006672616e646f6d58207afcb5409b019b940798eec1488232da718182c0c0b625f1a506ad174449520471656c656d656e744964656e7469666965726b6578706972795f646174656c656c656d656e7456616c75656a323032382d30392d3330d8185866a4686469676573744944016672616e646f6d58201081eae214de3697ace14fb7c248a5df5950a9f5b5de1b137b15045adf2de7ec71656c656d656e744964656e7469666965726f69737375696e675f636f756e7472796c656c656d656e7456616c7565625553d818586fa4686469676573744944026672616e646f6d5820274ef9277832c23a5adb749bce5f913e6ceb0620e16ade759057765b74a642bb71656c656d656e744964656e7469666965727169737375696e675f617574686f726974796c656c656d656e7456616c75656953657274726163656ed818586ea4686469676573744944036672616e646f6d5820b6a25077b80fe4f0daf1f66d6e0e6664ecec424dd3011fd3909647db7c20744471656c656d656e744964656e7469666965726f646f63756d656e745f6e756d6265726c656c656d656e7456616c75656a382d3230332d31333635d8185866a4686469676573744944046672616e646f6d5820f3d0cae2d25ec1537610ad92df8cb827eff7d69f1ca8022800aee4789c18e05971656c656d656e744964656e7469666965726b66616d696c795f6e616d656c656c656d656e7456616c7565664d6172617669d8185865a4686469676573744944056672616e646f6d58201b1287678a0e8830c75158338bb4c834db2cddcad046d0b70cecc0210042280471656c656d656e744964656e7469666965726a676976656e5f6e616d656c656c656d656e7456616c7565664361726c6f73d8185869a4686469676573744944066672616e646f6d582087193b7ccbf1336e1162b48c2c1f88d7a593f7240307deaf456fcc92ad92317371656c656d656e744964656e7469666965726a62697274685f646174656c656c656d656e7456616c75656a313938372d30332d3135d8185869a4686469676573744944076672616e646f6d58205e27edc1a23027ab2e00c04ea07349d675f5e2c3ef6ba501d1641223f35d454871656c656d656e744964656e7469666965726a69737375655f646174656c656c656d656e7456616c75656a323032332d30392d30316a697373756572417574688443a10126a20442313118218159022e3082022a308201d0a003020102021457c6ccd308bde43eca3744f2a87138dabbb884e8300a06082a8648ce3d0403023053310b30090603550406130255533111300f06035504080c084e657720596f726b310f300d06035504070c06416c62616e79310f300d060355040a0c064e5920444d56310f300d060355040b0c064e5920444d56301e170d3233303931343134353531385a170d3333303931313134353531385a3053310b30090603550406130255533111300f06035504080c084e657720596f726b310f300d06035504070c06416c62616e79310f300d060355040a0c064e5920444d56310f300d060355040b0c064e5920444d563059301306072a8648ce3d020106082a8648ce3d03010703420004893c2d8347906dc6cd69b7f636af4bfd533f96184f0aadacd10830da4471dbdb60ac170d1cfc534fae2d9dcd488f7747fdf978d925ea31e9e9083c382ba9ed53a38181307f301d0603551d0e04160414ab6d2e03b91d492240338fbccadefd9333eaf6c7301f0603551d23041830168014ab6d2e03b91d492240338fbccadefd9333eaf6c7300f0603551d130101ff040530030101ff302c06096086480186f842010d041f161d4f70656e53534c2047656e657261746564204365727469666963617465300a06082a8648ce3d0403020348003045022009fd0cab97b03e78f64e74d7dcee88668c476a0afc5aa2cebffe07d3be772ea9022100da38abc98a080f49f24ffece1fffc8a6cdd5b2c0b5da8fc7b767ac3a95dcb83e590278d818590273a66776657273696f6e63312e306f646967657374416c676f726974686d675348412d3235366c76616c756544696765737473a1716f72672e69736f2e31383031332e352e31a804582080a82984ec88025aae732050a3a5ce0e88523d5efdc2360345654eefc8bfb02d055820e21d55301dce4ae5a998ca718f75558670f350091fc3f402719848daaaa9d7940658202fcbf831b65e521ea57d44a352d7ea76ffbc9aa2baac6387a19634cb268b1c6a075820d405358057e5d99ef0c8eaa0afa427f374c7784dd6b9a465c0c2e66c66c3ba2e005820403d83f2724351b744352d3037869733d791d2f4fe48f215a1aa93642aa8e9240158209020dfa1f8c33ad6b538c632c963f485c6fa54a10ef34b5784b23b3d8624b43c025820ccabd4b6906e30288ced09f1e74259b29971a8e965a49e8e1a9417ccc40dcc1d0358209f141205b7ce92a16909a6f1eb9b668027844716520046fca79a5b280169ad936d6465766963654b6579496e666fa1696465766963654b6579a52001215820881879ca7a238b19bf0f4c1f8c00e9a2e19ba7a6f73eae92b851d4de1b508559225820a314b538039127b5cd50735f54519e33c134450545c5603ad9f263facc56d3770102032667646f6354797065756f72672e69736f2e31383031332e352e312e6d444c6c76616c6964697479496e666fa4667369676e6564c074323032352d30322d30355431343a32353a30335a6976616c696446726f6dc074323032352d30322d30355431343a33303a30335a6a76616c6964556e74696cc074323035352d30322d30355431343a33303a30335a6e6578706563746564557064617465c074323033302d30322d30355431343a33303a30335a5840d3aacf6d9d58c7efdfd3df7587101d95b0753a6a823c331753735d8dc117be1fcdb7939189bd5de6b456628ae18e9b081c50cfd8f5f616479fa0ccb4e5512b1f6673746174757300\""},{"id":"8fb28acb-0bda-42ca-852a-572502d4a48c","name":"error-parsing-publickey","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"receiver\":\"86a4da0593fd03d70f36d9d2914a4468b1415d34702e14299b73f8cabfa93783\",\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"signature\": \"{{_signature}}\",\n    \"kid\": \"{{kid}}\",\n    \"certificate\": \"{{pemCertificate}}\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/sign"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"4538"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.7.2"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Mon, 03 Feb 2025 16:39:45 GMT"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 32115,\n  \"error\" : \"error parsing public key\"\n}"},{"id":"6dda0b37-a871-4afd-a82d-d7088b41dfc4","name":"error-assembling-device-response","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"receiver\":\"86a4da0593fd03d70f36d9d2914a4468b1415d34702e14299b73f8cabfa93783\",\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"signature\": \"{{_signature}}\",\n    \"kid\": \"{{kid}}\",\n    \"certificate\": \"{{pemCertificate}}\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/sign"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"4538"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.7.2"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Mon, 03 Feb 2025 16:39:45 GMT"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 32505,\n  \"error\" : \"error assembling device response\"\n}"},{"id":"ccc40d29-edfa-4ae3-8036-6e3b08a15efb","name":"error-parse-signature","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"signature\": \"{{_signature1}}\",\n    \"kid\": \"{{kid}}\",\n    \"certificate\": \"{{pemCertificate}}\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/sign"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"110"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.7.2"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Wed, 05 Feb 2025 05:11:46 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": 32116,\n    \"error\": \"error parsing hex string signature: encoding/hex: invalid byte: U+007B '{'\"\n}"},{"id":"b5ed0e61-1d41-466d-9a15-aa0ae2469652","name":"error-credential-data-not-found","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"55555555-2222-cccc-bbbb-2e2e2e6c6c6c\",\n    \"signature\": \"{{_signature}}\",\n    \"kid\": \"{{kid}}\",\n    \"certificate\": \"{{pemCertificate}}\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/sign"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"61"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.7.2"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Fri, 14 Feb 2025 02:43:21 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": 10701,\n    \"error\": \"credential data not found\"\n}"}],"_postman_id":"21cd406a-ad5e-49a3-83a7-3ebc6af67aaf"},{"name":"hold","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"ffb60d8b-0830-4f41-8b84-01cfdffd282f"}},{"listen":"prerequest","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"798a019b-fcd3-44d7-b67f-89c7682ae91a"}}],"id":"866eeedb-a8f5-444d-a27b-472ac94808a2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"status\":true,\n    \"metadata\": { // optional\n        \"code\": \"xxx\",\n        \"description\": \"xxx\",\n        \"category\": \"xxx\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/hold","description":"<h3 id=\"update-organization-project-credential-sign\">Update Organization Project Credential Sign</h3>\n<p>This API endpoint is a HTTP PUT request used to assemble a digital license providing signature and certificate for a specific credential within a project of an organization.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p>Method: PUT</p>\n</li>\n<li><p>Path: <code>{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/sign</code></p>\n</li>\n<li><p>Body:</p>\n<ul>\n<li><p><code>templateId</code> (string): The ID of the template.</p>\n</li>\n<li><p><code>signature</code> (string): The signature for the credential.</p>\n</li>\n<li><p><code>kid</code> (string): The key ID of the jwk</p>\n</li>\n<li><p><code>certificate</code> (string): The PEM certificate.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<ul>\n<li><p>{ \"type\": \"string\" }</p>\n</li>\n<li><p>Description: The response is final mDL compliant with ISO18013-5 in hex format</p>\n</li>\n</ul>\n<h4 id=\"authentication\">Authentication</h4>\n<ul>\n<li>This API request requires the appropriate authentication and authorization for access.</li>\n</ul>\n","urlObject":{"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{_credential_id}}","hold"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"8502ebdc-414f-4ef9-861d-512c617fb940","name":"success","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"status\":false\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/hold"},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"4538"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.7.2"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Wed, 05 Feb 2025 14:26:28 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"correlation-id\":\"98745ce5-992d-4867-83e9-fd872ac39a9f\"\n}"},{"id":"0a1f15a7-1c8d-45ec-8016-a71fe98a65d8","name":"error-already-on-hold","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"status\":true,\n    \"metadata\": { // optional\n        \"code\": \"xxx\",\n        \"description\": \"xxx\",\n        \"category\": \"xxx\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/hold"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 22 May 2025 23:50:01 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"80"},{"key":"Connection","value":"keep-alive"},{"key":"vary","value":"Origin"},{"key":"x-krakend","value":"Version 2.9.4"},{"key":"x-krakend-completed","value":"false"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=0MwrlkpkViZGZoKW3wDL7v2yWUUPuPwRxuOzFduaygvN4lZtkr7PbB7EuFGCe8AELTP9eZgOsaqaXwbZsIgKlJyxPXm8L%2FWEfIqEoOewxHVGAyTpNodTks2gPZkmo4gnR%2B9KOZg8\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"9440369d5c14ad09-GRU"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=97632&min_rtt=84415&rtt_var=35942&sent=17&recv=17&lost=0&retrans=0&sent_bytes=5977&recv_bytes=3033&delivery_rate=49323&cwnd=256&unsent_bytes=0&cid=41b825012f97466e&ts=9680&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": 40001,\n    \"error\": \"credential already has onHold status changed\"\n}"}],"_postman_id":"866eeedb-a8f5-444d-a27b-472ac94808a2"},{"name":"revoke","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"374fa966-ec62-4e89-a8f9-94ba63ca21d5"}},{"listen":"prerequest","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"0834e4eb-7355-4f7a-8835-a18f56bf99d4"}}],"id":"188c800c-9d04-4401-9752-5c6a09f72c49","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"metadata\": { // optional\n        \"code\": \"xxx\",\n        \"description\": \"xxx\",\n        \"category\": \"xxx\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/revoke","description":"<h3 id=\"update-organization-project-credential-sign\">Update Organization Project Credential Sign</h3>\n<p>This API endpoint is a HTTP PUT request used to assemble a digital license providing signature and certificate for a specific credential within a project of an organization.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p>Method: PUT</p>\n</li>\n<li><p>Path: <code>{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/sign</code></p>\n</li>\n<li><p>Body:</p>\n<ul>\n<li><p><code>templateId</code> (string): The ID of the template.</p>\n</li>\n<li><p><code>signature</code> (string): The signature for the credential.</p>\n</li>\n<li><p><code>kid</code> (string): The key ID of the jwk</p>\n</li>\n<li><p><code>certificate</code> (string): The PEM certificate.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<ul>\n<li><p>{ \"type\": \"string\" }</p>\n</li>\n<li><p>Description: The response is final mDL compliant with ISO18013-5 in hex format</p>\n</li>\n</ul>\n<h4 id=\"authentication\">Authentication</h4>\n<ul>\n<li>This API request requires the appropriate authentication and authorization for access.</li>\n</ul>\n","urlObject":{"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{_credential_id}}","revoke"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"63d6f67b-23d2-4232-9561-9c6060711b2d","name":"success","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"metadata\": { // optional\n        \"code\": \"xxx\",\n        \"description\": \"xxx\",\n        \"category\": \"xxx\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/revoke"},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"63"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.9.4"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Thu, 22 May 2025 16:03:47 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"correlation-id\": \"bb38cb70-72ce-4db8-8204-e82923f0500f\"\n}"},{"id":"de99bf2c-8d79-489d-9980-a1b3ca06f416","name":"error-already-revoked","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"metadata\": { // optional\n        \"code\": \"xxx\",\n        \"description\": \"xxx\",\n        \"category\": \"xxx\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential_id}}/revoke"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 22 May 2025 23:50:46 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"65"},{"key":"Connection","value":"keep-alive"},{"key":"vary","value":"Origin"},{"key":"x-krakend","value":"Version 2.9.4"},{"key":"x-krakend-completed","value":"false"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=xslfEKjFbvBVHL1xWUMy1%2Fqr2nxCGfAbdWXZJpqoZ0UuubXVTjkkZLsEGMBY%2Bq%2FTBvPE0ZVJGv8z05n3R6LmBu%2B9U8vWdQ7NmPph1KDpNO5O1EqGrJ5XvQkKbYVpeD%2FSxftff7YX\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"944037bc4fbcad09-GRU"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=105535&min_rtt=84415&rtt_var=32867&sent=63&recv=63&lost=0&retrans=0&sent_bytes=7885&recv_bytes=7071&delivery_rate=49323&cwnd=257&unsent_bytes=0&cid=41b825012f97466e&ts=54997&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": 40001,\n    \"error\": \"credential is already revoked\"\n}"}],"_postman_id":"188c800c-9d04-4401-9752-5c6a09f72c49"}],"id":"11ca123c-1f66-405a-865d-2ffbe31ff242","description":"<p>this module is in charge of generate and sign ISO-18031 digital licenses</p>\n","_postman_id":"11ca123c-1f66-405a-865d-2ffbe31ff242"},{"name":"w3c","item":[{"name":"create","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","","    const responseJson = pm.response.json();","    pm.environment.set(\"_signingMessage\", responseJson.signingMessage);","    pm.environment.set(\"_credential_id\", responseJson.credential._id);","});"],"type":"text/javascript","packages":{},"requests":{},"id":"7d3b9900-0f88-4f02-a782-0f6cfb1185fa"}}],"id":"44412c10-41d1-4d4c-9655-c0b3ea8925b8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"projectId\":\"9697f34c-6ba5-4f79-b6dc-0434379d9646\",\n    \"templateId\":\"6cba8cf5-2d00-4baa-b18a-8797c8c8b550\",\n    \"additionalData\":{\n        \"w3cData\":{\n            \"email\":\"carlos@email.com\",\n            \"name\":\"Carlos\",\n            \"lastname\":\"Maravi\"\n        }\n    },\n    \"organizationUser\":{\n        \"email\":\"carlitos@email.com\",\n        \"did\":\"did:lac1:1iT4pJXCP5YJhPWkXxgNRrGDA8SM4ckNqTTkHPx3NfQRyVGuFfhs5y5kcQmRiDL6rB67\"\n    },\n    \"options\":{\n        \"approvers\":false\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials","description":"<h3 id=\"create-new-w3c-credential\">Create New W3C Credential</h3>\n<hr />\n<p><strong>Purpose:</strong><br />This HTTP POST request is used to create a new W3C Verifiable Credential for a specific user within a project and organization. It requires the organization ID and project ID in the URL path.</p>\n<p><strong>Request URL Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST {{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials\n\n</code></pre><ul>\n<li><p><code>{{api-host}}</code>: The base URL of the API.</p>\n</li>\n<li><p><code>{{organization-id}}</code>: The unique identifier of the organization.</p>\n</li>\n<li><p><code>{{project-id}}</code>: The unique identifier of the project.</p>\n</li>\n</ul>\n<p><strong>Authentication:</strong></p>\n<p>Bearer token required. Use the <code>{{access-token}}</code> environment variable.</p>\n<p><strong>Parameters:</strong></p>\n<ul>\n<li><p><code>projectId</code>: The unique identifier of the project to associate the credential with.</p>\n</li>\n<li><p><code>templateId</code>: The unique identifier of the template used for the W3C credential project.</p>\n</li>\n<li><p><code>additionalData</code>: Additional data for the W3C credential, including <code>w3cData</code>.</p>\n<ul>\n<li><p><code>w3cData</code>: Subject data to be embedded in the W3C Verifiable Credential.</p>\n<ul>\n<li><p><code>email</code>: The email address of the credential subject.</p>\n</li>\n<li><p><code>name</code>: The first name of the credential subject.</p>\n</li>\n<li><p><code>lastname</code>: The last name of the credential subject.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><code>organizationUser</code>: The user to whom the credential will be issued.</p>\n<ul>\n<li><p><code>email</code>: The email address of the recipient user within the organization.</p>\n</li>\n<li><p><code>did</code>: The Decentralized Identifier (DID) of the recipient user (optional).</p>\n</li>\n</ul>\n</li>\n<li><p><code>options</code>: Optional flags to control credential issuance behavior.</p>\n<ul>\n<li><p><code>approvers</code>: Whether approvers are required before issuing the credential (<code>boolean</code>).</p>\n</li>\n<li><p><code>onboard</code>: Whether to onboard the user during credential issuance (<code>boolean</code>).</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Request Body (Raw):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"projectId\": \"9697f34c-6ba5-4f79-b6dc-0434379d9646\",\n    \"templateId\": \"6cba8cf5-2d00-4baa-b18a-8797c8c8b550\",\n    \"additionalData\": {\n        \"w3cData\": {\n            \"email\": \"carlos@email.com\",\n            \"name\": \"Carlos\",\n            \"lastname\": \"Maravi\"\n        }\n    },\n    \"organizationUser\": {\n        \"email\": \"carlitos@email.com\",\n        \"did\": \"did:lac1:1iT4pJXCP5YJhPWkXxgNRrGDA8SM4ckNqTTkHPx3NfQRyVGuFfhs5y5kcQmRiDL6rB67\"\n    },\n    \"options\": {\n        \"approvers\": false\n    }\n}\n\n</code></pre>\n<p><strong>Expected Response (201 Created):</strong></p>\n<p>A successful response returns the newly created credential object along with a <code>signingMessage</code> required for the next step.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"_id\": \"0x412f19b36d6c9a369798415126aec67ecc764a6cc6920ff104401766983646af\",\n  \"issuer\": \"did:lac1:1APgL8Z9V4bRQUTmoKPhjLRvNCsvTUkRjuceA5CiNYk5Ex2MZyS9RH4DVpFootP1ajG\",\n  \"receiver\": {\n    \"id\": \"86a4da0593fd03d70f36d9d2914a4468b1415d34702e14299b73f8cabfa93783\",\n    \"email\": \"carlitos@email.com\",\n    \"repositoryType\": \"WALLET\"\n  },\n  \"data\": {\n    \"@context\": [\n      \"https://www.w3.org/2018/credentials/v1\",\n      \"https://vc.blerify.com/education/EducationCredential\"\n    ],\n    \"type\": [\"VerifiableCredential\", \"EducationCredential\"],\n    \"id\": \"2b94c494-e402-4afd-9bd5-5ffc628efe41\",\n    \"issuer\": \"did:lac1:1APgL8Z9V4bRQUTmoKPhjLRvNCsvTUkRjuceA5CiNYk5Ex2MZyS9RH4DVpFootP1ajG\",\n    \"issuanceDate\": \"2026-02-23T16:14:54.944089Z\",\n    \"name\": \"Asistencia a curso\",\n    \"description\": \"Esta credencial verificable certifica la asistencia a curso.\",\n    \"credentialSubject\": {\n      \"type\": [\"EducationCredential\"],\n      \"id\": \"did:lac1:1iT4pJXCP5YJhPWkXxgNRrGDA8SM4ckNqTTkHPx3NfQRyVGuFfhs5y5kcQmRiDL6rB67\",\n      \"kind\": \"EducationCredential\",\n      \"subjectName\": \"Carlos Maravi\",\n      \"title\": \"Test 2 feb (1)\",\n      \"duration\": \"Test 2 feb\",\n      \"date\": \"Test 2 feb\"\n    }\n  },\n  \"template\": {\n    \"id\": \"6cba8cf5-2d00-4baa-b18a-8797c8c8b550\",\n    \"name\": \"Test 2 feb (1)\",\n    \"description\": \"Test 2 feb\",\n    \"projectId\": \"9697f34c-6ba5-4f79-b6dc-0434379d9646\",\n    \"organizationId\": \"81d69309-5e76-4e96-8ff6-541ca38dcc11\",\n    \"network\": \"AVALANCHE\"\n  },\n  \"status\": \"PENDING\",\n  \"approvers\": [\n    {\n      \"id\": \"15a45afb-750f-4069-a277-cfb5a358d8cf\",\n      \"did\": \"did:lac1:1APfwv3WfBhrmobwyxrYJTA7ENzKFkbsMVSeLqvzHBuzfpLiKyisTbiH7XEDkyH6Fng\",\n      \"name\": \"Jose\",\n      \"email\": \"demouno@email.com\",\n      \"approval\": null\n    }\n  ],\n  \"signatures\": [\n    {\n      \"type\": \"DataIntegrityProof\",\n      \"cryptosuite\": \"ecdsa-jcs-2019\",\n      \"created\": \"2026-02-23T11:14:57.400483\",\n      \"verificationMethod\": \"did:lac1:1APgL8Z9V4bRQUTmoKPhjLRvNCsvTUkRjuceA5CiNYk5Ex2MZyS9RH4DVpFootP1ajG#2orwtrQ29YqGuYc1CqA6gjFaRhr87JvDgySgzdh4AJwX\",\n      \"proofPurpose\": \"assertionMethod\",\n      \"proofValue\": null,\n      \"domain\": \"167sJKj3kUroA4V4xFnwpqiMqXm3ZnBFE3Dj6UvXggdiX48RLeLvToWo5VKBz1612vrpmdSMkvn2KZqBME3Zgeddd\"\n    }\n  ],\n  \"creation\": {\n    \"userId\": \"15a45afb-750f-4069-a277-cfb5a358d8cf\",\n    \"createdAt\": \"2026-02-24T11:14:54.535699\"\n  },\n  \"activities\": [],\n  \"signingMessage\": \"QS8Zs21smjaXmEFRJq7Gfsx2SmzGkg/xBEAXZpg2Rq8=\"\n}\n\n</code></pre>\n","urlObject":{"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"dc2777d9-668f-404e-82c5-fe787f517797","name":"success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"projectId\":\"9697f34c-6ba5-4f79-b6dc-0434379d9646\",\n    \"templateId\":\"6cba8cf5-2d00-4baa-b18a-8797c8c8b550\",\n    \"additionalData\":{\n        \"w3cData\":{\n            \"email\":\"carlos@email.com\",\n            \"name\":\"Carlos\",\n            \"lastname\":\"Maravi\"\n        }\n    },\n    \"organizationUser\":{\n        \"email\":\"carlitos@email.com\",\n        \"did\":\"did:lac1:1iT4pJXCP5YJhPWkXxgNRrGDA8SM4ckNqTTkHPx3NfQRyVGuFfhs5y5kcQmRiDL6rB67\"\n    },\n    \"options\":{\n        \"approvers\":false\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"_id\" : \"0x412f19b36d6c9a369798415126aec67ecc764a6cc6920ff104401766983646af\",\n  \"issuer\" : \"did:lac1:1APgL8Z9V4bRQUTmoKPhjLRvNCsvTUkRjuceA5CiNYk5Ex2MZyS9RH4DVpFootP1ajG\",\n  \"receiver\" : {\n    \"id\" : \"86a4da0593fd03d70f36d9d2914a4468b1415d34702e14299b73f8cabfa93783\",\n    \"email\" : \"carlitos@email.com\",\n    \"repositoryType\" : \"WALLET\"\n  },\n  \"data\" : {\n    \"@context\" : [ \"https://www.w3.org/2018/credentials/v1\", \"https://vc.blerify.com/education/EducationCredential\" ],\n    \"type\" : [ \"VerifiableCredential\", \"EducationCredential\" ],\n    \"id\" : \"2b94c494-e402-4afd-9bd5-5ffc628efe41\",\n    \"issuer\" : \"did:lac1:1APgL8Z9V4bRQUTmoKPhjLRvNCsvTUkRjuceA5CiNYk5Ex2MZyS9RH4DVpFootP1ajG\",\n    \"issuanceDate\" : \"2026-02-23T16:14:54.944089Z\",\n    \"name\" : \"Asistencia a curso\",\n    \"description\" : \"Esta credencial verificable certifica la asistencia a curso.\",\n    \"credentialSubject\" : {\n      \"type\" : [ \"EducationCredential\" ],\n      \"id\" : \"did:lac1:1iT4pJXCP5YJhPWkXxgNRrGDA8SM4ckNqTTkHPx3NfQRyVGuFfhs5y5kcQmRiDL6rB67\",\n      \"kind\" : \"EducationCredential\",\n      \"subjectName\" : \"Carlos Maravi\",\n      \"title\" : \"Test 2 feb (1)\",\n      \"duration\" : \"Test 2 feb\",\n      \"date\" : \"Test 2 feb\"\n    }\n  },\n  \"template\" : {\n    \"id\" : \"6cba8cf5-2d00-4baa-b18a-8797c8c8b550\",\n    \"name\" : \"Test 2 feb (1)\",\n    \"description\" : \"Test 2 feb\",\n    \"projectId\" : \"9697f34c-6ba5-4f79-b6dc-0434379d9646\",\n    \"organizationId\" : \"81d69309-5e76-4e96-8ff6-541ca38dcc11\",\n    \"network\" : \"AVALANCHE\"\n  },\n  \"status\" : \"PENDING\",\n  \"approvers\" : [ {\n    \"id\" : \"15a45afb-750f-4069-a277-cfb5a358d8cf\",\n    \"did\" : \"did:lac1:1APfwv3WfBhrmobwyxrYJTA7ENzKFkbsMVSeLqvzHBuzfpLiKyisTbiH7XEDkyH6Fng\",\n    \"name\" : \"Jose\",\n    \"email\" : \"demouno@email.com\",\n    \"approval\" : null\n  } ],\n  \"signatures\" : [ {\n    \"type\" : \"DataIntegrityProof\",\n    \"cryptosuite\" : \"ecdsa-jcs-2019\",\n    \"created\" : \"2026-02-23T11:14:57.400483\",\n    \"verificationMethod\" : \"did:lac1:1APgL8Z9V4bRQUTmoKPhjLRvNCsvTUkRjuceA5CiNYk5Ex2MZyS9RH4DVpFootP1ajG#2orwtrQ29YqGuYc1CqA6gjFaRhr87JvDgySgzdh4AJwX\",\n    \"proofPurpose\" : \"assertionMethod\",\n    \"proofValue\" : null,\n    \"domain\" : \"167sJKj3kUroA4V4xFnwpqiMqXm3ZnBFE3Dj6UvXggdiX48RLeLvToWo5VKBz1612vrpmdSMkvn2KZqBME3Zgeddd\"\n  } ],\n  \"creation\" : {\n    \"userId\" : \"15a45afb-750f-4069-a277-cfb5a358d8cf\",\n    \"createdAt\" : \"2026-02-23T11:14:54.535699\"\n  },\n  \"activities\" : [ ],\n  \"signingMessage\" : \"QS8Zs21smjaXmEFRJq7Gfsx2SmzGkg/xBEAXZpg2Rq8=\"\n}"},{"id":"f2596f6d-9a7f-4112-bc0c-848d06e57b66","name":"error-bad-request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"projectId\":\"9697f34c-6ba5-4f79-b6dc-0434379d9646\",\n    \"templateId\":\"6cba8cf5-2d00-4baa-b18a-8797c8c8b550\",\n    \"additionalData\":{\n        \"w3cData\":{\n            \"email\":\"carlos@email.com\",\n            \"name\":\"Carlos\",\n            \"lastname\":\"Maravi\"\n        }\n    },\n    \"organizationUser\":{\n        \"email\":\"carlitos@email.com\",\n        \"did\":\"did:lac1:1iT4pJXCP5YJhPWkXxgNRrGDA8SM4ckNqTTkHPx3NfQRyVGuFfhs5y5kcQmRiDL6rB67\"\n    },\n    \"options\":{\n        \"approvers\":false\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": 40001,\n    \"error\": \"Illegal argument parameters\"\n}"},{"id":"d8117dc7-b944-45f4-9030-3ad227d75985","name":"error-not-found","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"projectId\":\"9697f34c-6ba5-4f79-b6dc-0434379d9646\",\n    \"templateId\":\"6cba8cf5-2d00-4baa-b18a-8797c8c8b550\",\n    \"additionalData\":{\n        \"w3cData\":{\n            \"email\":\"carlos@email.com\",\n            \"name\":\"Carlos\",\n            \"lastname\":\"Maravi\"\n        }\n    },\n    \"organizationUser\":{\n        \"email\":\"carlitos@email.com\",\n        \"did\":\"did:lac1:1iT4pJXCP5YJhPWkXxgNRrGDA8SM4ckNqTTkHPx3NfQRyVGuFfhs5y5kcQmRiDL6rB67\"\n    },\n    \"options\":{\n        \"approvers\":false\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 40400,\n  \"error\" : \"Entity not found\"\n}"}],"_postman_id":"44412c10-41d1-4d4c-9655-c0b3ea8925b8"},{"name":"approve credential","id":"1221a371-5270-4e3c-bab7-60586571836d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"008dabcc-ec8f-4dfe-905a-f1a384071123\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{credential-id}}/approve","description":"<h3 id=\"approve-w3c-credential\">Approve W3C Credential</h3>\n<hr />\n<p><strong>Purpose:</strong><br />This HTTP PUT request is used to approve a previously created W3C Verifiable Credential that requires approver authorization before issuance. It is used when the credential was created with <code>options.approvers = true</code>, marking the credential as approved so the issuance flow can continue.</p>\n<blockquote>\n<p><strong>Note:</strong> This request applies to credentials created with approvers enabled. The <code>{{credential-id}}</code> identifies the credential pending approval.</p>\n</blockquote>\n<p><strong>Request URL Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PUT {{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{credential-id}}/approve\n</code></pre><ul>\n<li><code>{{api-host}}</code>: The base URL of the API.</li>\n<li><code>{{organization-id}}</code>: The unique identifier of the organization.</li>\n<li><code>{{project-id}}</code>: The unique identifier of the project.</li>\n<li><code>{{credential-id}}</code>: The unique identifier of the credential to be approved.</li>\n</ul>\n<p><strong>Authentication:</strong></p>\n<p>Bearer token required. Use the <code>{{access-token}}</code> environment variable.</p>\n<p><strong>Request Body Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>templateId</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier of the template used for the W3C credential project.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Request Body (Raw JSON):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"templateId\": \"008dabcc-ec8f-4dfe-905a-f1a384071123\"\n}\n</code></pre>\n<p><strong>Expected Response (200 OK):</strong></p>\n<p>A successful response returns the updated credential object reflecting the approval, allowing the credential issuance flow to proceed.</p>\n<p><strong>Workflow Position:</strong></p>\n<p>This endpoint is used within the W3C credential issuance flow when approvers are required:</p>\n<ol>\n<li><code>create</code> → Creates the credential (with <code>options.approvers = true</code>) and returns a <code>signingMessage</code> and <code>_credential-id</code>.</li>\n<li><strong><code>approve credential</code></strong> → Approves the pending credential so it can continue. <em>(current step)</em></li>\n<li><code>sign credential</code> → Signs the approved credential using the <code>signingMessage</code>.</li>\n<li><code>assemble</code> → Assembles and finalizes the signed credential.</li>\n</ol>\n<hr />\n","urlObject":{"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{credential-id}}","approve"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"09eb6460-eea4-4288-9f5e-e0175c8f0614","name":"success","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"008dabcc-ec8f-4dfe-905a-f1a384071123\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{credential-id}}/approve"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"success"},{"id":"1c37c1d6-7426-4578-be2d-89c23d944c47","name":"error-bad-request","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"008dabcc-ec8f-4dfe-905a-f1a384071123\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{credential-id}}/approve"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": 40001,\n    \"error\": \"Illegal argument parameters\"\n}"}],"_postman_id":"1221a371-5270-4e3c-bab7-60586571836d"},{"name":"sign credential","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"requests":{},"id":"4ab2d704-280b-4a6e-b522-c0f4d32b701f"}},{"listen":"prerequest","script":{"packages":{},"type":"text/javascript","id":"0c226c9e-8259-43b2-9361-de5e83b4e7d0"}}],"id":"e6ac3d08-dd2d-46be-be13-fef0109e9da1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"signingMessage\":\"/cBikTTTEsr8x8gkkwbzYwH/qVijGuBHwzUL20TdW/M=\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential-id}}/sign","description":"<h3 id=\"sign-w3c-credential\">Sign W3C Credential</h3>\n<hr />\n<p><strong>Purpose:</strong>\nThis HTTP PUT request is used to sign a previously created W3C Verifiable Credential. It submits the signing message obtained from the <code>create</code> step to complete the cryptographic signing process for a specific credential within a project and organization.</p>\n<blockquote>\n<p><strong>Note:</strong> This request must be executed after the <code>create</code> endpoint. The <code>{{_credential-id}}</code> and <code>{{_signingMessage}}</code> variables are automatically set by the post-response script of the <code>create</code> request.</p>\n</blockquote>\n<p><strong>Request URL Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PUT {{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential-id}}/sign\n</code></pre><ul>\n<li><code>{{api-host}}</code>: The base URL of the API.</li>\n<li><code>{{organization-id}}</code>: The unique identifier of the organization.</li>\n<li><code>{{project-id}}</code>: The unique identifier of the project.</li>\n<li><code>{{_credential-id}}</code>: The unique identifier of the credential to be signed. Automatically set by the <code>create</code> request.</li>\n</ul>\n<p><strong>Authentication:</strong></p>\n<p>Bearer token required. Use the <code>{{access-token}}</code> environment variable.</p>\n<p><strong>Request Body Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>signingMessage</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The base64-encoded signing message returned by the <code>create</code> endpoint. Automatically stored in <code>{{_signingMessage}}</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Request Body (Raw JSON):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"signingMessage\": \"{{_signingMessage}}\"\n}\n</code></pre>\n<p><strong>Expected Response (200 OK):</strong></p>\n<p>A successful response returns the cryptographic signature details needed to proceed to the <code>assemble</code> step. The <code>signature</code> and <code>publicKey</code> values must be passed as body parameters in the next request.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>signature</code></td>\n<td>string</td>\n<td>The hex-encoded cryptographic signature generated for the credential.</td>\n</tr>\n<tr>\n<td><code>algorithm</code></td>\n<td>string</td>\n<td>The signing algorithm used (e.g. <code>ecdsa-jcs-2019</code>).</td>\n</tr>\n<tr>\n<td><code>verificationMethod</code></td>\n<td>string / null</td>\n<td>The DID verification method used, if applicable.</td>\n</tr>\n<tr>\n<td><code>hash</code></td>\n<td>string</td>\n<td>The hex-encoded hash of the signed content.</td>\n</tr>\n<tr>\n<td><code>publicKey</code></td>\n<td>string</td>\n<td>The hex-encoded public key corresponding to the signing key.</td>\n</tr>\n</tbody>\n</table>\n</div><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"signature\": \"0x1c5d69dcfb39371cb06db1388c815fb733d774dc3eba15d49bbb2c24dc7ca34562ddc62314e5ee91029ef5bb46cc8dfccf188195d1dcdceb93571dabdf290d26\",\n  \"algorithm\": \"ecdsa-jcs-2019\",\n  \"verificationMethod\": null,\n  \"hash\": \"0x412f19b36d6c9a369798415126aec67ecc764a6cc6920ff104401766983646af\",\n  \"publicKey\": \"0xd7650261601924be00f2abd2958b0d957f43fda28e2d8f9dc656fa833fe29c915e3bd6803e156ba1dfd66c4f45fa42c38d66af0b5be1dcca1178043ead77573f\"\n}\n</code></pre>\n<p><strong>Workflow Position:</strong></p>\n<p>This endpoint is the second step in the W3C credential issuance flow:</p>\n<ol>\n<li><code>create</code> → Creates the credential and returns a <code>signingMessage</code> and <code>_credential-id</code>.</li>\n<li><strong><code>sign credential</code></strong> → Signs the credential using the <code>signingMessage</code>. <em>(current step)</em></li>\n<li><code>assemble</code> → Assembles and finalizes the signed credential using the <code>signature</code> and <code>publicKey</code> from this response.</li>\n</ol>\n<hr />\n","urlObject":{"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{_credential-id}}","sign"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"f732df24-0ec3-471c-8f38-deeac308f4ad","name":"success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"signingMessage\":\"/cBikTTTEsr8x8gkkwbzYwH/qVijGuBHwzUL20TdW/M=\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 01 Feb 2025 02:06:08 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"5816"},{"key":"Connection","value":"keep-alive"},{"key":"vary","value":"Origin"},{"key":"x-krakend","value":"Version 2.7.2"},{"key":"x-krakend-completed","value":"false"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=vIxQ6JbH4qKFdmbd0rqkIqx6A9FNDUq1%2BO4AR%2BOkFOACGLdiKyl1%2FK%2F%2Bh9wPXO3dc9c74b0rcAycj2D%2FQ2ZuckPABHHKQzJs4p%2B%2BeXw1djgu7v1L1NpOoMRu5o5G2hHrEvo1asV3J1u9\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"90ae61674f43013a-GRU"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=203306&min_rtt=164904&rtt_var=51745&sent=44&recv=47&lost=0&retrans=0&sent_bytes=7479&recv_bytes=7160&delivery_rate=32244&cwnd=257&unsent_bytes=0&cid=0ec6fdaf804e875f&ts=41901&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n  \"signature\" : \"0x1c5d69dcfb39371cb06db1388c815fb733d774dc3eba15d49bbb2c24dc7ca34562ddc62314e5ee91029ef5bb46cc8dfccf188195d1dcdceb93571dabdf290d26\",\n  \"algorithm\" : \"ecdsa-jcs-2019\",\n  \"verificationMethod\" : null,\n  \"hash\" : \"0x412f19b36d6c9a369798415126aec67ecc764a6cc6920ff104401766983646af\",\n  \"publicKey\" : \"0xd7650261601924be00f2abd2958b0d957f43fda28e2d8f9dc656fa833fe29c915e3bd6803e156ba1dfd66c4f45fa42c38d66af0b5be1dcca1178043ead77573f\"\n}"},{"id":"ad04881d-b23b-4578-a3d4-1e0e744dc4ff","name":"error-bad-request","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"signingMessage\":\"/cBikTTTEsr8x8gkkwbzYwH/qVijGuBHwzUL20TdW/M=\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential-id}}/sign"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"code\": 40001,\n    \"error\": \"Illegal argument parameters\"\n}"},{"id":"ba12b3b7-1b6b-4195-a9c2-a2c6bbd78dc6","name":"error-not-found","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"signingMessage\":\"/cBikTTTEsr8x8gkkwbzYwH/qVijGuBHwzUL20TdW/M=\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential-id}}/sign"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 40400,\n  \"error\" : \"Entity not found\"\n}"}],"_postman_id":"e6ac3d08-dd2d-46be-be13-fef0109e9da1"},{"name":"assemble","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"requests":{},"id":"2b1cf986-b813-48dc-88b2-0ec49fe755d8"}},{"listen":"prerequest","script":{"packages":{},"type":"text/javascript","id":"867e981c-c736-4981-a7fc-d10d694939ca"}}],"id":"62a469c4-0bec-4dec-a4f4-e8197b057b24","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"6cba8cf5-2d00-4baa-b18a-8797c8c8b550\",\n    \"signature\":\"0xe09c64fca38754a400406039d63cf105c20989b299642b8f97c8312e0392a176344d4bc62ad9661ec058b39a539dc4df87cfb0c9454404c33710e2bd92e2307f\",\n    \"publicKey\":\"0xd7650261601924be00f2abd2958b0d957f43fda28e2d8f9dc656fa833fe29c915e3bd6803e156ba1dfd66c4f45fa42c38d66af0b5be1dcca1178043ead77573f\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential-id}}/assemble?keystore=keyvault","description":"<h3 id=\"assemble-w3c-credential\">Assemble W3C Credential</h3>\n<hr />\n<p><strong>Purpose:</strong><br />This HTTP PUT request is used to assemble and finalize a W3C Verifiable Credential after it has been signed. It provides the cryptographic signature and public key required to produce the final verifiable credential for a specific credential within a project and organization.</p>\n<blockquote>\n<p><strong>Note:</strong> This request must be executed after the <code>sign credential</code> step. The <code>{{_credential-id}}</code> variable is automatically set by the post-response script of the <code>create</code> request. The <code>signature</code> and <code>publicKey</code> values come from the response of the <code>sign credential</code> step. </p>\n</blockquote>\n<p><strong>Request URL Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PUT {{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential-id}}/assemble?keystore=keyvault\n\n</code></pre><ul>\n<li><p><code>{{api-host}}</code>: The base URL of the API.</p>\n</li>\n<li><p><code>{{organization-id}}</code>: The unique identifier of the organization.</p>\n</li>\n<li><p><code>{{project-id}}</code>: The unique identifier of the project.</p>\n</li>\n<li><p><code>{{_credential-id}}</code>: The unique identifier of the credential to be assembled. Automatically set by the <code>create</code> request.</p>\n</li>\n</ul>\n<p><strong>Query Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Value</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>keystore</code></td>\n<td><code>keyvault</code></td>\n<td>Yes</td>\n<td>Specifies the keystore provider to use for the assembly process.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Authentication:</strong></p>\n<p>Bearer token required. Use the <code>{{access-token}}</code> environment variable.</p>\n<p><strong>Request Body Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>templateId</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier of the template used for the W3C credential project.</td>\n</tr>\n<tr>\n<td><code>signature</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The hex-encoded cryptographic signature returned by the <code>sign credential</code> step.</td>\n</tr>\n<tr>\n<td><code>publicKey</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The hex-encoded public key returned by the <code>sign credential</code> step.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Request Body (Raw JSON):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"templateId\": \"6cba8cf5-2d00-4baa-b18a-8797c8c8b550\",\n    \"signature\": \"0xe09c64fca38754a400406039d63cf105c20989b299642b8f97c8312e0392a17...\",\n    \"publicKey\": \"0xd7650261601924be00f2abd2958b0d957f43fda28e2d8f9dc656fa833fe29c9...\"\n}\n\n</code></pre>\n<p><strong>Expected Response (201 Created):</strong></p>\n<p>A successful response returns the fully assembled and signed W3C Verifiable Credential, including the <code>proof</code> block with the cryptographic signature embedded.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"@context\": [\n    \"https://www.w3.org/2018/credentials/v1\",\n    \"https://vc.blerify.com/education/EducationCredential\"\n  ],\n  \"type\": [\"VerifiableCredential\", \"EducationCredential\"],\n  \"id\": \"2b94c494-e402-4afd-9bd5-5ffc628efe41\",\n  \"issuer\": \"did:lac1:1APgL8Z9V4bRQUTmoKPhjLRvNCsvTUkRjuceA5CiNYk5Ex2MZyS9RH4DVpFootP1ajG\",\n  \"issuanceDate\": \"2026-02-23T16:14:54.944089Z\",\n  \"name\": \"Asistencia a curso\",\n  \"description\": \"Esta credencial verificable certifica la asistencia a curso.\",\n  \"credentialSubject\": {\n    \"type\": [\"EducationCredential\"],\n    \"id\": \"did:lac1:1iT4pJXCP5YJhPWkXxgNRrGDA8SM4ckNqTTkHPx3NfQRyVGuFfhs5y5kcQmRiDL6rB67\",\n    \"kind\": \"EducationCredential\",\n    \"subjectName\": \"Carlos Maravi\",\n    \"title\": \"Test 2 feb (1)\",\n    \"duration\": \"Test 2 feb\",\n    \"date\": \"Test 2 feb\"\n  },\n  \"proof\": [\n    {\n      \"type\": \"DataIntegrityProof\",\n      \"cryptosuite\": \"ecdsa-jcs-2019\",\n      \"created\": \"2026-02-23T11:14:57.400483\",\n      \"verificationMethod\": \"did:lac1:1APgL8Z9V4bRQUTmoKPhjLRvNCsvTUkRjuceA5CiNYk5Ex2MZyS9RH4DVpFootP1ajG#2orwtrQ29YqGuYc1CqA6gjFaRhr87JvDgySgzdh4AJwX\",\n      \"proofPurpose\": \"assertionMethod\",\n      \"proofValue\": \"zZtk1zBQuzY5qRQWC1sAUdx7dxqwijNKUMD1UGvhAsQ6kjXyfCkFUoPXBmRSLxCZp6PeD3oTcrupXHVdKDQdhJuT\",\n      \"domain\": \"167sJKj3kUroA4V4xFnwpqiMqXm3ZnBFE3Dj6UvXggdiX48RLeLvToWo5VKBz1612vrpmdSMkvn2KZqBME3Zgeddd\"\n    }\n  ]\n}\n\n</code></pre>\n<p><strong>Workflow Position:</strong></p>\n<p>This endpoint is the third and final step in the W3C credential issuance flow:</p>\n<ol>\n<li><p><code>create</code> → Creates the credential and returns a <code>signingMessage</code> and <code>_credential-id</code>.</p>\n</li>\n<li><p><code>sign credential</code> → Signs the credential using the <code>signingMessage</code>.</p>\n</li>\n<li><p><strong><code>assemble</code></strong> → Assembles and finalizes the signed credential. <em>(current step)</em></p>\n</li>\n</ol>\n<hr />\n","urlObject":{"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{_credential-id}}","assemble"],"host":["{{api-host}}"],"query":[{"key":"keystore","value":"keyvault"}],"variable":[]}},"response":[{"id":"b20910a0-3498-4074-8905-8f4c2d58c00a","name":"success","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"6cba8cf5-2d00-4baa-b18a-8797c8c8b550\",\n    \"signature\":\"0xe09c64fca38754a400406039d63cf105c20989b299642b8f97c8312e0392a176344d4bc62ad9661ec058b39a539dc4df87cfb0c9454404c33710e2bd92e2307f\",\n    \"publicKey\":\"0xd7650261601924be00f2abd2958b0d957f43fda28e2d8f9dc656fa833fe29c915e3bd6803e156ba1dfd66c4f45fa42c38d66af0b5be1dcca1178043ead77573f\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential-id}}/assemble?keystore=keyvault","host":["{{api-host}}"],"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{_credential-id}}","assemble"],"query":[{"key":"keystore","value":"keyvault"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"@context\" : [ \"https://www.w3.org/2018/credentials/v1\", \"https://vc.blerify.com/education/EducationCredential\" ],\n  \"type\" : [ \"VerifiableCredential\", \"EducationCredential\" ],\n  \"id\" : \"2b94c494-e402-4afd-9bd5-5ffc628efe41\",\n  \"issuer\" : \"did:lac1:1APgL8Z9V4bRQUTmoKPhjLRvNCsvTUkRjuceA5CiNYk5Ex2MZyS9RH4DVpFootP1ajG\",\n  \"issuanceDate\" : \"2026-02-23T16:14:54.944089Z\",\n  \"name\" : \"Asistencia a curso\",\n  \"description\" : \"Esta credencial verificable certifica la asistencia a curso.\",\n  \"credentialSubject\" : {\n    \"type\" : [ \"EducationCredential\" ],\n    \"id\" : \"did:lac1:1iT4pJXCP5YJhPWkXxgNRrGDA8SM4ckNqTTkHPx3NfQRyVGuFfhs5y5kcQmRiDL6rB67\",\n    \"kind\" : \"EducationCredential\",\n    \"subjectName\" : \"Carlos Maravi\",\n    \"title\" : \"Test 2 feb (1)\",\n    \"duration\" : \"Test 2 feb\",\n    \"date\" : \"Test 2 feb\"\n  },\n  \"proof\" : [ {\n    \"type\" : \"DataIntegrityProof\",\n    \"cryptosuite\" : \"ecdsa-jcs-2019\",\n    \"created\" : \"2026-02-23T11:14:57.400483\",\n    \"verificationMethod\" : \"did:lac1:1APgL8Z9V4bRQUTmoKPhjLRvNCsvTUkRjuceA5CiNYk5Ex2MZyS9RH4DVpFootP1ajG#2orwtrQ29YqGuYc1CqA6gjFaRhr87JvDgySgzdh4AJwX\",\n    \"proofPurpose\" : \"assertionMethod\",\n    \"proofValue\" : \"zZtk1zBQuzY5qRQWC1sAUdx7dxqwijNKUMD1UGvhAsQ6kjXyfCkFUoPXBmRSLxCZp6PeD3oTcrupXHVdKDQdhJuT\",\n    \"domain\" : \"167sJKj3kUroA4V4xFnwpqiMqXm3ZnBFE3Dj6UvXggdiX48RLeLvToWo5VKBz1612vrpmdSMkvn2KZqBME3Zgeddd\"\n  } ]\n}"},{"id":"ee1f548b-7e41-4bd7-8c59-4d1d59ef7294","name":"error-bad-request","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"6cba8cf5-2d00-4baa-b18a-8797c8c8b550\",\n    \"signature\":\"0xe09c64fca38754a400406039d63cf105c20989b299642b8f97c8312e0392a176344d4bc62ad9661ec058b39a539dc4df87cfb0c9454404c33710e2bd92e2307f\",\n    \"publicKey\":\"0xd7650261601924be00f2abd2958b0d957f43fda28e2d8f9dc656fa833fe29c915e3bd6803e156ba1dfd66c4f45fa42c38d66af0b5be1dcca1178043ead77573f\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential-id}}/assemble?keystore=keyvault","host":["{{api-host}}"],"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{_credential-id}}","assemble"],"query":[{"key":"keystore","value":"keyvault"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": 40001,\n    \"error\": \"Illegal argument parameters\"\n}"},{"id":"7098ce95-8f51-4e7c-8bee-89842dc07350","name":"error-not-found","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"templateId\":\"6cba8cf5-2d00-4baa-b18a-8797c8c8b550\",\n    \"signature\":\"0xe09c64fca38754a400406039d63cf105c20989b299642b8f97c8312e0392a176344d4bc62ad9661ec058b39a539dc4df87cfb0c9454404c33710e2bd92e2307f\",\n    \"publicKey\":\"0xd7650261601924be00f2abd2958b0d957f43fda28e2d8f9dc656fa833fe29c915e3bd6803e156ba1dfd66c4f45fa42c38d66af0b5be1dcca1178043ead77573f\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{_credential-id}}/assemble?keystore=keyvault","host":["{{api-host}}"],"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{_credential-id}}","assemble"],"query":[{"key":"keystore","value":"keyvault"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 40400,\n  \"error\" : \"Entity not found\"\n}"}],"_postman_id":"62a469c4-0bec-4dec-a4f4-e8197b057b24"},{"name":"read credential polling","id":"d1484673-2f60-4b95-8445-8272362a52bb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{credential-id}}/polling?templateId=008dabcc-ec8f-4dfe-905a-f1a384071123","description":"<h3 id=\"read-w3c-credential-polling\">Read W3C Credential (Polling)</h3>\n<hr />\n<p><strong>Purpose:</strong><br />This HTTP GET request is used to poll and retrieve the current state of a W3C Verifiable Credential during the issuance flow. It allows a client to check whether the credential has been claimed/stored in a wallet, returning a different state depending on whether a wallet is associated.</p>\n<blockquote>\n<p><strong>Note:</strong> This endpoint is typically called repeatedly (polling) until the credential reaches its final state. The <code>{{credential-id}}</code> identifies the credential being polled.</p>\n</blockquote>\n<p><strong>Request URL Structure:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET {{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{credential-id}}/polling?templateId={templateId}\n</code></pre><ul>\n<li><code>{{api-host}}</code>: The base URL of the API.</li>\n<li><code>{{organization-id}}</code>: The unique identifier of the organization.</li>\n<li><code>{{project-id}}</code>: The unique identifier of the project.</li>\n<li><code>{{credential-id}}</code>: The unique identifier of the credential to poll.</li>\n</ul>\n<p><strong>Query Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>templateId</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier of the template used for the W3C credential project.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Authentication:</strong></p>\n<p>Bearer token required. Use the <code>{{access-token}}</code> environment variable.</p>\n<p><strong>Expected Response (200 OK):</strong></p>\n<p>A successful response returns the current state of the credential. The response varies depending on whether the credential is associated with a wallet:</p>\n<ul>\n<li><strong><code>success_wallet</code></strong> → The credential is associated with a wallet.</li>\n<li><strong><code>success_no_wallet</code></strong> → The credential has no associated wallet yet.</li>\n</ul>\n<p>Possible error responses include <code>error-bad-request</code> (invalid request parameters) and <code>not-found</code> (the credential could not be found).</p>\n<p><strong>Workflow Position:</strong></p>\n<p>This endpoint is used to monitor the status of a credential during and after the W3C credential issuance flow:</p>\n<ol>\n<li><code>create</code> → Creates the credential and returns a <code>signingMessage</code> and <code>_credential-id</code>.</li>\n<li><code>sign credential</code> → Signs the credential using the <code>signingMessage</code>.</li>\n<li><code>assemble</code> → Assembles and finalizes the signed credential.</li>\n<li><strong><code>read credential polling</code></strong> → Polls the credential to retrieve its current state (with/without wallet). <em>(current step)</em></li>\n</ol>\n<hr />\n","urlObject":{"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{credential-id}}","polling"],"host":["{{api-host}}"],"query":[{"description":{"content":"<p>TemplateId</p>\n","type":"text/plain"},"key":"templateId","value":"008dabcc-ec8f-4dfe-905a-f1a384071123"}],"variable":[]}},"response":[{"id":"7a94ff72-b19e-4b48-8771-f637871daec8","name":"success_no_wallet","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{credential-id}}/polling?templateId=008dabcc-ec8f-4dfe-905a-f1a384071123","host":["{{api-host}}"],"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{credential-id}}","polling"],"query":[{"key":"templateId","value":"008dabcc-ec8f-4dfe-905a-f1a384071123","description":"TemplateId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"_id\" : \"0x7e9a8d3115f3e17a0419e8fb2b549b99a51b9615ee42f6207948edef945e4558\",\n  \"issuer\" : \"did:lac1:1APg7bnet9QNT3PfynfF2DLbrkucAy8FqFK692ES9tNGCvqYUe8ZhTB85G3mGQpp3cG\",\n  \"receiver\" : {\n    \"id\" : \"7b44e50e5a082b819a817d6bb8d086fbb0b2074953611883df6e14df47ec1b66\",\n    \"email\" : \"martinoutedav+25jun2@gmail.com\",\n    \"repositoryType\" : \"EMAIL\"\n  },\n  \"data\" : {\n    \"@context\" : [ \"https://www.w3.org/2018/credentials/v1\", \"https://vc.blerify.com/education/EducationCredential\" ],\n    \"type\" : [ \"VerifiableCredential\", \"EducationCredential\" ],\n    \"id\" : \"973def1e-0a0f-4fa6-ae1f-1d75a1339bae\",\n    \"issuer\" : \"did:lac1:1APg7bnet9QNT3PfynfF2DLbrkucAy8FqFK692ES9tNGCvqYUe8ZhTB85G3mGQpp3cG\",\n    \"issuanceDate\" : \"2026-06-25T16:24:00.958778612Z\",\n    \"name\" : \"Asistencia a curso\",\n    \"description\" : \"Esta credencial verificable certifica la asistencia a curso.\",\n    \"credentialSubject\" : {\n      \"type\" : [ \"EducationCredential\" ],\n      \"id\" : \"{{subject.did}}\",\n      \"kind\" : \"EducationCredential\",\n      \"subjectName\" : \"Martin Outeda\",\n      \"title\" : \"Test Educación: webinar\",\n      \"duration\" : \"1 hora\",\n      \"date\" : \"25 de marzo\"\n    }\n  },\n  \"template\" : {\n    \"id\" : \"008dabcc-ec8f-4dfe-905a-f1a384071123\",\n    \"name\" : \"Test Educación: webinar\",\n    \"description\" : \"Test Educación\",\n    \"projectId\" : \"50bdc57f-8b80-4d22-9d03-7e2fb2c17ec2\",\n    \"organizationId\" : \"6611949d-95f0-4966-8e33-46f12d4e0819\",\n    \"network\" : \"AVALANCHE\"\n  },\n  \"pdf\" : \"https://storage.googleapis.com/blerify-core-staging/credentials/1885d211-fa92-42c1-bdb5-5962397cd61f?GoogleAccessId=blerify-cloud-storage-reader@blerify.iam.gserviceaccount.com&Expires=1785254544&Signature=X3QKyf7eh5DxUowXBvQujjh3wXx%2FYDG7us1AjzWuPTpELsf%2FJfzAi6oWKu7pWKshQb6fns%2B9%2BwWVDZFHkzLPZr28wPCsxFktOs%2B5X8D%2FB%2F1fAq%2Bu2lbS42G6JidntL3pUaeWBsNViCW%2BGLSxu4vH1bfeAA%2Ba84XwMdBOvMdICN%2B7wp6AnFYWWr%2BZKImREBUkEfF2fCkfYlZ5LUthjT0%2Fj01ZLuYLRAthLHAYuYjGnrfYtQCqmlWMcjQPlOQLuT6E3gpIhuF4iw5iJ%2BKqwV6c9YD1QuQHMKKXQXGOma2e1Bbo2s9lVy2%2Fjd5p45G52%2F%2BM%2BaOHk%2BuyGhiTSXzLoyj9pA%3D%3D\",\n  \"thumbnail\" : \"https://storage.googleapis.com/blerify-core-staging/credentials/6961d917-65f2-4aba-8bc5-8ab0f52a90d7?GoogleAccessId=blerify-cloud-storage-reader@blerify.iam.gserviceaccount.com&Expires=1785254544&Signature=t6DB7i2QP3hq6HhE4ZoxW5DD4OxCLjYSjfgv3HNslNeEe8ryNk%2Bk4C3HLXBjaXLbx8NXYVs7YARkjlV6SI1WrM72sSAMjBszf8Q0e4zIWOsORsh%2FVTVAgmclBYp2%2BfKd6034YAtbbKQchibR1Ijt8LwzNn8QL%2BSaEl6EHme0IpDMpdu2Ei6MArPOuZfMNkwg0loPWLsMCeUaZ7hIWSIxv20H1YPEsZb0Nley2tqrFhBu%2FTaO2C6FW9rsTpkAe5%2B4AhLMU0rctK6j5Qke2ipsXportaMI7gATMxVpXbJULztztPrUceJtapy%2FwCE52dTo9FW2YiEMqnFUfFS1d6%2FyfA%3D%3D\",\n  \"status\" : \"SENT\",\n  \"approvers\" : [ {\n    \"id\" : \"3d485ff2-e5bb-498f-a5fe-33bc564e8779\",\n    \"did\" : \"did:lac1:1APfsCuZ4oLiboZNxByyd1AZQSxFSc89aysCf2ac6w3euHazZcfuktoYhs2gmhw4wCU\",\n    \"name\" : \"Martin\",\n    \"email\" : \"demouno.blerify+staging25mar@gmail.com\",\n    \"approval\" : {\n      \"created\" : \"2026-06-25T16:24:11.121806392\"\n    }\n  } ],\n  \"signatures\" : [ {\n    \"type\" : \"DataIntegrityProof\",\n    \"cryptosuite\" : \"ecdsa-jcs-2019\",\n    \"created\" : \"2026-06-25T16:24:01.201506220\",\n    \"verificationMethod\" : \"did:lac1:1APg7bnet9QNT3PfynfF2DLbrkucAy8FqFK692ES9tNGCvqYUe8ZhTB85G3mGQpp3cG#EBpkGQzBjNGR78F5DKqPguPHyFjbFPQ2NhsVHqzY5kjt\",\n    \"proofPurpose\" : \"assertionMethod\",\n    \"domain\" : \"167sJKj3kUroA4V4xFnwpqiMqXm3ZnBFE3Dj6UvXggdiX48RLeLvToWo5VKBz1612vrpmdSMkvn2KZqBME3Zgeddd\"\n  } ],\n  \"creation\" : {\n    \"userId\" : \"3d485ff2-e5bb-498f-a5fe-33bc564e8779\",\n    \"createdAt\" : \"2026-06-25T16:24:00\"\n  },\n  \"activities\" : [ ],\n  \"code\" : \"OwGjWI0ruN2v\"\n}"},{"id":"ce039bc2-5995-4d75-8114-7e9d35d61634","name":"success_wallet","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{credential-id}}/polling?templateId=008dabcc-ec8f-4dfe-905a-f1a384071123","host":["{{api-host}}"],"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{credential-id}}","polling"],"query":[{"key":"templateId","value":"008dabcc-ec8f-4dfe-905a-f1a384071123","description":"TemplateId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"_id\" : \"0x962cf418959f1aca2368c26b891647653f79c47416b90023996a69f7b0de5e60\",\n  \"issuer\" : \"did:lac1:1APg7bnet9QNT3PfynfF2DLbrkucAy8FqFK692ES9tNGCvqYUe8ZhTB85G3mGQpp3cG\",\n  \"receiver\" : {\n    \"id\" : \"dcac6c607fa6714c642c2b1754d870f5ca84b7188c4b5b9d10c6fc71e8ab017f\",\n    \"email\" : \"martinoutedav+15jul2@gmail.com\",\n    \"repositoryType\" : \"WALLET\"\n  },\n  \"data\" : {\n    \"@context\" : [ \"https://www.w3.org/2018/credentials/v1\", \"https://vc.blerify.com/education/EducationCredential\" ],\n    \"type\" : [ \"VerifiableCredential\", \"EducationCredential\" ],\n    \"id\" : \"bc3eadab-4e01-42f5-8cd3-98710dfe5a72\",\n    \"issuer\" : \"did:lac1:1APg7bnet9QNT3PfynfF2DLbrkucAy8FqFK692ES9tNGCvqYUe8ZhTB85G3mGQpp3cG\",\n    \"issuanceDate\" : \"2026-07-15T18:50:25.630927041Z\",\n    \"name\" : \"Asistencia a curso\",\n    \"description\" : \"Esta credencial verificable certifica la asistencia a curso.\",\n    \"credentialSubject\" : {\n      \"type\" : [ \"EducationCredential\" ],\n      \"id\" : \"did:lac1:1iT5nTt8tEJp2kebM1SKtjw3BNNvB8Mvcw8aMQsxyKWKJhUZZfemFDLv3YFGtCZ6vm55\",\n      \"kind\" : \"EducationCredential\",\n      \"subjectName\" : \"Martin Outeda\",\n      \"title\" : \"Test Edu\",\n      \"duration\" : \"Test Edu\",\n      \"date\" : \"26 mar\"\n    }\n  },\n  \"issued\" : \"{\\n  \\\"@context\\\" : [ \\\"https://www.w3.org/2018/credentials/v1\\\", \\\"https://vc.blerify.com/education/EducationCredential\\\" ],\\n  \\\"type\\\" : [ \\\"VerifiableCredential\\\", \\\"EducationCredential\\\" ],\\n  \\\"id\\\" : \\\"bc3eadab-4e01-42f5-8cd3-98710dfe5a72\\\",\\n  \\\"issuer\\\" : \\\"did:lac1:1APg7bnet9QNT3PfynfF2DLbrkucAy8FqFK692ES9tNGCvqYUe8ZhTB85G3mGQpp3cG\\\",\\n  \\\"issuanceDate\\\" : \\\"2026-07-15T18:50:25.630927041Z\\\",\\n  \\\"name\\\" : \\\"Asistencia a curso\\\",\\n  \\\"description\\\" : \\\"Esta credencial verificable certifica la asistencia a curso.\\\",\\n  \\\"credentialSubject\\\" : {\\n    \\\"type\\\" : [ \\\"EducationCredential\\\" ],\\n    \\\"id\\\" : \\\"did:lac1:1iT5nTt8tEJp2kebM1SKtjw3BNNvB8Mvcw8aMQsxyKWKJhUZZfemFDLv3YFGtCZ6vm55\\\",\\n    \\\"kind\\\" : \\\"EducationCredential\\\",\\n    \\\"subjectName\\\" : \\\"Martin Outeda\\\",\\n    \\\"title\\\" : \\\"Test Edu\\\",\\n    \\\"duration\\\" : \\\"Test Edu\\\",\\n    \\\"date\\\" : \\\"26 mar\\\"\\n  },\\n  \\\"proof\\\" : [ {\\n    \\\"type\\\" : \\\"DataIntegrityProof\\\",\\n    \\\"cryptosuite\\\" : \\\"ecdsa-jcs-2019\\\",\\n    \\\"created\\\" : \\\"2026-07-15T18:50:25.680712075\\\",\\n    \\\"verificationMethod\\\" : \\\"did:lac1:1APg7bnet9QNT3PfynfF2DLbrkucAy8FqFK692ES9tNGCvqYUe8ZhTB85G3mGQpp3cG#EBpkGQzBjNGR78F5DKqPguPHyFjbFPQ2NhsVHqzY5kjt\\\",\\n    \\\"proofPurpose\\\" : \\\"assertionMethod\\\",\\n    \\\"proofValue\\\" : \\\"z3kLJLZBJ3kX5cia7ffTJSVUNT8u8E9mBiufG7BnmfXYNtWgEXZ8bvngmxshv5mSZCvtJAKb33PCEUrwfCTECh3DT\\\",\\n    \\\"domain\\\" : \\\"167sJKj3kUroA4V4xFnwpqiMqXm3ZnBFE3Dj6UvXggdiX48RLeLvToWo5VKBz1612vrpmdSMkvn2KZqBME3Zgeddd\\\"\\n  } ]\\n}\",\n  \"template\" : {\n    \"id\" : \"64b53760-65a3-4a35-812d-b205c2f38bd5\",\n    \"name\" : \"Test Edu\",\n    \"description\" : \"Test Edu\",\n    \"projectId\" : \"50bdc57f-8b80-4d22-9d03-7e2fb2c17ec2\",\n    \"organizationId\" : \"6611949d-95f0-4966-8e33-46f12d4e0819\",\n    \"network\" : \"AVALANCHE\"\n  },\n  \"pdf\" : \"https://storage.googleapis.com/blerify-core-staging/credentials/20bb3807-a498-4789-b413-adee442398ae?GoogleAccessId=blerify-cloud-storage-reader@blerify.iam.gserviceaccount.com&Expires=1785254290&Signature=i9vobcCSzQYeiks0d1fQh3RJNrwdOwEf24XcHdCBxpFGaJAWX%2Bjgq%2B4%2F4F4mh9LIFJWqBBcM6f1SYrU75Mvyqouig7XVj8%2FT1pb18osDNuER2z9VGlOravsXA0EJ1fsSwtD9J74Aks6Ls0BRCxUUbs6Ux1fvNvaKYjzGmniz%2BmRhhJGeLGqVicTuGqc3P6gOAmzBlWqiG6heGqmpJJQxXHDR%2B02sH6MyJI9HhH7evt7fR7jmrApiv36XYZWKRYoeiPlhA3yCvPHmlaoNPQP%2F%2BO%2BOV8ckiFLuBTz5ATcaS%2F76WpZvONioslclDFZsgl5r1fNNycz3oYXLJVkX9t8AFg%3D%3D\",\n  \"thumbnail\" : \"https://storage.googleapis.com/blerify-core-staging/credentials/13bf8436-0e9c-4170-80e7-d2085a6ac044?GoogleAccessId=blerify-cloud-storage-reader@blerify.iam.gserviceaccount.com&Expires=1785254290&Signature=tmq32p06A5SBHIW637NVecicNACduTRoinYRJR8UnBE6haFe%2B02Sh8TDXl4Gwhj0UI1tMuSr0chYm5jjwtj9BrRx7g0pY1uxV4RkI1AJFbkXSv0YeG4ZndsOwdn%2F4QSIi3yPt5DmhcD6WYw0Rtp7itmgTnlMNp4rS0I8hhOCNVoZaJgMrqJgwlaCThZUbcsIl6xODXLY13uNj2qMysrOiI%2BorbR6LhF2M%2FPT1EQOQgbIxI2hCOXu1fWK5HJBHCPuCveGNoAACifho%2FQHP%2BTzAp%2F6p5sq8kuDQ2KUgxNxWIT62OmcXgc9LopMCBBm%2Baal04%2FfOfiQAb6E1IOAIuRo5g%3D%3D\",\n  \"status\" : \"DELIVERED\",\n  \"approvers\" : [ {\n    \"id\" : \"3d485ff2-e5bb-498f-a5fe-33bc564e8779\",\n    \"did\" : \"did:lac1:1APfsCuZ4oLiboZNxByyd1AZQSxFSc89aysCf2ac6w3euHazZcfuktoYhs2gmhw4wCU\",\n    \"name\" : \"Martin\",\n    \"email\" : \"demouno.blerify+staging25mar@gmail.com\",\n    \"approval\" : {\n      \"created\" : \"2026-07-15T18:51:10.232466871\"\n    }\n  }, {\n    \"id\" : \"a11766bc-a560-422f-a9c0-4e417864afe0\",\n    \"did\" : \"did:lac1:1APfwa9bbbjfMrh3nrDBGH6vitVVmbR69S3kSY4DpeV2UvGu7cnihVw2rfzChznrrM1\",\n    \"name\" : \"Sergio\",\n    \"email\" : \"sergio+staging25mar@blerify.com\",\n    \"approval\" : null\n  } ],\n  \"signatures\" : [ {\n    \"type\" : \"DataIntegrityProof\",\n    \"cryptosuite\" : \"ecdsa-jcs-2019\",\n    \"created\" : \"2026-07-15T18:50:25.680712075\",\n    \"verificationMethod\" : \"did:lac1:1APg7bnet9QNT3PfynfF2DLbrkucAy8FqFK692ES9tNGCvqYUe8ZhTB85G3mGQpp3cG#EBpkGQzBjNGR78F5DKqPguPHyFjbFPQ2NhsVHqzY5kjt\",\n    \"proofPurpose\" : \"assertionMethod\",\n    \"proofValue\" : \"z3kLJLZBJ3kX5cia7ffTJSVUNT8u8E9mBiufG7BnmfXYNtWgEXZ8bvngmxshv5mSZCvtJAKb33PCEUrwfCTECh3DT\",\n    \"domain\" : \"167sJKj3kUroA4V4xFnwpqiMqXm3ZnBFE3Dj6UvXggdiX48RLeLvToWo5VKBz1612vrpmdSMkvn2KZqBME3Zgeddd\"\n  } ],\n  \"creation\" : {\n    \"userId\" : \"3d485ff2-e5bb-498f-a5fe-33bc564e8779\",\n    \"createdAt\" : \"2026-07-15T18:50:25\"\n  },\n  \"issuance\" : [ {\n    \"protocol\" : \"WALLET\",\n    \"issuedAt\" : \"2026-07-15T18:57:18\",\n    \"transactionHash\" : \"https://blockscout.openprotestnet.lac-net.net/tx/0xcd87b9f59152176cabcd225f5030177ce0530432e08bd290d4fed568a4aba376\",\n    \"blockNumber\" : 37709,\n    \"network\" : \"AVALANCHE\",\n    \"issueSource\" : \"portal\"\n  } ],\n  \"signaturesCompletedAt\" : \"2026-07-15T18:57:18\",\n  \"activities\" : [ ],\n  \"code\" : null\n}"},{"id":"770f8c9f-7099-4041-a327-55bad75f9aa6","name":"not-found","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{credential-id}}/polling?templateId=008dabcc-ec8f-4dfe-905a-f1a384071123","host":["{{api-host}}"],"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{credential-id}}","polling"],"query":[{"key":"templateId","value":"008dabcc-ec8f-4dfe-905a-f1a384071123","description":"TemplateId"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 40400,\n  \"error\" : \"Entity not found\"\n}"},{"id":"396a6464-248e-4391-bfd5-57530cfde036","name":"error-bad-request","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/credentials/{{credential-id}}/polling?templateId=008dabcc-ec8f-4dfe-905a-f1a384071123","host":["{{api-host}}"],"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","credentials","{{credential-id}}","polling"],"query":[{"key":"templateId","value":"008dabcc-ec8f-4dfe-905a-f1a384071123","description":"TemplateId"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": 40001,\n    \"error\": \"Illegal argument parameters\"\n}"}],"_postman_id":"d1484673-2f60-4b95-8445-8272362a52bb"}],"id":"4788d16f-1c1c-48a9-9373-979da19b5a6d","description":"<p>this module is in charge of generate and sign w3c credentials</p>\n","_postman_id":"4788d16f-1c1c-48a9-9373-979da19b5a6d"}],"id":"ced8c9b3-2643-41a8-899c-ace38744da9c","description":"<p>This module is in charge of create, approve, sign and verify W3C and ISO-18031 credentials</p>\n","_postman_id":"ced8c9b3-2643-41a8-899c-ace38744da9c"},{"name":"Notifications","item":[{"name":"Send Notifications","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","","    const responseJson = pm.response.json();","    pm.environment.set(\"_item-id\", responseJson.items[0].id);","});",""],"type":"text/javascript","packages":{},"id":"cae4749c-e34a-401c-9390-5a875a2f1f4e"}}],"id":"f2dc7a5b-6a24-438c-b74e-6312af4b2dd6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"items\": [\n        {\n            \"receiverData\": {\n                \"id\": 123456,\n                \"Amount\": \"200.5\"\n            }\n        },\n        {\n            \"receiverData\": {\n                \"id\": \"2354fg\",\n                \"Amount\": \"5238\"\n            }\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/notifications/{{notification-group-id}}/items/bulk","description":"<h2 id=\"send-notifications---bulk-items\">Send Notifications - Bulk Items</h2>\n<p>This endpoint allows you to send bulk notifications to a specified group within an organization. It is designed to handle multiple items in a single request, streamlining the notification process.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<p><code>POST {{api-host}}/api/v1/organizations/{{organization-id}}/notifications/{{notification-group-id}}/items/bulk</code></p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The request body must be in JSON format and should include the following parameter:</p>\n<ul>\n<li><p><strong>items</strong> (Array of Objects): An array containing the notification items to be sent.</p>\n<ul>\n<li><p>Each object in the array should have the following structure:</p>\n<ul>\n<li><p><strong>receiverData</strong> (Object): Information about the receiver.</p>\n<ul>\n<li><p><strong>id</strong> (String): The unique identifier for the receiver.</p>\n</li>\n<li><p><strong>Amount</strong> (String): The amount associated with the notification. (This is a dynamic data, defined in your notification configuration)</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"example-request-body\">Example Request Body</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"items\": [\n    {\n      \"receiverData\": {\n        \"id\": \"123456\",\n        \"Amount\": \"200.5\"\n      }\n    }\n  ]\n}\n\n</code></pre>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>Upon a successful request, the server will respond with a <code>201 Created</code> status and a JSON object containing the following fields:</p>\n<ul>\n<li><p><strong>total</strong> (Integer): The total number of items processed.</p>\n</li>\n<li><p><strong>limit</strong> (Integer): The limit set for the number of items.</p>\n</li>\n<li><p><strong>offset</strong> (Integer): The offset used for pagination.</p>\n</li>\n<li><p><strong>items</strong> (Array of Objects): An array containing the details of the processed notification items.</p>\n<ul>\n<li><p>Each object in the items array will include:</p>\n<ul>\n<li><p><strong>id</strong> (String): The unique identifier of the notification item.</p>\n</li>\n<li><p><strong>notificationGroupId</strong> (String): The ID of the notification group.</p>\n</li>\n<li><p><strong>receiverData</strong> (Object): The data of the receiver.</p>\n<ul>\n<li><p><strong>id</strong> (Integer): The unique identifier for the receiver.</p>\n</li>\n<li><p><strong>Amount</strong> (String): The amount associated with the notification.</p>\n</li>\n<li><p><strong>_id</strong> (String): Internal identifier for the item.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>status</strong> (String): The current status of the notification.</p>\n</li>\n<li><p><strong>createdAt</strong> (String): Timestamp of when the notification was created.</p>\n</li>\n<li><p><strong>sentAt</strong> (String|null): Timestamp of when the notification was sent.</p>\n</li>\n<li><p><strong>receivedAt</strong> (String|null): Timestamp of when the notification was received.</p>\n</li>\n<li><p><strong>readAt</strong> (String|null): Timestamp of when the notification was read.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"total\": 0,\n  \"limit\": 0,\n  \"offset\": 0,\n  \"items\": [\n    {\n      \"id\": \"\",\n      \"notificationGroupId\": \"\",\n      \"receiverData\": {\n        \"id\": 0,\n        \"Amount\": \"\",\n        \"_id\": \"\"\n      },\n      \"status\": \"\",\n      \"createdAt\": \"\",\n      \"sentAt\": null,\n      \"receivedAt\": null,\n      \"readAt\": null\n    }\n  ]\n}\n\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that the <code>Content-Type</code> header is set to <code>application/json</code>.</p>\n</li>\n<li><p>The request must include proper authorization credentials.</p>\n</li>\n<li><p>The endpoint is designed to handle bulk notifications efficiently, reducing the number of requests needed to send notifications to multiple receivers.</p>\n</li>\n</ul>\n","urlObject":{"path":["api","v1","organizations","{{organization-id}}","notifications","{{notification-group-id}}","items","bulk"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"40846e7a-90b6-4700-a5ff-e8979602e341","name":"success","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Cookie","value":"Idea-bb5f841c=42049966-5967-4298-87a8-7c81321a83a0; Idea-bb5f841b=adb39dfd-5dc5-477a-8116-e79b90e431f0; Idea-bb5f841a=3ebd496f-9a8f-4bee-a4b7-00040ba25930; _ga=GA1.1.1204819475.1685071845; Idea-bb5f7c98=6de531f4-cd90-4c70-95ce-b56433f5e78a"},{"key":"Pragma","value":"no-cache"},{"key":"Authorization","value":"Bearer {{access-token}}","disabled":true},{"key":"Accept","value":"application/json, text/plain, */*","disabled":true},{"key":"Sec-Fetch-Site","value":"same-origin","disabled":true},{"key":"Host","value":"localhost:3000","disabled":true},{"key":"Accept-Language","value":"es-MX,es-419;q=0.9,es;q=0.8","disabled":true},{"key":"Cache-Control","value":"no-cache","disabled":true},{"key":"Sec-Fetch-Mode","value":"cors","disabled":true},{"key":"Accept-Encoding","value":"gzip, deflate","disabled":true},{"key":"Origin","value":"http://localhost:3000","disabled":true},{"key":"Referer","value":"http://localhost:3000/","disabled":true},{"key":"User-Agent","value":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15","disabled":true},{"key":"Content-Length","value":"43","disabled":true},{"key":"Connection","value":"keep-alive","disabled":true},{"key":"Sec-Fetch-Dest","value":"empty","disabled":true},{"key":"correlation-id","value":"56e0a224-f57e-4270-a45c-c46786a984a1","disabled":true}],"body":{"mode":"raw","raw":"{\n    \"items\": [\n        {\n            \"receiverData\": {\n                \"id\": 123456,\n                \"Amount\": \"200.5\"\n            }\n        },\n        {\n            \"receiverData\": {\n                \"id\": \"2354fg\",\n                \"Amount\": \"5238\"\n            }\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/notifications/{{notification-group-id}}/items/bulk"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 21 Jun 2025 05:23:04 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"893"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.9.4"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=4pmfTn1QBNCluxRkkbtaouqZzuRX9KP22E%2BbtMf9DO%2BmRCNp76IoCPyzsKtC9uNLabvzwWNje%2B2OSZ8gpBNqvILXlRMvP%2BZlEvgJg%2BjI%2BaiLzwAw\"}]}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"9531125dfd8b1fe6-EZE"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"total\": 2,\n    \"limit\": 2,\n    \"offset\": 0,\n    \"items\": [\n        {\n            \"id\": \"685641b8f700ec6242a168d8\",\n            \"notificationGroupId\": \"fbd593e5-a53f-42cd-8b14-c04af742d904\",\n            \"receiverData\": {\n                \"id\": 123456,\n                \"Amount\": \"200.5\",\n                \"_id\": \"9be0aab54c02eda6e22a5868ff61f509f5676da58f691b9e6efe9f96db82372e\"\n            },\n            \"status\": \"FAILED\",\n            \"createdAt\": \"2025-06-21T05:23:04.733991506\",\n            \"sentAt\": null,\n            \"receivedAt\": null,\n            \"readAt\": null\n        },\n        {\n            \"id\": \"685641b8f700ec6242a168d9\",\n            \"notificationGroupId\": \"fbd593e5-a53f-42cd-8b14-c04af742d904\",\n            \"receiverData\": {\n                \"id\": \"2354fg\",\n                \"Amount\": \"5238\",\n                \"_id\": \"9b22f7ef0d7b507db90e23128b4863cd385c503b3e3996be9589cd8d14e777f3\"\n            },\n            \"status\": \"FAILED\",\n            \"createdAt\": \"2025-06-21T05:23:04.734005575\",\n            \"sentAt\": null,\n            \"receivedAt\": null,\n            \"readAt\": null\n        }\n    ]\n}"},{"id":"3d480c96-fb89-49aa-bce8-bf7a6e2ddc6c","name":"error-poiicy-access","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Cookie","value":"Idea-bb5f841c=42049966-5967-4298-87a8-7c81321a83a0; Idea-bb5f841b=adb39dfd-5dc5-477a-8116-e79b90e431f0; Idea-bb5f841a=3ebd496f-9a8f-4bee-a4b7-00040ba25930; _ga=GA1.1.1204819475.1685071845; Idea-bb5f7c98=6de531f4-cd90-4c70-95ce-b56433f5e78a","disabled":true},{"key":"Pragma","value":"no-cache","disabled":true},{"key":"Authorization","value":"Bearer {{access-token}}","disabled":true},{"key":"Accept","value":"application/json, text/plain, */*","disabled":true},{"key":"Sec-Fetch-Site","value":"same-origin","disabled":true},{"key":"Host","value":"localhost:3000","disabled":true},{"key":"Accept-Language","value":"es-MX,es-419;q=0.9,es;q=0.8","disabled":true},{"key":"Cache-Control","value":"no-cache","disabled":true},{"key":"Sec-Fetch-Mode","value":"cors","disabled":true},{"key":"Accept-Encoding","value":"gzip, deflate","disabled":true},{"key":"Origin","value":"http://localhost:3000","disabled":true},{"key":"Referer","value":"http://localhost:3000/","disabled":true},{"key":"User-Agent","value":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15","disabled":true},{"key":"Content-Length","value":"43","disabled":true},{"key":"Connection","value":"keep-alive","disabled":true},{"key":"Sec-Fetch-Dest","value":"empty","disabled":true},{"key":"correlation-id","value":"56e0a224-f57e-4270-a45c-c46786a984a1","disabled":true}],"body":{"mode":"raw","raw":"{\n    \"items\": [\n        {\n            \"receiverData\": {\n                \"id\": 123456,\n                \"Amount\": \"200.5\"\n            }\n        },\n        {\n            \"receiverData\": {\n                \"id\": \"2354fg\",\n                \"Amount\": \"5238\"\n            }\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/notifications/{{notification-group-id}}/items/bulk"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"41"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.9.4"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Sat, 12 Jul 2025 20:00:23 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Access denied by policy\"\n}"}],"_postman_id":"f2dc7a5b-6a24-438c-b74e-6312af4b2dd6"},{"name":"getNotificationStatus","id":"a4b76655-c8d6-463c-aad7-13e851ebeacc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/notifications/{{notification-group-id}}/items/{{_item-id}}","description":"<h3 id=\"endpoint-description\">Endpoint Description</h3>\n<p>This endpoint retrieves the details of a specific notification item within a given notification group for an organization. It is useful for obtaining information about notifications sent to users, including their status and timestamps.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method:</strong> GET</p>\n</li>\n<li><p><strong>URL:</strong> <code>{{api-host}}/api/v1/organizations/{{organization-id}}/notifications/{{notification-group-id}}/items/{{_item-id}}</code></p>\n</li>\n</ul>\n<h4 id=\"path-parameters\">Path Parameters:</h4>\n<ul>\n<li><p><code>organization-id</code>: The unique identifier of the organization.</p>\n</li>\n<li><p><code>notification-group-id</code>: The unique identifier of the notification group.</p>\n</li>\n<li><p><code>_item-id</code>: The unique identifier of the notification item being retrieved.</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<ul>\n<li><p><strong>Status Code:</strong> 200 OK</p>\n</li>\n<li><p><strong>Content-Type:</strong> application/json</p>\n</li>\n</ul>\n<h4 id=\"response-structure\">Response Structure:</h4>\n<p>The response will contain a JSON object with the following fields:</p>\n<ul>\n<li><p><code>id</code>: The unique identifier of the notification item.</p>\n</li>\n<li><p><code>notificationGroupId</code>: The identifier of the notification group this item belongs to.</p>\n</li>\n<li><p><code>receiverData</code>: An object containing details about the receiver of the notification:</p>\n<ul>\n<li><p><code>_id</code>: The unique identifier of the receiver.</p>\n</li>\n<li><p><code>id</code>: A numerical identifier associated with the receiver.</p>\n</li>\n<li><p><code>Amount</code>: The amount related to the notification, if applicable.</p>\n</li>\n</ul>\n</li>\n<li><p><code>status</code>: The current status of the notification item (e.g., sent, received).</p>\n</li>\n<li><p><code>createdAt</code>: The timestamp when the notification item was created.</p>\n</li>\n<li><p><code>sentAt</code>: The timestamp when the notification was sent.</p>\n</li>\n<li><p><code>receivedAt</code>: The timestamp when the notification was received.</p>\n</li>\n<li><p><code>readAt</code>: The timestamp when the notification was read, if applicable.</p>\n</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"\",\n  \"notificationGroupId\": \"\",\n  \"receiverData\": {\n    \"_id\": \"\",\n    \"id\": 0,\n    \"Amount\": \"\"\n  },\n  \"status\": \"\",\n  \"createdAt\": \"\",\n  \"sentAt\": null,\n  \"receivedAt\": null,\n  \"readAt\": null\n}\n\n</code></pre>\n<p>This endpoint is essential for tracking the status and details of notifications within an organization, allowing for better management and understanding of communication with users.</p>\n","urlObject":{"path":["api","v1","organizations","{{organization-id}}","notifications","{{notification-group-id}}","items","{{_item-id}}"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"dc71c03b-9868-4307-95d9-6a5dbd2ae305","name":"success","originalRequest":{"method":"GET","header":[],"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/notifications/{{notification-group-id}}/items/{{_item-id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"386"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.9.4"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Sat, 21 Jun 2025 06:05:21 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"685642f6f700ec6242a168dc\",\n    \"notificationGroupId\": \"fbd593e5-a53f-42cd-8b14-c04af742d904\",\n    \"receiverData\": {\n        \"_id\": \"9be0aab54c02eda6e22a5868ff61f509f5676da58f691b9e6efe9f96db82372e\",\n        \"id\": 123456,\n        \"Amount\": \"200.5\"\n    },\n    \"status\": \"FAILED\",\n    \"createdAt\": \"2025-06-21T05:28:22.007916839\",\n    \"sentAt\": null,\n    \"receivedAt\": null,\n    \"readAt\": null\n}"}],"_postman_id":"a4b76655-c8d6-463c-aad7-13e851ebeacc"}],"id":"6df0903a-d1c6-4a8b-a2fb-1c9a592ce01d","_postman_id":"6df0903a-d1c6-4a8b-a2fb-1c9a592ce01d","description":""},{"name":"PoV","item":[{"name":"enroll","item":[{"name":"InviteFlowGetChallenge","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","","    const responseJson = pm.response.json();","    pm.environment.set(\"access-token\", responseJson.access_token);","});",""],"type":"text/javascript","packages":{},"requests":{},"id":"c515adbf-4010-4294-8234-21ec725d1292"}}],"id":"43c283e0-9de7-452c-9ed3-ce6ad3603e68","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"client-id","value":"blerify-dashboard"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"{{invite-flow-code}}\"\n}","options":{"raw":{"language":"json"}}},"url":"{{auth-api-host}}/api/v1/auth/inviteFlow","description":"<p><strong>InviteFlowGetChallenge</strong></p>\n<p>This endpoint initiates the invite flow authentication process by exchanging an invite code for an authentication challenge. It is typically the first step in the invite-based authentication sequence.</p>\n<hr />\n<h3 id=\"purpose\">Purpose</h3>\n<p>Use this endpoint to start the invite flow when a user has received an invite code. The endpoint validates the code and, if valid, returns an authentication challenge that must be solved in the next step.</p>\n<hr />\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p><strong>URL:</strong> <code>{{auth-api-host}}/api/v1/auth/inviteFlow</code></p>\n</li>\n</ul>\n<h4 id=\"request-body-json\">Request Body (JSON)</h4>\n<ul>\n<li><code>code</code> (string, required): The invite code received by the user. Example: <code>{{invite-flow-code}}</code></li>\n</ul>\n<p>Example body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"code\": \"{{invite-flow-code}}\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"variables\">Variables</h3>\n<ul>\n<li><p><code>{{auth-api-host}}</code>: The base URL for the authentication API, set in your environment.</p>\n</li>\n<li><p><code>{{invite-flow-code}}</code>: The invite code to be used, set in your environment or dynamically.</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"response\">Response</h3>\n<ul>\n<li><p><strong>Success (200):</strong> Returns an authentication challenge object. The response typically includes a challenge that must be solved in the next step of the invite flow.</p>\n</li>\n<li><p>The response body is parsed and the <code>access_token</code> (if present) is saved to the environment variable <code>access-token</code>.</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"saved-examples\">Saved Examples</h3>\n<ul>\n<li><p><code>new-code-already-sent</code>: Example of a response when a new code has already been sent.</p>\n</li>\n<li><p><code>error-max-attempts-reached</code>: Example of a response when the maximum number of attempts has been reached.</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"related-endpoints\">Related Endpoints</h3>\n<ul>\n<li><p><a href=\"https://request/40210155-e8924968-9b27-487c-85ea-94486eb9d792\">InviteFlowGetChallenge</a>: This request (start of the invite flow).</p>\n</li>\n<li><p><a href=\"https://request/40210155-c71189e3-4fc3-4bac-a289-c1b4a07ff7de\">InviteFlowSubmitChallenge</a>: Next step, submit the challenge response to complete authentication.</p>\n</li>\n</ul>\n<hr />\n<p><strong>Usage:</strong></p>\n<ol>\n<li><p>Call this endpoint with a valid invite code to receive a challenge.</p>\n</li>\n<li><p>Use the challenge in <a href=\"https://request/40210155-c71189e3-4fc3-4bac-a289-c1b4a07ff7de\">InviteFlowSubmitChallenge</a> to complete the authentication process.</p>\n</li>\n</ol>\n<p>This endpoint is essential for workflows where users are onboarded or authenticated via invitation codes.</p>\n","urlObject":{"path":["api","v1","auth","inviteFlow"],"host":["{{auth-api-host}}"],"query":[],"variable":[]}},"response":[{"id":"4d6b0d5f-aabe-4a91-8296-cae0e256c643","name":"error-max-attempts-reached","originalRequest":{"method":"POST","header":[{"key":"client-id","value":"blerify-dashboard"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"{{invite-flow-code}}\"\n}","options":{"raw":{"language":"json"}}},"url":"{{auth-api-host}}/api/v1/auth/inviteFlow"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"66"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.9.4"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Mon, 09 Jun 2025 02:51:15 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": 11203,\n    \"error\": \"max attempts have been reached\"\n}"},{"id":"9edd75ca-9084-46b3-a5bc-de4bf6218b71","name":"new-code-already-sent","originalRequest":{"method":"POST","header":[{"key":"client-id","value":"blerify-dashboard"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"{{invite-flow-code}}\"\n}","options":{"raw":{"language":"json"}}},"url":"{{auth-api-host}}/api/v1/auth/inviteFlow"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"68"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.9.4"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Wed, 11 Jun 2025 04:23:03 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": 11208,\n    \"error\": \"a new code has already been sent\"\n}"},{"id":"2bdf59df-0477-43c6-a9e7-f4f53a233d34","name":"succesDidJwtGetChallenge","originalRequest":{"method":"POST","header":[{"key":"client-id","value":"blerify-dashboard"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"{{invite-flow-code}}\"\n}","options":{"raw":{"language":"json"}}},"url":"{{auth-api-host}}/api/v1/auth/inviteFlow"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"148"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.9.4"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Mon, 16 Jun 2025 16:00:16 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"challengeType\": \"didJwt\",\n    \"challenge\": \"iMYQGZIrT6W/LdPoTzs7OQ==\",\n    \"signatureAlgorithms\": [\n        -7\n    ],\n    \"rpId\": \"iam.example.com\"\n}"}],"_postman_id":"43c283e0-9de7-452c-9ed3-ce6ad3603e68"},{"name":"InviteFlowSubmitChallenge","event":[{"listen":"test","script":{"exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","","    const responseJson = pm.response.json();","    pm.environment.set(\"access-token\", responseJson.access_token);","});",""],"type":"text/javascript","packages":{},"requests":{},"id":"40b27870-b3cd-4703-9780-af2a3f75f4d6"}}],"id":"c43321c3-a91c-4050-8794-77fcefca0440","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"client-id","value":"blerify-dashboard"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"{{invite-flow-code}}\",\n    \"challenge\": {\n        \"type\": \"didJwt\",\n        \"value\": \"<signed-jwt-example>\"\n    } \n}","options":{"raw":{"language":"json"}}},"url":"{{auth-api-host}}/api/v1/auth/inviteFlow","description":"<p><strong>Purpose:</strong>\nSubmits a challenge response as part of the invite flow authentication process. This endpoint is typically called after retrieving a challenge using the related <a href=\"request/40210155-e8924968-9b27-487c-85ea-94486eb9d792\">InviteFlowGetChallenge</a> endpoint.</p>\n<p><strong>Request Body:</strong></p>\n<ul>\n<li><code>code</code> (string): The invite flow code, usually obtained from a prior step in the invite process.</li>\n<li><code>challenge</code> (object): Contains the challenge response.<ul>\n<li><code>type</code> (string): The type of challenge, e.g., <code>didJwt</code>.</li>\n<li><code>value</code> (string): The signed challenge value (such as a JWT).</li>\n</ul>\n</li>\n</ul>\n<p><strong>Returns:</strong></p>\n<ul>\n<li>On success, returns an access token (<code>access_token</code>) and other authentication details in the response body.</li>\n<li>On failure, returns an error describing the issue (e.g., invalid code, invalid challenge response).</li>\n</ul>\n<p><strong>Related Requests:</strong></p>\n<ul>\n<li><a href=\"request/40210155-e8924968-9b27-487c-85ea-94486eb9d792\">InviteFlowGetChallenge</a>: Use this to obtain the challenge before submitting it here.</li>\n</ul>\n","urlObject":{"path":["api","v1","auth","inviteFlow"],"host":["{{auth-api-host}}"],"query":[],"variable":[]}},"response":[{"id":"2c3c26ab-3252-4175-a33b-7b7fc2614679","name":"error-all-steps-completed","originalRequest":{"method":"POST","header":[{"key":"client-id","value":"blerify-dashboard"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"{{invite-flow-code}}\",\n    \"challenge\": {\n        \"type\": \"didJwt\",\n        \"value\": \"<signed-jwt-example>\"\n    } \n}","options":{"raw":{"language":"json"}}},"url":"{{auth-api-host}}/api/v1/auth/inviteFlow"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"68"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.9.4"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Tue, 17 Jun 2025 00:31:10 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": 11206,\n    \"error\": \"all steps were already completed\"\n}"},{"id":"d46de11e-789e-4d02-9da8-f97326d306d2","name":"didJwt-success","originalRequest":{"method":"POST","header":[{"key":"client-id","value":"blerify-dashboard"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"{{invite-flow-code}}\",\n    \"challenge\": {\n        \"type\": \"didJwt\",\n        \"value\": \"<signed-jwt-example>\"\n    } \n}","options":{"raw":{"language":"json"}}},"url":"{{auth-api-host}}/api/v1/auth/inviteFlow"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"21"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.9.4"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Thu, 03 Jul 2025 01:22:04 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": true\n}"}],"_postman_id":"c43321c3-a91c-4050-8794-77fcefca0440"}],"id":"9fac85fb-5836-440a-a7b1-1d3c5011f162","_postman_id":"9fac85fb-5836-440a-a7b1-1d3c5011f162","description":""},{"name":"mDL","item":[{"name":"GetVerificationRules","id":"92bcc6b6-ed46-405b-ab9a-68607a596286","protocolProfileBehavior":{"disabledSystemHeaders":{"host":true,"user-agent":true,"accept":true,"accept-encoding":true,"connection":true},"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"accept","value":"application/json, text/plain, */*"},{"key":"correlation-id","value":"1d4fef52-19f0-4e4c-98a0-b306c99e0875"},{"key":"origin","value":"https://staging.blerify.com"}],"url":"{{api-host}}/api/v1/wallet/presentationverifications","description":"<h3 id=\"summary\">Summary</h3>\n<p>Retrieves a list of presentation verifications associated with the authenticated user's wallet. This GET endpoint returns all verification records, including their statuses and metadata, enabling users to track credential presentations and their verification outcomes.</p>\n<h3 id=\"authentication-requirements\">Authentication Requirements</h3>\n<ul>\n<li><p><strong>Type:</strong> Bearer Token (JWT)</p>\n</li>\n<li><p><strong>Header:</strong> <code>Authorization: Bearer</code></p>\n</li>\n<li><p>The request requires a valid bearer token for authorization. Unauthorized requests will be rejected.</p>\n</li>\n</ul>\n<h3 id=\"parameters\">Parameters</h3>\n<ul>\n<li><p><strong>Path Parameters:</strong> None</p>\n</li>\n<li><p><strong>Query Parameters:</strong> None</p>\n</li>\n<li><p><strong>Headers:</strong></p>\n<ul>\n<li><p><code>Authorization</code> (required): Bearer token for authentication</p>\n</li>\n<li><p><code>Accept</code> (optional): <code>application/json, text/plain, \\\\*/\\\\*</code></p>\n</li>\n<li><p><code>correlation-id</code>: unique id to identify this operation</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Variables:</strong></p>\n<ul>\n<li><p><code>api-host</code> (required): The base URL of the API (e.g., <code>https://api.example.com</code>)</p>\n</li>\n<li><p><code>access-token</code> (required): The JWT used for authentication</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"expected-response-structure\">Expected Response Structure</h3>\n<ul>\n<li><p><strong>Status Code:</strong> 200 OK (on success)</p>\n</li>\n<li><p><strong>Response Body:</strong> JSON array of presentation verification objects. Each object typically includes:</p>\n<ul>\n<li><p><code>id</code>: Unique identifier for the verification</p>\n</li>\n<li><p><code>status</code>: Verification status (e.g., <code>pending</code>, <code>verified</code>, <code>failed</code>)</p>\n</li>\n<li><p><code>metadata</code>: Additional information about the verification</p>\n</li>\n<li><p><code>createdAt</code>, <code>updatedAt</code>: Timestamps</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Reference Example:</strong> See the saved example \"success\" for a sample response.</p>\n</li>\n</ul>\n<h3 id=\"typical-use-cases\">Typical Use Cases</h3>\n<ul>\n<li>Returning the set of configs for the point of verifications the device has access to.</li>\n</ul>\n<h3 id=\"notes--caveats\">Notes &amp; Caveats</h3>\n<ul>\n<li><p>Only verifications associated with the authenticated user's wallet are returned.</p>\n</li>\n<li><p>Ensure the <code>api-host</code> and <code>access-token</code> variables are correctly set in your environment or collection.</p>\n</li>\n<li><p>The endpoint may return an empty array if no verifications exist.</p>\n</li>\n<li><p>For error responses (e.g., 401 Unauthorized), ensure your bearer token is valid and not expired.</p>\n</li>\n</ul>\n","urlObject":{"path":["api","v1","wallet","presentationverifications"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"5bd13539-f929-409c-be33-56a45a4e2b39","name":"success","originalRequest":{"method":"GET","header":[{"key":"accept","value":"application/json, text/plain, */*"},{"key":"accept-language","value":"en-US,en;q=0.9"},{"key":"authorization","value":"Bearer {{access-token}}"},{"key":"correlation-id","value":"1d4fef52-19f0-4e4c-98a0-b306c99e0875"},{"key":"origin","value":"https://staging.blerify.com"},{"key":"priority","value":"u=1, i"},{"key":"referer","value":"https://staging.blerify.com/"},{"key":"sec-ch-ua","value":"\"Chromium\";v=\"136\", \"Google Chrome\";v=\"136\", \"Not.A/Brand\";v=\"99\""},{"key":"sec-ch-ua-mobile","value":"?0"},{"key":"sec-ch-ua-platform","value":"\"Linux\""},{"key":"sec-fetch-dest","value":"empty"},{"key":"sec-fetch-mode","value":"cors"},{"key":"sec-fetch-site","value":"same-site"},{"key":"user-agent","value":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36"}],"url":"{{api-host}}/api/v1/wallet/presentationverifications"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Allow-Origin","value":"https://staging.blerify.com"},{"key":"Access-Control-Expose-Headers","value":"Content-Length, Content-Type"},{"key":"Content-Length","value":"680"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.9.4"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Thu, 03 Jul 2025 02:24:42 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"total\": 1,\n    \"limit\": 100,\n    \"offset\": 0,\n    \"presentationVerifications\": [\n        {\n            \"id\": \"c317bdc2-c7a6-40de-87e4-64b3328a9d0f\",\n            \"name\": \"Pov-try-3-2-7-2025\",\n            \"description\": \"Test\",\n            \"image\": null,\n            \"accessMode\": \"SECURED\",\n            \"expireAt\": null,\n            \"organizationId\": \"0874b08d-2292-46ed-b84f-2191cea7d167\",\n            \"projectId\": \"5948674c-9b9c-4504-9fa1-376971c5633d\",\n            \"category\": \"mdl\",\n            \"iso180135\": {\n                \"trustedList\": \"eip155:42900:0xa9ECbe3F9600f9bF3ec88a428387316714ac95a0:1\",\n                \"attributes\": [\n                    \"familyName\",\n                    \"givenName\",\n                    \"issuingAuthority\",\n                    \"documentNumber\",\n                    \"unDistinguishingSign\"\n                ],\n                \"customAttributes\": null\n            }\n        }\n    ]\n}"}],"_postman_id":"92bcc6b6-ed46-405b-ab9a-68607a596286"},{"name":"Validate document status against registry","id":"c1d4e16a-7d68-41e1-9762-d246bdc82678","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{api-host}}/api/v1/wallet/presentationverifications/{{_presentation-verification-id}}/credentials/{{credential-id}}/verify/registry","description":"<p>Validates a specific credential associated with a presentation verification against the registry.</p>\n<p>Purpose: Confirms the authenticity and status of a credential by providing the required presentation verification ID and credential ID as path variables.</p>\n<p>Path Parameters:</p>\n<ul>\n<li><p>_presentation-verification-id: The unique identifier for the rule associated to the Point of verification.</p>\n</li>\n<li><p>credential-id: The unique identifier of the credential to be validated.</p>\n</li>\n</ul>\n<p>Variables:</p>\n<ul>\n<li>api-host: The base URL for the API.</li>\n</ul>\n<p>Possible Responses:</p>\n<ul>\n<li><p>200 OK: Credential is valid and recognized by the registry.</p>\n</li>\n<li><p>400 Bad Request: Invalid or missing parameters.</p>\n</li>\n<li><p>404 Not Found: Credential or presentation verification not found.</p>\n</li>\n<li><p>500 Internal Server Error: Unexpected server error.</p>\n</li>\n</ul>\n<p>Ensure all variables are set appropriately before making the request.</p>\n","urlObject":{"path":["api","v1","wallet","presentationverifications","{{_presentation-verification-id}}","credentials","{{credential-id}}","verify","registry"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"85a3d338-4b25-41e8-acda-082a5a21789a","name":"success","originalRequest":{"method":"GET","header":[],"url":"{{api-host}}/api/v1/wallet/presentationverifications/{{_presentation-verification-id}}/credentials/{{credential-id}}/verify/registry"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"393"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Origin"},{"key":"X-Krakend","value":"Version 2.9.4"},{"key":"X-Krakend-Completed","value":"false"},{"key":"Date","value":"Thu, 17 Jul 2025 02:13:49 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"registered\": true,\n    \"onHold\": false,\n    \"expired\": false,\n    \"revoked\": false,\n    \"revokedAt\": null,\n    \"reason\": null,\n    \"issuance\": {\n        \"protocol\": \"WALLET\",\n        \"issuedAt\": \"2025-07-16T22:22:07\",\n        \"transactionHash\": \"http://35.188.10.56:3000/tx/0xd29f63508fabef6694f7249b49aef7b91dba2d910d58e7f34536583e90bd387f\",\n        \"blockNumber\": 8097,\n        \"network\": \"AVALANCHE\"\n    }\n}"},{"id":"20bea5f8-e98c-4bed-a574-974ba5b5dae8","name":"illegal-arguments","originalRequest":{"method":"GET","header":[],"url":"{{api-host}}/api/v1/wallet/presentationverifications/{{_presentation-verification-id}}/credentials/{{credential-id}}/verify/registry"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 40001,\n  \"error\" : \"Illegal argument parameters\"\n}"}],"_postman_id":"c1d4e16a-7d68-41e1-9762-d246bdc82678"},{"name":"GetCertificates","id":"10eedab2-c60c-4e14-a7d3-0edc9710a5ef","protocolProfileBehavior":{"disabledSystemHeaders":{"host":true,"user-agent":true,"accept":true,"accept-encoding":true,"connection":true},"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{cdn_hostname}}/certificates/{{trusted_list}}","description":"<p>Retrieves a list of trusted certificates in JWK (JSON Web Key) format from the specified CDN.</p>\n<p><strong>Purpose:</strong><br />Fetches all certificates associated with a given trusted list, typically used for signature verification or cryptographic operations.</p>\n<p><strong>Request Parameters:</strong></p>\n<ul>\n<li><p><code>cdn_hostname</code> (path or environment variable): The base hostname of the CDN where certificates are hosted.</p>\n</li>\n<li><p><code>trusted_list</code> (path or environment variable): The identifier for the trusted list whose certificates you want to retrieve.</p>\n</li>\n</ul>\n<p><strong>Request Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET {{cdn_hostname}}/certificates/{{trusted_list}}\n\n</code></pre><p><strong>Response Structure:</strong><br />Returns an array of objects. Each object contains:</p>\n<ul>\n<li><p><code>data</code>: An object with JWK fields:</p>\n<ul>\n<li><p><code>alg</code>: Algorithm (e.g., \"ES256\")</p>\n</li>\n<li><p><code>crv</code>: Curve (e.g., \"P-256\")</p>\n</li>\n<li><p><code>kid</code>: Key ID</p>\n</li>\n<li><p><code>kty</code>: Key type (e.g., \"EC\")</p>\n</li>\n<li><p><code>use</code>: Intended use (e.g., \"sig\")</p>\n</li>\n<li><p><code>x</code>, <code>y</code>: Public key coordinates</p>\n</li>\n<li><p><code>x5c</code>: Array of X.509 certificate chains</p>\n</li>\n<li><p><code>x5t#S256</code>: X.509 certificate SHA-256 thumbprint</p>\n</li>\n</ul>\n</li>\n<li><p><code>type</code>: Always \"jwk\"</p>\n</li>\n<li><p><code>version</code>: Version string (e.g., \"1.0.0\")</p>\n</li>\n</ul>\n<p><strong>Sample Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n  {\n    \"data\": {\n      \"alg\": \"ES256\",\n      \"crv\": \"P-256\",\n      \"kid\": \"kUWPnAjvBdLWCqQAFNgsAVHlqVajGmZUPA\",\n      \"kty\": \"EC\",\n      \"use\": \"sig\",\n      \"x\": \"...\",\n      \"y\": \"...\",\n      \"x5c\": [\"...\"],\n      \"x5t#S256\": \"...\"\n    },\n    \"type\": \"jwk\",\n    \"version\": \"1.0.0\"\n  },\n  ...\n]\n\n</code></pre>","urlObject":{"path":["certificates","{{trusted_list}}"],"host":["{{cdn_hostname}}"],"query":[],"variable":[]}},"response":[{"id":"4edd4f8d-2bf8-431f-80be-e3143cc0cb32","name":"success","originalRequest":{"method":"GET","header":[],"url":"{{cdn_hostname}}/certificates/{{trusted_list}}"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Date","value":"Tue, 02 Dec 2025 14:47:38 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"x-guploader-uploadid","value":"AOCedOHVF8Tmp7ct859FDipcdinstwsd3TuLaEOk4VuuxzJSR0FeTCz5ZbdIpHBjpS8Pbrzu"},{"key":"last-modified","value":"Fri, 10 Oct 2025 15:28:29 GMT"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=7eQABvozhvE0ntejfigj90M62ryHl8%2FQAiktHhpCmK1pyC%2Flka3l8yGLfjzXCPrPsQEBAHhpUZ9aaOFgzKXYy6x8RMEuSXx5Zx1QBQ%3D%3D\"}]}"},{"key":"x-goog-generation","value":"1760110109573342"},{"key":"x-goog-metageneration","value":"1"},{"key":"x-goog-stored-content-encoding","value":"identity"},{"key":"x-goog-stored-content-length","value":"9017"},{"key":"x-goog-hash","value":"crc32c=HscwCA=="},{"key":"x-goog-hash","value":"md5=bAFBwqlvBYXn+oW8nu0Eiw=="},{"key":"x-goog-storage-class","value":"STANDARD"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"via","value":"1.1 google"},{"key":"Cache-Control","value":"public,max-age=3600"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"access-control-allow-origin","value":"*"},{"key":"etag","value":"W/\"6c0141c2a96f0585e7fa85bc9eed048b\""},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"9a7b9edd9e0e7842-EZE"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"data\": {\n            \"alg\": \"ES256\",\n            \"crv\": \"P-256\",\n            \"kid\": \"hpWPnAjcAdLWCqQAFNglAVHlqVajGmZBPA\",\n            \"kty\": \"EC\",\n            \"use\": \"sig\",\n            \"x\": \"iTwtg0eQbcbNabf2Nq9L_VM_lhhPCq2s0Qgw2kRx29s\",\n            \"x5c\": [\n                \"MIICKjCCAdCgAwIBAgIUV8bM0wi95D7KN0TyqHE42ru4hOgwCgYIKoZIzj0EAwIwUzELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMQ8wDQYDVQQHDAZBbGJhbnkxDzANBgNVBAoMBk5ZIERNVjEPMA0GA1UECwwGTlkgRE1WMB4XDTIzMDkxNDE0NTUxOFoXDTMzMDkxMTE0NTUxOFowUzELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMQ8wDQYDVQQHDAZBbGJhbnkxDzANBgNVBAoMBk5ZIERNVjEPMA0GA1UECwwGTlkgRE1WMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEiTwtg0eQbcbNabf2Nq9L/VM/lhhPCq2s0Qgw2kRx29tgrBcNHPxTT64tnc1Ij3dH/fl42SXqMenpCDw4K6ntU6OBgTB/MB0GA1UdDgQWBBSrbS4DuR1JIkAzj7zK3v2TM+r2xzAfBgNVHSMEGDAWgBSrbS4DuR1JIkAzj7zK3v2TM+r2xzAPBgNVHRMBAf8EBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAKBggqhkjOPQQDAgNIADBFAiAJ/Qyrl7A+ePZOdNfc7ohmjEdqCvxaos6//gfTvncuqQIhANo4q8mKCA9J8k/+zh//yKbN1bLAtdqPx7dnrDqV3Lg+\"\n            ],\n            \"x5t#S256\": \"towGSsMTzeTfflYCqcIS4f9i_QxjaTZ0D2VnnwyWFaQ\",\n            \"y\": \"YKwXDRz8U0-uLZ3NSI93R_35eNkl6jHp6Qg8OCup7VM\"\n        },\n        \"type\": \"jwk\",\n        \"version\": \"1.0.0\"\n    },\n    {\n        \"data\": {\n            \"alg\": \"ES256\",\n            \"crv\": \"P-256\",\n            \"kid\": \"gpWQnAjvAdLWCqQAFNglAVHlqVajGmZTPQ\",\n            \"kty\": \"EC\",\n            \"use\": \"sig\",\n            \"x\": \"iTwtg0eQbcbNabf2Nq9L_VM_lhhPCq2s0Qgw2kRx29s\",\n            \"x5c\": [\n                \"MIICKjCCAdCgAwIBAgIUV8bM0wi95D7KN0TyqHE42ru4hOgwCgYIKoZIzj0EAwIwUzELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMQ8wDQYDVQQHDAZBbGJhbnkxDzANBgNVBAoMBk5ZIERNVjEPMA0GA1UECwwGTlkgRE1WMB4XDTIzMDkxNDE0NTUxOFoXDTMzMDkxMTE0NTUxOFowUzELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMQ8wDQYDVQQHDAZBbGJhbnkxDzANBgNVBAoMBk5ZIERNVjEPMA0GA1UECwwGTlkgRE1WMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEiTwtg0eQbcbNabf2Nq9L/VM/lhhPCq2s0Qgw2kRx29tgrBcNHPxTT64tnc1Ij3dH/fl42SXqMenpCDw4K6ntU6OBgTB/MB0GA1UdDgQWBBSrbS4DuR1JIkAzj7zK3v2TM+r2xzAfBgNVHSMEGDAWgBSrbS4DuR1JIkAzj7zK3v2TM+r2xzAPBgNVHRMBAf8EBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAKBggqhkjOPQQDAgNIADBFAiAJ/Qyrl7A+ePZOdNfc7ohmjEdqCvxaos6//gfTvncuqQIhANo4q8mKCA9J8k/+zh//yKbN1bLAtdqPx7dnrDqV3Lg+\"\n            ],\n            \"x5t#S256\": \"towGSsMTzeTfflYCqcIS4f9i_QxjaTZ0D2VnnwyWFaQ\",\n            \"y\": \"YKwXDRz8U0-uLZ3NSI93R_35eNkl6jHp6Qg8OCup7VM\"\n        },\n        \"type\": \"jwk\",\n        \"version\": \"1.0.0\"\n    },\n    {\n        \"data\": {\n            \"alg\": \"ES256\",\n            \"crv\": \"P-256\",\n            \"kid\": \"aLSQnAjvAdLWCqQAFNglAVHlcVajGvZTPN\",\n            \"kty\": \"EC\",\n            \"use\": \"sig\",\n            \"x\": \"jP5UgM8ltcKGxWMGC3PryjQCd_ORIopDdvuMUfbF41w\",\n            \"x5c\": [\n                \"MIIBJjCBzQIUAdABT8JRviKJsEtXvEEQRaTPdvYwCgYIKoZIzj0EAwIwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjUwNjI1MjAzODQyWhcNMjYwNjI1MjAzODQyWjAWMRQwEgYDVQQDDAtleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABIz+VIDPJbXChsVjBgtz68o0AnfzkSKKQ3b7jFH2xeNckrgrQS3xPvsyXrgItvLij39O3to+ZAXMwMfrEY6ipcwwCgYIKoZIzj0EAwIDSAAwRQIgT6jA6ONMXUWYCEiWyQaGmQxUo8TLpFwUBh402GDgu5sCIQDKBMxUouo3hi+vY3cqSjSv7KpD02C7clIMXUw2BLMerA==\"\n            ],\n            \"x5t#S256\": \"ab67iRZ4eeFvU1aUbrtcypP36O6MIA4H7oJHXZVCLAw\",\n            \"y\": \"krgrQS3xPvsyXrgItvLij39O3to-ZAXMwMfrEY6ipcw\"\n        },\n        \"type\": \"jwk\",\n        \"version\": \"1.0.0\"\n    },\n    {\n        \"data\": {\n            \"alg\": \"ES256\",\n            \"crv\": \"P-256\",\n            \"kid\": \"123456\",\n            \"kty\": \"EC\",\n            \"use\": \"sig\",\n            \"x\": \"_Wg7bbEm6YJBapPSqK7VsV4An4s61hiRRK0NatuJGAo\",\n            \"x5c\": [\n                \"MIICxDCCAmugAwIBAgIUFD6xsGjZOz7/STr6qHxwmr+BfoUwCgYIKoZIzj0EAwIwgZExCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRQwEgYDVQQHDAtMb3MgQW5nZWxlczEcMBoGA1UECgwTTW9iaWxlIElEIEF1dGhvcml0eTEZMBcGA1UECwwQRGlnaXRhbCBJZGVudGl0eTEeMBwGA1UEAwwVTW9iaWxlIElEIENlcnRpZmljYXRlMB4XDTI1MDMxMzE5NDI1MFoXDTI2MDMxMzE5NDI1MFowgZExCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRQwEgYDVQQHDAtMb3MgQW5nZWxlczEcMBoGA1UECgwTTW9iaWxlIElEIEF1dGhvcml0eTEZMBcGA1UECwwQRGlnaXRhbCBJZGVudGl0eTEeMBwGA1UEAwwVTW9iaWxlIElEIENlcnRpZmljYXRlMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/Wg7bbEm6YJBapPSqK7VsV4An4s61hiRRK0NatuJGAoAwelVmsFKzC9pIjWjo8cC0VlUUx38kjlUSClcVDYs1KOBnjCBmzAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIFoDAiBgNVHSUBAf8EGDAWBgorBgEEAYOiWgEBBggrBgEFBQcDAjA7BgNVHSABAf8EMTAvMC0GBWeBBQgBMCQwIgYIKwYBBQUHAgEWFmh0dHA6Ly9leGFtcGxlLmNvbS9jcHMwHQYDVR0OBBYEFGUJa/4D7RsVllaMCybXAstBeMm8MAoGCCqGSM49BAMCA0cAMEQCIHBZUdHiLjYjEfPFLjJ6UFqUXTQeizJZa4/xUzGThPlYAiAzsia4FtSZcE31k/23OTnzld+mhIV/Ieiq4dZ6BvIQPQ==\"\n            ],\n            \"x5t#S256\": \"Cii5ottRJ5rd1zkzTsweTe0NG4BVv4KBsYET-uY0yu0\",\n            \"y\": \"AMHpVZrBSswvaSI1o6PHAtFZVFMd_JI5VEgpXFQ2LNQ\"\n        },\n        \"type\": \"jwk\",\n        \"version\": \"1.0.0\"\n    },\n    {\n        \"data\": {\n            \"alg\": \"ES256\",\n            \"crv\": \"P-256\",\n            \"kid\": \"VeintinueveAgosto\",\n            \"kty\": \"EC\",\n            \"use\": \"sig\",\n            \"x\": \"8hR5slqAhB1sLfsR9UkQyZJEpl1h0P-U951ko6Gym04\",\n            \"x5c\": [\n                \"MIICGTCCAb6gAwIBAgIUEY2j9RLWZaRpFhl8i4oDlwITHfwwCgYIKoZIzj0EAwIwajELMAkGA1UEBhMCQVIxFTATBgNVBAgMDEJ1ZW5vcyBBaXJlczENMAsGA1UEBwwEQ0FCQTEVMBMGA1UECgwMRWplbXBsbyBTLkEuMR4wHAYDVQQDDBVNYXJ0aW4gQ2VydCBkZSBQcnVlYmEwHhcNMjUwODI5MTQ0MTU2WhcNMjYwODI5MTQ0MTU2WjBqMQswCQYDVQQGEwJBUjEVMBMGA1UECAwMQnVlbm9zIEFpcmVzMQ0wCwYDVQQHDARDQUJBMRUwEwYDVQQKDAxFamVtcGxvIFMuQS4xHjAcBgNVBAMMFU1hcnRpbiBDZXJ0IGRlIFBydWViYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPIUebJagIQdbC37EfVJEMmSRKZdYdD/lPedZKOhsptOUPKRydePFw9rRJLuJ0ZyWViMhhS6W5qrxT4rVKZwPnWjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGOMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAKBggqhkjOPQQDAgNJADBGAiEA8Q5SoOnGc1046u94nw1zczlaJNyu+xVhiyxMtdLSIQACIQCWMOSwslli5aXIDXKPf3B3XcVXt2tFHdk0ToILVIEjjg==\"\n            ],\n            \"x5t#S256\": \"pyxepiEIDuWdriYM9kEGWtv7sUJWJ2oeUVNZPG3nZYM\",\n            \"y\": \"UPKRydePFw9rRJLuJ0ZyWViMhhS6W5qrxT4rVKZwPnU\"\n        },\n        \"type\": \"jwk\",\n        \"version\": \"1.0.0\"\n    },\n    {\n        \"data\": {\n            \"alg\": \"ES256\",\n            \"crv\": \"P-256\",\n            \"kid\": \"143089D4A9E2A1E155786A1B2025726572CF36A2F5EA966E78FACF4A491C8E50\",\n            \"kty\": \"EC\",\n            \"use\": \"sig\",\n            \"x\": \"yyB-JzQ1tMoP_uGu8DMOZFCQlx0jyVui3Z2OLtb9zTU\",\n            \"x5c\": [\n                \"MIIBZDCCAQkCFF29EODSyXmgikPlx4EKyCHZDZYfMAoGCCqGSM49BAMCMDQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMRAwDgYDVQQKDAdCbGVyaWZ5MB4XDTI1MDgyMDIyMjg1M1oXDTI3MDgxMDIyMjg1M1owNDELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxEDAOBgNVBAoMB0JsZXJpZnkwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATLIH4nNDW0yg/+4a7wMw5kUJCXHSPJW6LdnY4u1v3NNeVf/cbOjeJm6tUHSb8Ha4XVgvJjeKE0XD+jrwuh3sN7MAoGCCqGSM49BAMCA0kAMEYCIQDMzXYMzerk9BvgwmbVtJV0wAHaZ/8zsiI+N6oqeY3VRgIhAOS4mJCctkjPrcGxnj0yV/ovB8gtbQGGhnGOHauDYc+T\"\n            ],\n            \"x5t#S256\": \"FDCJ1KnioeFVeGobICVyZXLPNqL16pZuePrPSkkcjlA\",\n            \"y\": \"5V_9xs6N4mbq1QdJvwdrhdWC8mN4oTRcP6OvC6Hew3s\"\n        },\n        \"type\": \"jwk\",\n        \"version\": \"1.0.0\"\n    },\n    {\n        \"data\": {\n            \"alg\": \"ES256\",\n            \"crv\": \"P-256\",\n            \"kid\": \"BibliotecaAcme\",\n            \"kty\": \"EC\",\n            \"use\": \"sig\",\n            \"x\": \"or0_XayoHIDhAXMlxWK9cyPr3DUPhWIwW3XPFOiLr1o\",\n            \"x5c\": [\n                \"MIICMDCCAdagAwIBAgIURzgPp571iVnfWjP9xxNzwpqql6QwCgYIKoZIzj0EAwIwOjELMAkGA1UEBhMCQVIxDTALBgNVBAoMBERlbW8xHDAaBgNVBAMME0RlbW8gRUMgU2VsZi1TaWduZWQwHhcNMjUwOTAzMTcxMjMyWhcNMjcwOTAzMTcxMjMyWjA6MQswCQYDVQQGEwJBUjENMAsGA1UECgwERGVtbzEcMBoGA1UEAwwTRGVtbyBFQyBTZWxmLVNpZ25lZDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKK9P12sqByA4QFzJcVivXMj69w1D4ViMFt1zxToi69au31Cm7gocPmhsnXSewEMia9td9NUyXafHzkVJZrrLOSjgbkwgbYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPNBen23jfx3SoElQpt+llKA3Ic0wHwYDVR0jBBgwFoAUPNBen23jfx3SoElQpt+llKA3Ic0wDgYDVR0PAQH/BAQDAgHOMDEGA1UdJQQqMCgGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEMCAGA1UdEQQZMBeCCWxvY2FsaG9zdIIKZGVtby5sb2NhbDAKBggqhkjOPQQDAgNIADBFAiBQdZmOpGnzYJ49CYu2j3S4WQlbVkKSaC2L9pjzFA8jtQIhAL8po1MW4MAUv5NSExTXGRg38N8a5zl/XJYk1sqZ48Wf\"\n            ],\n            \"x5t#S256\": \"LhvC6v7xt2-7NSO9_ibBkJMr6P1ZABAPlKUlPA3nSwg\",\n            \"y\": \"u31Cm7gocPmhsnXSewEMia9td9NUyXafHzkVJZrrLOQ\"\n        },\n        \"type\": \"jwk\",\n        \"version\": \"1.0.0\"\n    }\n]"}],"_postman_id":"10eedab2-c60c-4e14-a7d3-0edc9710a5ef"}],"id":"3ba60f22-7a29-4413-b1ac-ed1112a42062","_postman_id":"3ba60f22-7a29-4413-b1ac-ed1112a42062","description":""}],"id":"8d3cd779-2f24-42e6-81b8-f635cfc83268","_postman_id":"8d3cd779-2f24-42e6-81b8-f635cfc83268","description":""},{"name":"Openid4VP","item":[{"name":"Iso MDL","item":[{"name":"initSession","id":"29e62b06-76f2-40a9-a779-5f85397d625b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"nonce\": \"abcdefgh1234567890\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/client/api/v2/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}","description":"<h2 id=\"initsession\">initSession</h2>\n<p>Inicia una sesión de verificación de identidad bajo el protocolo <strong>OpenID4VP</strong> con soporte para credenciales <strong>ISO mDL</strong> (Mobile Driving License). Este endpoint genera el contexto de sesión necesario para que el wallet del usuario pueda responder a la solicitud de presentación de credenciales.</p>\n<hr />\n<h3 id=\"endpoint\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST {{api-host}}/client/api/v2/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}\n</code></pre><hr />\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>organization-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único de la organización</td>\n</tr>\n<tr>\n<td><code>project-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único del proyecto dentro de la organización</td>\n</tr>\n<tr>\n<td><code>verification-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único de la verificación a inicializar</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Valor</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{access-token}}</code></td>\n<td>✅</td>\n<td>JWT de acceso obtenido del endpoint de autenticación</td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>✅</td>\n<td>Tipo de contenido del body</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"request-body\">Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"nonce\": \"abcdefgh1234567890\"\n}\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>nonce</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Valor único aleatorio (número usado una sola vez) para prevenir ataques de replay. Debe ser una cadena alfanumérica única por sesión.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"responses\">Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Nombre</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200</code></td>\n<td>success</td>\n<td>Sesión inicializada correctamente. Retorna el contexto de sesión para el flujo de verificación.</td>\n</tr>\n<tr>\n<td><code>409</code></td>\n<td>error-illegal-state</td>\n<td>La verificación ya fue iniciada o completada. No es posible reinicializar la sesión.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["client","api","v2","organizations","{{organization-id}}","projects","{{project-id}}","verifications","{{verification-id}}"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"5f6ad325-9409-493a-bf21-5f3fbdaefd4f","name":"success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"nonce\": \"abcdefgh1234567890\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/client/api/v2/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":""},{"id":"08f080a0-857d-4c28-a468-b4a5dd9f7727","name":"error-illegal-state","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"nonce\": \"abcdefgh1234567890\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/client/api/v2/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 40200,\n  \"error\" : \"Illegal state to execute operation\"\n}"}],"_postman_id":"29e62b06-76f2-40a9-a779-5f85397d625b"},{"name":"SaveSignature","id":"070085b1-b19e-40bd-b069-92716edd7593","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n  \"signature\": \"TMngzD1nbvbsjdAGAiQfhftGY8m-f9MuXq6n_LXjKiJfFtrWucKzTrNHIsCAl-ea1LVUeHH2JkSjdmoxalq2uQ\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/client/api/v2/openid4vp/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}/request/{{requestId}}","description":"<h2 id=\"savesignature\">SaveSignature</h2>\n<p>Guarda la <strong>firma</strong> del request de presentación (JWT) dentro del flujo de verificación <strong>OpenID4VP</strong> con credenciales <strong>ISO mDL</strong>. Este paso se ejecuta después de iniciar la sesión (<code>initSession</code>) y permite firmar el objeto de solicitud de autorización que será entregado al wallet.</p>\n<hr />\n<h3 id=\"endpoint\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PUT {{api-host}}/client/api/v2/openid4vp/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}/request/{{requestId}}\n</code></pre><hr />\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>organization-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único de la organización</td>\n</tr>\n<tr>\n<td><code>project-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único del proyecto</td>\n</tr>\n<tr>\n<td><code>verification-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único de la verificación</td>\n</tr>\n<tr>\n<td><code>requestId</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID del request de presentación a firmar</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Valor</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{access-token}}</code></td>\n<td>✅</td>\n<td>JWT de acceso obtenido del endpoint de autenticación</td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>✅</td>\n<td>Tipo de contenido del body</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"request-body\">Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"signature\": \"TMngzD1nbvbsjdAGAiQfhftGY8m-f9MuXq6n_LXjKiJfFtrWucKzTrNHIsCAl-ea1LVUeHH2JkSjdmoxalq2uQ\"\n}\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>signature</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Firma criptográfica (base64url) del objeto de solicitud de autorización.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"responses\">Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Nombre</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200</code></td>\n<td>success</td>\n<td>Firma guardada correctamente.</td>\n</tr>\n<tr>\n<td><code>409</code></td>\n<td>error-illegal-state</td>\n<td>El estado de la verificación no permite guardar la firma (ya fue firmada o completada).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["client","api","v2","openid4vp","organizations","{{organization-id}}","projects","{{project-id}}","verifications","{{verification-id}}","request","{{requestId}}"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"8fb95806-d016-4f94-8658-81551f3179ea","name":"success","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n  \"signature\": \"TMngzD1nbvbsjdAGAiQfhftGY8m-f9MuXq6n_LXjKiJfFtrWucKzTrNHIsCAl-ea1LVUeHH2JkSjdmoxalq2uQ\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/client/api/v2/openid4vp/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}/request/{{requestId}}"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":""},{"id":"c86477b3-86ef-44c7-bc57-36de1e35c7dd","name":"error-illegal-state","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n  \"signature\": \"TMngzD1nbvbsjdAGAiQfhftGY8m-f9MuXq6n_LXjKiJfFtrWucKzTrNHIsCAl-ea1LVUeHH2JkSjdmoxalq2uQ\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/client/api/v2/openid4vp/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}/request/{{requestId}}"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n  \"code\" : 40200,\n  \"error\" : \"Illegal state to execute operation\"\n}"}],"_postman_id":"070085b1-b19e-40bd-b069-92716edd7593"},{"name":"Get Response pooling","id":"8a40e8ca-b6e2-4fe8-8b3c-0f2c630c071e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{api-host}}/api/v2/openid4vp/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}/response/v2?transaction-id={{transaction-id}}&response_code={{response-code}}","description":"<h2 id=\"get-response-pooling\">Get Response pooling</h2>\n<p>Consulta el <strong>resultado de la verificación</strong> mediante <em>polling</em>. Se invoca de forma periódica hasta que el wallet del usuario responde a la solicitud de presentación de credenciales <strong>ISO mDL</strong> bajo el protocolo <strong>OpenID4VP</strong>.</p>\n<hr />\n<h3 id=\"endpoint\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET {{api-host}}/api/v2/openid4vp/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}/response/v2\n</code></pre><hr />\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>organization-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único de la organización</td>\n</tr>\n<tr>\n<td><code>project-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único del proyecto</td>\n</tr>\n<tr>\n<td><code>verification-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único de la verificación</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>transaction-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID de la transacción generada al iniciar la sesión.</td>\n</tr>\n<tr>\n<td><code>response_code</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Código de respuesta asociado a la sesión de verificación.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Valor</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{access-token}}</code></td>\n<td>✅</td>\n<td>JWT de acceso obtenido del endpoint de autenticación</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"responses\">Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Nombre</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200</code></td>\n<td>success</td>\n<td>La verificación se completó y retorna los datos presentados por el wallet.</td>\n</tr>\n<tr>\n<td><code>409</code></td>\n<td>error-illegal-state</td>\n<td>La verificación aún no está lista o su estado no permite obtener la respuesta.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<p><strong>Nota:</strong> Este endpoint está diseñado para ser consultado repetidamente (polling) hasta obtener un estado final.</p>\n","urlObject":{"path":["api","v2","openid4vp","organizations","{{organization-id}}","projects","{{project-id}}","verifications","{{verification-id}}","response","v2"],"host":["{{api-host}}"],"query":[{"description":{"content":"<p>transactionId </p>\n","type":"text/plain"},"key":"transaction-id","value":"{{transaction-id}}"},{"description":{"content":"<p>responseCode</p>\n","type":"text/plain"},"key":"response_code","value":"{{response-code}}"}],"variable":[]}},"response":[{"id":"deb77ee9-dbbd-420b-b5ce-ace2b9da3ad8","name":"success","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{api-host}}/api/v2/openid4vp/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}/response/v2?transaction-id={{transaction-id}}&response_code={{response-code}}","host":["{{api-host}}"],"path":["api","v2","openid4vp","organizations","{{organization-id}}","projects","{{project-id}}","verifications","{{verification-id}}","response","v2"],"query":[{"key":"transaction-id","value":"{{transaction-id}}"},{"key":"response_code","value":"{{response-code}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n  \"status\": \"COMPLETED\",\n  \"transaction_id\": \"A6Qmx2Ivtp-Mx6MbsRngib7MnCjVNUou\",\n  \"assurance_level\": \"BASIC\",\n  \"effective_tier\": \"BASIC\",\n  \"credentials\": [\n    {\n      \"issuer\": null,\n      \"type\": \"mdl_basic\",\n      \"present\": true,\n      \"result\": {\n        \"credential_valid\": false,\n        \"signature_valid\": false,\n        \"issuer_trusted\": true,\n        \"holder_binding\": \"FAILED\",\n        \"revoked\": false,\n        \"expired\": false,\n        \"warnings\": []\n      },\n      \"data\": {\n        \"format\": \"mso_mdoc\",\n        \"doctype\": null,\n        \"namespaces\": {}\n      }\n    },\n    {\n      \"issuer\": null,\n      \"type\": \"mdl_full\",\n      \"present\": true,\n      \"result\": {\n        \"credential_valid\": false,\n        \"signature_valid\": false,\n        \"issuer_trusted\": true,\n        \"holder_binding\": \"FAILED\",\n        \"revoked\": false,\n        \"expired\": false,\n        \"warnings\": []\n      },\n      \"data\": {\n        \"format\": \"mso_mdoc\",\n        \"doctype\": null,\n        \"namespaces\": {}\n      }\n    }\n  ],\n  \"evidence\": {\n    \"timestamp\": \"2026-06-18T22:42:02.553326Z\"\n  }\n}"},{"id":"c1736a87-9337-47f8-ba2b-792524da8fd8","name":"error-illegal-state","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{api-host}}/api/v2/openid4vp/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}/response/v2?transaction-id={{transaction-id}}&response_code={{response-code}}","host":["{{api-host}}"],"path":["api","v2","openid4vp","organizations","{{organization-id}}","projects","{{project-id}}","verifications","{{verification-id}}","response","v2"],"query":[{"key":"transaction-id","value":"{{transaction-id}}","description":"transactionId "},{"key":"response_code","value":"{{response-code}}","description":"responseCode"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 40200,\n  \"error\" : \"Illegal state to execute operation\"\n}"}],"_postman_id":"8a40e8ca-b6e2-4fe8-8b3c-0f2c630c071e"}],"id":"389b1249-4246-4795-b7ca-99db0f10080b","description":"<h2 id=\"iso-mdl--verificación-de-identidad\">ISO mDL — Verificación de Identidad</h2>\n<p>Este módulo agrupa los endpoints necesarios para ejecutar un flujo completo de verificación de identidad basado en el protocolo <strong>OpenID4VP</strong> con soporte para credenciales <strong>ISO mDL</strong> (Mobile Driving License, ISO/IEC 18013-5).</p>\n<p>El flujo típico es el siguiente:</p>\n<ol>\n<li><strong><code>initSession</code></strong> — Inicia la sesión de verificación y genera el contexto para que el wallet del usuario responda.</li>\n<li><strong><code>SaveSignature</code></strong> — Guarda la firma del request de presentación una vez que el wallet ha respondido.</li>\n<li><strong><code>Get Response pooling</code></strong> — Consulta de forma periódica (polling) el resultado de la verificación hasta obtener la respuesta del wallet.</li>\n</ol>\n<hr />\n<h3 id=\"variables-requeridas\">Variables requeridas</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>{{api-host}}</code></td>\n<td>Host base de la API</td>\n</tr>\n<tr>\n<td><code>{{organization-id}}</code></td>\n<td>ID de la organización</td>\n</tr>\n<tr>\n<td><code>{{project-id}}</code></td>\n<td>ID del proyecto</td>\n</tr>\n<tr>\n<td><code>{{verification-id}}</code></td>\n<td>ID de la verificación</td>\n</tr>\n<tr>\n<td><code>{{access-token}}</code></td>\n<td>JWT de autenticación (Bearer)</td>\n</tr>\n<tr>\n<td><code>{{requestId}}</code></td>\n<td>ID del request de presentación</td>\n</tr>\n<tr>\n<td><code>{{transaction-id}}</code></td>\n<td>ID de la transacción generada en la sesión</td>\n</tr>\n<tr>\n<td><code>{{response-code}}</code></td>\n<td>Código de respuesta del wallet</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"389b1249-4246-4795-b7ca-99db0f10080b"},{"name":"W3C","item":[{"name":"initSession","id":"96dc26f8-91f2-4718-8030-42400cad8e24","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"nonce\": \"abcdefgh1234567890\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/client/api/v2/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}","description":"<h2 id=\"initsession\">initSession</h2>\n<p>Inicia una sesión de verificación de identidad bajo el protocolo <strong>OpenID4VP</strong> para credenciales <strong>W3C</strong> (Verifiable Credentials / Verifiable Presentations). Este endpoint genera el contexto de sesión necesario para que el wallet del usuario pueda responder a la solicitud de presentación de credenciales.</p>\n<hr />\n<h3 id=\"endpoint\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST {{api-host}}/client/api/v2/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}\n</code></pre><hr />\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>organization-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único de la organización</td>\n</tr>\n<tr>\n<td><code>project-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único del proyecto dentro de la organización</td>\n</tr>\n<tr>\n<td><code>verification-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único de la verificación a inicializar</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Valor</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{access-token}}</code></td>\n<td>✅</td>\n<td>JWT de acceso obtenido del endpoint de autenticación</td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n<td>✅</td>\n<td>Tipo de contenido del body</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"request-body\">Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"nonce\": \"abcdefgh1234567890\"\n}\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>nonce</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Valor único aleatorio (número usado una sola vez) que vincula la solicitud con la presentación verificable y previene ataques de replay. Debe ser único por sesión.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"responses\">Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Nombre</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200</code></td>\n<td>success</td>\n<td>Sesión inicializada correctamente. Retorna el contexto de sesión para el flujo de verificación.</td>\n</tr>\n<tr>\n<td><code>400</code></td>\n<td>error-illegal-state</td>\n<td>La verificación ya fue iniciada o completada. No es posible reinicializar la sesión.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"ejemplo-de-respuesta--200-success\">Ejemplo de respuesta — <code>200 success</code></h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"request_id\": \"hy_FPevYU57M6JH0tJXyQq1-bitsLpS2\",\n  \"transaction_id\": \"lOPe6OqaszT2cd0RYB8sbnH_XE8EJEnT\",\n  \"request_uri_method\": \"post\",\n  \"client_id_scheme\": \"did\",\n  \"client_id\": \"did:lac1:1APg651xmH1uLasfyP9escoMAv8ErWsrDkhCvn2dMDH3kqUyv5dHH85KzAfNDt3ZWNU\",\n  \"images\": null\n}\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>request_id</code></td>\n<td>string</td>\n<td>Identificador del request de presentación generado para la sesión.</td>\n</tr>\n<tr>\n<td><code>transaction_id</code></td>\n<td>string</td>\n<td>Identificador de la transacción. Se usa como query param <code>transaction-id</code> en <strong>Get Response pooling</strong>.</td>\n</tr>\n<tr>\n<td><code>request_uri_method</code></td>\n<td>string</td>\n<td>Método HTTP con el que el wallet debe solicitar el request URI (ej. <code>post</code>).</td>\n</tr>\n<tr>\n<td><code>client_id_scheme</code></td>\n<td>string</td>\n<td>Esquema del identificador del cliente verificador (ej. <code>did</code>).</td>\n</tr>\n<tr>\n<td><code>client_id</code></td>\n<td>string</td>\n<td>Identificador (DID) del cliente verificador.</td>\n</tr>\n<tr>\n<td><code>images</code></td>\n<td>object | null</td>\n<td>Recursos visuales asociados a la solicitud (ej. QR). <code>null</code> si no aplica.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"ejemplo-de-respuesta--400-error-illegal-state\">Ejemplo de respuesta — <code>400 error-illegal-state</code></h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"code\": 40200,\n  \"error\": \"Illegal state to execute operation\"\n}\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>code</code></td>\n<td>number</td>\n<td>Código de error interno de Blerify (<code>40200</code> = estado ilegal).</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>string</td>\n<td>Mensaje descriptivo del error.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["client","api","v2","organizations","{{organization-id}}","projects","{{project-id}}","verifications","{{verification-id}}"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"4e977e99-3231-4665-8e5d-6a83786b23d3","name":"success","originalRequest":{"method":"GET","header":[],"url":"{{api-host}}/client/api/v2/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"request_id\": \"hy_FPevYU57M6JH0tJXyQq1-bitsLpS2\",\n  \"transaction_id\": \"lOPe6OqaszT2cd0RYB8sbnH_XE8EJEnT\",\n  \"request_uri_method\": \"post\",\n  \"client_id_scheme\": \"did\",\n  \"client_id\": \"did:lac1:1APg651xmH1uLasfyP9escoMAv8ErWsrDkhCvn2dMDH3kqUyv5dHH85KzAfNDt3ZWNU\",\n  \"images\": null\n}"},{"id":"7d86de42-12c1-4a3e-a7bd-3ec4bbfd9e54","name":"error-illegal-state","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"nonce\": \"abcdefgh1234567890\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-host}}/client/api/v2/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 40200,\n  \"error\" : \"Illegal state to execute operation\"\n}"}],"_postman_id":"96dc26f8-91f2-4718-8030-42400cad8e24"},{"name":"Get Response pooling","id":"2819eb59-867a-4c8b-90a9-a9c25050a08e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{api-host}}/api/v1/openid4vp/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}/response/v2?transaction-id={{transaction-id}}&response_code={{response-code}}","description":"<h2 id=\"get-response-pooling\">Get Response pooling</h2>\n<p>Consulta el <strong>resultado de la verificación</strong> mediante <em>polling</em>. Se invoca de forma periódica hasta que el wallet del usuario responde a la solicitud de presentación de credenciales <strong>W3C</strong> bajo el protocolo <strong>OpenID4VP</strong>.</p>\n<hr />\n<h3 id=\"endpoint\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET {{api-host}}/api/v1/openid4vp/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}/response/v2\n</code></pre><hr />\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>organization-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único de la organización</td>\n</tr>\n<tr>\n<td><code>project-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único del proyecto</td>\n</tr>\n<tr>\n<td><code>verification-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID único de la verificación</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>transaction-id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID de la transacción generada al iniciar la sesión (<code>transaction_id</code> de **initSession`).</td>\n</tr>\n<tr>\n<td><code>response_code</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Código de respuesta asociado a la sesión de verificación.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Valor</th>\n<th>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer {{access-token}}</code></td>\n<td>✅</td>\n<td>JWT de acceso obtenido del endpoint de autenticación</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"responses\">Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Nombre</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200</code></td>\n<td>success</td>\n<td>El wallet respondió. Retorna el estado y las credenciales verificadas.</td>\n</tr>\n<tr>\n<td><code>400</code></td>\n<td>error-illegal-arguments</td>\n<td>Parámetros <code>transaction-id</code> / <code>response_code</code> faltantes o inválidos.</td>\n</tr>\n<tr>\n<td><code>400</code></td>\n<td>error-illegal-state</td>\n<td>La sesión de verificación no está en un estado válido para ser consultada.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"ejemplo-de-respuesta--200-success\">Ejemplo de respuesta — <code>200 success</code></h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"COMPLETED\",\n  \"transaction_id\": \"lOPe6OqaszT2cd0RYB8sbnH_XE8EJEnT\",\n  \"assurance_level\": \"BASIC\",\n  \"effective_tier\": \"BASIC\",\n  \"credentials\": [\n    {\n      \"issuer\": \"did:lac1:1iT5g9gduT4Q5DWE2bnncfnBCnM9uXPWMrCTvhPf2a8wpHWJgFBEZn295t1h9ucnQyvJ\",\n      \"type\": \"education_basic\",\n      \"present\": true,\n      \"result\": {\n        \"credential_valid\": true,\n        \"signature_valid\": true,\n        \"issuer_trusted\": true,\n        \"holder_binding\": \"VERIFIED\",\n        \"revoked\": false,\n        \"expired\": false,\n        \"warnings\": []\n      },\n      \"data\": {\n        \"format\": \"jwt_vc\",\n        \"claims\": {\n          \"id\": \"did:lac1:1iT4pJXCP5YJhPWkXxgNRrGDA8SM4ckNqTTkHPx3NfQRyVGuFfhs5y5kcQmRiDL6rB67\",\n          \"kind\": \"Certificación Profesional\"\n        }\n      }\n    }\n  ],\n  \"evidence\": {\n    \"timestamp\": \"2026-06-19T00:00:36.123456Z\"\n  }\n}\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>Estado de la verificación (ej. <code>COMPLETED</code>).</td>\n</tr>\n<tr>\n<td><code>transaction_id</code></td>\n<td>string</td>\n<td>ID de la transacción consultada.</td>\n</tr>\n<tr>\n<td><code>assurance_level</code></td>\n<td>string</td>\n<td>Nivel de aseguramiento obtenido (ej. <code>BASIC</code>).</td>\n</tr>\n<tr>\n<td><code>effective_tier</code></td>\n<td>string</td>\n<td>Nivel efectivo aplicado a la verificación.</td>\n</tr>\n<tr>\n<td><code>credentials</code></td>\n<td>array</td>\n<td>Lista de credenciales presentadas y su resultado de validación.</td>\n</tr>\n<tr>\n<td><code>credentials[].issuer</code></td>\n<td>string</td>\n<td>DID del emisor de la credencial.</td>\n</tr>\n<tr>\n<td><code>credentials[].type</code></td>\n<td>string</td>\n<td>Tipo de credencial (ej. <code>education_basic</code>, <code>education_full</code>).</td>\n</tr>\n<tr>\n<td><code>credentials[].present</code></td>\n<td>boolean</td>\n<td>Indica si la credencial fue presentada por el wallet.</td>\n</tr>\n<tr>\n<td><code>credentials[].result.credential_valid</code></td>\n<td>boolean</td>\n<td>La credencial es válida.</td>\n</tr>\n<tr>\n<td><code>credentials[].result.signature_valid</code></td>\n<td>boolean</td>\n<td>La firma de la credencial es válida.</td>\n</tr>\n<tr>\n<td><code>credentials[].result.issuer_trusted</code></td>\n<td>boolean</td>\n<td>El emisor es de confianza.</td>\n</tr>\n<tr>\n<td><code>credentials[].result.holder_binding</code></td>\n<td>string</td>\n<td>Estado del vínculo con el titular (ej. <code>VERIFIED</code>).</td>\n</tr>\n<tr>\n<td><code>credentials[].result.revoked</code></td>\n<td>boolean</td>\n<td>Indica si la credencial fue revocada.</td>\n</tr>\n<tr>\n<td><code>credentials[].result.expired</code></td>\n<td>boolean</td>\n<td>Indica si la credencial expiró.</td>\n</tr>\n<tr>\n<td><code>credentials[].result.warnings</code></td>\n<td>array</td>\n<td>Advertencias asociadas a la validación.</td>\n</tr>\n<tr>\n<td><code>credentials[].data.format</code></td>\n<td>string</td>\n<td>Formato de la credencial (ej. <code>jwt_vc</code>).</td>\n</tr>\n<tr>\n<td><code>credentials[].data.claims</code></td>\n<td>object</td>\n<td>Claims (atributos) presentados de la credencial.</td>\n</tr>\n<tr>\n<td><code>evidence.timestamp</code></td>\n<td>string</td>\n<td>Marca de tiempo (ISO 8601) de la evidencia de verificación.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"ejemplo-de-respuesta--400-error-illegal-arguments\">Ejemplo de respuesta — <code>400 error-illegal-arguments</code></h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"code\": 40001,\n  \"error\": \"Illegal argument parameters\"\n}\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>code</code></td>\n<td>number</td>\n<td>Código de error interno (<code>40001</code> = argumentos inválidos).</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>string</td>\n<td>Mensaje descriptivo del error.</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"ejemplo-de-respuesta--400-error-illegal-state\">Ejemplo de respuesta — <code>400 error-illegal-state</code></h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"code\": 40200,\n  \"error\": \"Illegal state to execute operation\"\n}\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>code</code></td>\n<td>number</td>\n<td>Código de error interno (<code>40200</code> = estado ilegal).</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>string</td>\n<td>Mensaje descriptivo del error.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","v1","openid4vp","organizations","{{organization-id}}","projects","{{project-id}}","verifications","{{verification-id}}","response","v2"],"host":["{{api-host}}"],"query":[{"description":{"content":"<p>transactionId </p>\n","type":"text/plain"},"key":"transaction-id","value":"{{transaction-id}}"},{"description":{"content":"<p>responseCode</p>\n","type":"text/plain"},"key":"response_code","value":"{{response-code}}"}],"variable":[]}},"response":[{"id":"4bbeb69c-99bd-4a47-87fe-7a0232ea49e1","name":"success","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{api-host}}/api/v2/openid4vp/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}/response/v2?transaction-id={{transaction-id}}&response_code={{response-code}}","host":["{{api-host}}"],"path":["api","v2","openid4vp","organizations","{{organization-id}}","projects","{{project-id}}","verifications","{{verification-id}}","response","v2"],"query":[{"key":"transaction-id","value":"{{transaction-id}}"},{"key":"response_code","value":"{{response-code}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n  \"status\": \"COMPLETED\",\n  \"transaction_id\": \"lOPe6OqaszT2cd0RYB8sbnH_XE8EJEnT\",\n  \"assurance_level\": \"BASIC\",\n  \"effective_tier\": \"BASIC\",\n  \"credentials\": [\n    {\n      \"issuer\": \"did:lac1:1iT5g9gduT4Q5DWE2bnncfnBCnM9uXPWMrCTvhPf2a8wpHWJgFBEZn295t1h9ucnQyvJ\",\n      \"type\": \"education_basic\",\n      \"present\": true,\n      \"result\": {\n        \"credential_valid\": true,\n        \"signature_valid\": true,\n        \"issuer_trusted\": true,\n        \"holder_binding\": \"VERIFIED\",\n        \"revoked\": false,\n        \"expired\": false,\n        \"warnings\": []\n      },\n      \"data\": {\n        \"format\": \"jwt_vc\",\n        \"claims\": {\n          \"id\": \"did:lac1:1iT4pJXCP5YJhPWkXxgNRrGDA8SM4ckNqTTkHPx3NfQRyVGuFfhs5y5kcQmRiDL6rB67\",\n          \"kind\": \"Certificación Profesional\"\n        }\n      }\n    },\n    {\n      \"issuer\": \"did:lac1:1iT5g9gduT4Q5DWE2bnncfnBCnM9uXPWMrCTvhPf2a8wpHWJgFBEZn295t1h9ucnQyvJ\",\n      \"type\": \"education_full\",\n      \"present\": true,\n      \"result\": {\n        \"credential_valid\": true,\n        \"signature_valid\": true,\n        \"issuer_trusted\": true,\n        \"holder_binding\": \"VERIFIED\",\n        \"revoked\": false,\n        \"expired\": false,\n        \"warnings\": []\n      },\n      \"data\": {\n        \"format\": \"jwt_vc\",\n        \"claims\": {\n          \"id\": \"did:lac1:1iT4pJXCP5YJhPWkXxgNRrGDA8SM4ckNqTTkHPx3NfQRyVGuFfhs5y5kcQmRiDL6rB67\",\n          \"kind\": \"Certificación Profesional\",\n          \"subjectName\": \"Carlos Maravi\"\n        }\n      }\n    }\n  ],\n  \"evidence\": {\n    \"timestamp\": \"2026-06-19T00:00:36.123456Z\"\n  }\n}"},{"id":"54b43bd1-45a4-4c8b-b34c-ee3fe256df7b","name":"error-illegal-state","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{api-host}}/api/v1/openid4vp/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}/response/v2?transaction-id={{transaction-id}}&response_code={{response-code}}","host":["{{api-host}}"],"path":["api","v1","openid4vp","organizations","{{organization-id}}","projects","{{project-id}}","verifications","{{verification-id}}","response","v2"],"query":[{"key":"transaction-id","value":"{{transaction-id}}","description":"transactionId "},{"key":"response_code","value":"{{response-code}}","description":"responseCode"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 40200,\n  \"error\" : \"Illegal state to execute operation\"\n}"},{"id":"e4b274cc-58c0-4abf-a000-7db323e6e50a","name":"error-illegal-arguments","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{api-host}}/api/v1/openid4vp/organizations/{{organization-id}}/projects/{{project-id}}/verifications/{{verification-id}}/response/v2?transaction-id={{transaction-id}}&response_code={{response-code}}","host":["{{api-host}}"],"path":["api","v1","openid4vp","organizations","{{organization-id}}","projects","{{project-id}}","verifications","{{verification-id}}","response","v2"],"query":[{"key":"transaction-id","value":"{{transaction-id}}","description":"transactionId "},{"key":"response_code","value":"{{response-code}}","description":"responseCode"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\": 40001,\n  \"error\": \"Illegal argument parameters\"\n}"}],"_postman_id":"2819eb59-867a-4c8b-90a9-a9c25050a08e"}],"id":"9da46644-ed87-43e2-8216-e6570ace2f86","description":"<h1 id=\"w3c--openid4vp-verification\">W3C — OpenID4VP Verification</h1>\n<p>This folder implements the <strong>OpenID for Verifiable Presentations (OpenID4VP)</strong> flow to request and receive W3C Verifiable Credentials/Presentations from a wallet.</p>\n<h2 id=\"flow-overview\">Flow overview</h2>\n<ol>\n<li><strong>initSession</strong> — Start a verification session for a given verification definition. Returns the data (e.g. request URI / QR / transaction reference) the wallet uses to respond.</li>\n<li><strong>Get Response pooling</strong> — Poll for the wallet's response using the <code>transaction-id</code> and <code>response_code</code> obtained from the session, until the presentation is submitted.</li>\n</ol>\n<h2 id=\"common-path-variables\">Common path variables</h2>\n<ul>\n<li><code>{{api-host}}</code> — Base host of the API.</li>\n<li><code>{{organization-id}}</code> — Organization identifier.</li>\n<li><code>{{project-id}}</code> — Project identifier.</li>\n<li><code>{{verification-id}}</code> — Identifier of the verification definition/session.</li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>All requests use <strong>Bearer token</strong> auth via <code>{{access-token}}</code>.</p>\n","_postman_id":"9da46644-ed87-43e2-8216-e6570ace2f86"}],"id":"eef92233-56c5-4fcb-9750-e86e994f319f","_postman_id":"eef92233-56c5-4fcb-9750-e86e994f319f","description":""},{"name":"Verifier Federation","item":[{"name":"Get Trust Anchor Entity Configuration","id":"fa0f4e81-17d6-4c22-ba4d-a5cb1c88cffc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{federation-host}}/.well-known/openid-federation","description":"<p>Returns the <strong>Trust Anchor Entity Configuration</strong> — a self-issued Entity Statement (<code>iss</code> = <code>sub</code>) signed by the <strong>anchor root key</strong>, served as <code>application/entity-statement+jwt</code> with JOSE header <code>typ: entity-statement+jwt</code> (OpenID Federation 1.0).</p>\n<p><strong>Payload members:</strong></p>\n<ul>\n<li><code>iss</code> / <code>sub</code> — both equal the federation base URL (self-issued)</li>\n<li><code>iat</code> / <code>exp</code> — validity window (long-lived; this document is re-issued only on key rotation)</li>\n<li><code>jwks.keys</code> — <strong>two keys</strong>: the root key itself (the same key the consumer has pinned, in JWK form) and the rotatable <strong>statement-signing key</strong> that signs the short-lived documents</li>\n<li><code>metadata.federation_entity</code> — the organization name and the <code>fetch</code>/<code>list</code> endpoint URLs</li>\n</ul>\n<p><strong>How to consume:</strong></p>\n<ol>\n<li>Verify the JWS signature against the <strong>out-of-band pinned root key</strong> — never against a key taken from the document itself.</li>\n<li>On success, every key in <code>jwks.keys</code> becomes acceptable as a signer of Subordinate Statements and the revocation list (the OpenID Federation chain rule).</li>\n<li>Cache up to <code>exp</code>. A rotation of the statement-signing key is published by re-issuing this document — the pinned root never changes without re-provisioning the app.</li>\n</ol>\n<p><strong>Decoded payload example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"iss\": \"https://federation.blerify.com\",\n  \"sub\": \"https://federation.blerify.com\",\n  \"iat\": 1784847714,\n  \"exp\": 1816383714,\n  \"jwks\": {\n    \"keys\": [\n      {\n        \"kty\": \"EC\",\n        \"crv\": \"P-256\",\n        \"use\": \"sig\",\n        \"x\": \"rpX7FYKf4evXpGDulFPKxxAgZOY-UOydo6ymRI0uphQ\",\n        \"y\": \"54Y5SruIttMgQ96Rbwm_y6XuRXNL0G73NcAcViUa2LI\",\n        \"kid\": \"dev-federation-root-2026\"\n      },\n      {\n        \"kty\": \"EC\",\n        \"crv\": \"P-256\",\n        \"use\": \"sig\",\n        \"x\": \"QNg3XqbzzXGd3hshuBa-gMNsPuWaF8-51mYCJh3B9bU\",\n        \"y\": \"u70xLt-NC76E4gO1ptpmjSbBioIbUAtDWJVrq_VB0IU\",\n        \"kid\": \"dev-statement-signer-2026\"\n      }\n    ]\n  },\n  \"metadata\": {\n    \"federation_entity\": {\n      \"organization_name\": \"Blerify\",\n      \"federation_fetch_endpoint\": \"https://federation.blerify.com/fetch\",\n      \"federation_list_endpoint\": \"https://federation.blerify.com/list\"\n    }\n  }\n}\n</code></pre>\n","urlObject":{"path":[".well-known","openid-federation"],"host":["{{federation-host}}"],"query":[],"variable":[]}},"response":[{"id":"7c7dee50-fc67-4fe1-b79d-dd33bd41f259","name":"success","originalRequest":{"method":"GET","header":[],"url":"{{federation-host}}/.well-known/openid-federation"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[{"key":"Content-Type","value":"application/entity-statement+jwt"},{"key":"Cache-Control","value":"public, max-age=3600"}],"cookie":[],"responseTime":null,"body":"eyJhbGciOiJFUzI1NiIsInR5cCI6ImVudGl0eS1zdGF0ZW1lbnQrand0Iiwia2lkIjoiZGV2LWZlZGVyYXRpb24tcm9vdC0yMDI2In0.eyJpc3MiOiJodHRwczovL2ZlZGVyYXRpb24uYmxlcmlmeS5jb20iLCJzdWIiOiJodHRwczovL2ZlZGVyYXRpb24uYmxlcmlmeS5jb20iLCJpYXQiOjE3ODQ4NDc3MTQsImV4cCI6MTgxNjM4MzcxNCwiandrcyI6eyJrZXlzIjpbeyJrdHkiOiJFQyIsImNydiI6IlAtMjU2IiwidXNlIjoic2lnIiwieCI6InJwWDdGWUtmNGV2WHBHRHVsRlBLeHhBZ1pPWS1VT3lkbzZ5bVJJMHVwaFEiLCJ5IjoiNTRZNVNydUl0dE1nUTk2UmJ3bV95Nlh1UlhOTDBHNzNOY0FjVmlVYTJMSSIsImtpZCI6ImRldi1mZWRlcmF0aW9uLXJvb3QtMjAyNiJ9LHsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsInVzZSI6InNpZyIsIngiOiJRTmczWHFienpYR2QzaHNodUJhLWdNTnNQdVdhRjgtNTFtWUNKaDNCOWJVIiwieSI6InU3MHhMdC1OQzc2RTRnTzFwdHBtalNiQmlvSWJVQXREV0pWcnFfVkIwSVUiLCJraWQiOiJkZXYtc3RhdGVtZW50LXNpZ25lci0yMDI2In1dfSwibWV0YWRhdGEiOnsiZmVkZXJhdGlvbl9lbnRpdHkiOnsib3JnYW5pemF0aW9uX25hbWUiOiJCbGVyaWZ5IiwiZmVkZXJhdGlvbl9mZXRjaF9lbmRwb2ludCI6Imh0dHBzOi8vZmVkZXJhdGlvbi5ibGVyaWZ5LmNvbS9mZXRjaCIsImZlZGVyYXRpb25fbGlzdF9lbmRwb2ludCI6Imh0dHBzOi8vZmVkZXJhdGlvbi5ibGVyaWZ5LmNvbS9saXN0In19fQ.cWt7eJYYDPhRnsQkZDoqnB-GO8z_qrbEFMDDbjmqMMELnhzbKGU7AWNZVxx9-b0EZiBZUlUvPB0wycvON33imA"}],"_postman_id":"fa0f4e81-17d6-4c22-ba4d-a5cb1c88cffc"},{"name":"Fetch Subordinate Statement","id":"4d491f52-245e-42a5-b3d0-463a99e4dcce","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{federation-host}}/fetch?sub={{entity-identifier}}","description":"<p>Returns the <strong>Subordinate Statement</strong> for one organization — its trust-list entry — issued by the trust anchor <em>about</em> the organization and signed by the <strong>statement-signing key</strong> published in the Entity Configuration. Served as <code>application/entity-statement+jwt</code>; short-lived and re-issued periodically.</p>\n<p><strong>Query parameter:</strong> <code>sub</code> — the organization's <strong>URL-encoded</strong> Entity Identifier (<code>https://&lt;federation-host&gt;/orgs/&lt;org-uuid&gt;</code>). Returns <strong>404</strong> when no current statement exists for the given <code>sub</code> — note that absence alone is <strong>not</strong> revocation evidence; revocation is always checked against the revocation list.</p>\n<p><strong>Payload members:</strong></p>\n<ul>\n<li><code>iss</code> — the federation base URL; <code>sub</code> — the organization's Entity Identifier</li>\n<li><code>jwks.keys</code> (top level) — the organization's <strong>federation entity key</strong> (the chain link of OpenID Federation §10.2)</li>\n<li><code>metadata.openid_credential_verifier.jwks</code> — the organization's <strong>trust anchor</strong> for request-time certificate validation: for <code>anchorType: \"ca\"</code> this is the CA certificate itself, carried in <code>x5c</code> (base64 DER) with its <code>x5t#S256</code> thumbprint. Certificates presented by this verifier at request time must chain to it.</li>\n<li><code>metadata.openid_credential_verifier.client_name</code> / <code>client_uri</code> / <code>logo_uri</code> — the <strong>curated</strong> display identity (vetted by the ecosystem operator; render this, never a self-asserted name). <code>client_uri</code> is the organization's website; curated fields are omitted until the operator has vetted a value</li>\n<li><code>com.blerify.trust</code> — extension claim: <code>anchorType</code>, <code>orgId</code>, <code>logo_hash</code> (SHA-256 of the logo bytes — verify the downloaded image against it before rendering), <code>san_dns</code> (the DNS names the organization's signed verification requests present as — the match target for <code>x509_san_dns</code> client identifiers), <code>legal_identity</code> (display copy of the organization's registered legal identity — <code>legal_name</code>, <code>tax_id</code>, <code>country</code> — vetted by the ecosystem operator; omitted until vetted), <code>status</code>, and the monotonic <code>sequence</code> used for anti-rollback</li>\n</ul>\n<p><strong>How to consume:</strong></p>\n<ol>\n<li>Verify the JWS signature with a key from the Entity Configuration's <code>jwks</code> (match by <code>kid</code>).</li>\n<li>Enforce <code>exp</code>, and reject if <code>sequence</code> is lower than the last accepted value for this organization.</li>\n<li>Store the anchor (<code>x5c</code> / <code>x5t#S256</code>) as the organization's trust root for validating its signed verification requests.</li>\n</ol>\n<p><strong>Decoded payload example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"iss\": \"https://federation.blerify.com\",\n  \"sub\": \"https://federation.blerify.com/orgs/11111111-1111-4111-8111-111111111111\",\n  \"iat\": 1784956617,\n  \"exp\": 1785043017,\n  \"jwks\": {\n    \"keys\": [\n      {\n        \"kty\": \"EC\",\n        \"crv\": \"P-256\",\n        \"use\": \"sig\",\n        \"x\": \"tsv2Lu9qRzVlFDMjexCezbrUqCICiori4JLgVWg1MF8\",\n        \"y\": \"q3qXCS4J62_Rht4tLl-RKhXy5hueeMJXO8iaSZyx2sY\",\n        \"kid\": \"XU9Ie8MLiF-00z-kWY2yQLI3BkZg9t6NOYxkQfd6Yzg\"\n      }\n    ]\n  },\n  \"metadata\": {\n    \"openid_credential_verifier\": {\n      \"jwks\": {\n        \"keys\": [\n          {\n            \"kty\": \"EC\",\n            \"crv\": \"P-256\",\n            \"alg\": \"ES256\",\n            \"use\": \"sig\",\n            \"kid\": \"dev-federation-root-2026\",\n            \"x\": \"rpX7FYKf4evXpGDulFPKxxAgZOY-UOydo6ymRI0uphQ\",\n            \"y\": \"54Y5SruIttMgQ96Rbwm_y6XuRXNL0G73NcAcViUa2LI\",\n            \"x5c\": [\n              \"MIIB+DCCAZ2gAwIBAgIUTFJ6HtsNbAfOta6BlzD+CuQo9nIwCgYIKoZIzj0EAwIwWDEUMBIGA1UECgwLQmxlcmlmeSBEZXYxQDA+BgNVBAMMN0JsZXJpZnkgRGV2IEZlZGVyYXRpb24gUm9vdCAoREVNTyAtIE5PVCBGT1IgUFJPRFVDVElPTikwHhcNMjYwNzIzMjI0MDEwWhcNMzEwNzIyMjI0MDEwWjBYMRQwEgYDVQQKDAtCbGVyaWZ5IERldjFAMD4GA1UEAww3QmxlcmlmeSBEZXYgRmVkZXJhdGlvbiBSb290IChERU1PIC0gTk9UIEZPUiBQUk9EVUNUSU9OKTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABK6V+xWCn+Hr16Rg7pRTyscQIGTmPlDsnaOspkSNLqYU54Y5SruIttMgQ96Rbwm/y6XuRXNL0G73NcAcViUa2LKjRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSlrVuS66ESc9Soxmwk3uUOa7cunzAKBggqhkjOPQQDAgNJADBGAiEAmMgVCuyCw8SYcQr2VPEVGupFHxS2x+BakHYiQmk8YOoCIQDw7ooIHzD3VCqRRdldYPtMuv2uy088oBWxZerq19Flxg==\"\n            ],\n            \"x5t#S256\": \"Ax4zbLy_Bc3wKS1q6Bk3w6a4OMf_Guf23Z5avRaPnpI\"\n          }\n        ]\n      },\n      \"client_name\": \"Demo Bank\",\n      \"client_uri\": \"https://www.demobank.example\"\n    }\n  },\n  \"com.blerify.trust\": {\n    \"anchorType\": \"ca\",\n    \"orgId\": \"11111111-1111-4111-8111-111111111111\",\n    \"status\": \"VALID\",\n    \"san_dns\": [\n      \"verifier-one.dev.blerify.com\"\n    ],\n    \"legal_identity\": {\n      \"legal_name\": \"Demo Bank S.A. de C.V.\",\n      \"tax_id\": \"0614-010190-101-0\",\n      \"country\": \"SV\"\n    },\n    \"sequence\": 6\n  }\n}\n</code></pre>\n","urlObject":{"path":["fetch"],"host":["{{federation-host}}"],"query":[{"key":"sub","value":"{{entity-identifier}}"}],"variable":[]}},"response":[{"id":"e0754e11-5706-40ac-8a14-bf6289d0848e","name":"success","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{federation-host}}/fetch?sub={{entity-identifier}}","host":["{{federation-host}}"],"path":["fetch"],"query":[{"key":"sub","value":"{{entity-identifier}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[{"key":"Content-Type","value":"application/entity-statement+jwt"},{"key":"Cache-Control","value":"public, max-age=3600"}],"cookie":[],"responseTime":null,"body":"eyJhbGciOiJFUzI1NiIsInR5cCI6ImVudGl0eS1zdGF0ZW1lbnQrand0Iiwia2lkIjoiZGV2LXN0YXRlbWVudC1zaWduZXItMjAyNiJ9.eyJpc3MiOiJodHRwczovL2ZlZGVyYXRpb24uYmxlcmlmeS5jb20iLCJzdWIiOiJodHRwczovL2ZlZGVyYXRpb24uYmxlcmlmeS5jb20vb3Jncy8xMTExMTExMS0xMTExLTQxMTEtODExMS0xMTExMTExMTExMTEiLCJpYXQiOjE3ODQ5NTY2MTcsImV4cCI6MTc4NTA0MzAxNywiandrcyI6eyJrZXlzIjpbeyJrdHkiOiJFQyIsImNydiI6IlAtMjU2IiwidXNlIjoic2lnIiwieCI6InRzdjJMdTlxUnpWbEZETWpleENlemJyVXFDSUNpb3JpNEpMZ1ZXZzFNRjgiLCJ5IjoicTNxWENTNEo2Ml9SaHQ0dExsLVJLaFh5NWh1ZWVNSlhPOGlhU1p5eDJzWSIsImtpZCI6IlhVOUllOE1MaUYtMDB6LWtXWTJ5UUxJM0JrWmc5dDZOT1l4a1FmZDZZemcifV19LCJtZXRhZGF0YSI6eyJvcGVuaWRfY3JlZGVudGlhbF92ZXJpZmllciI6eyJqd2tzIjp7ImtleXMiOlt7Imt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImtpZCI6ImRldi1mZWRlcmF0aW9uLXJvb3QtMjAyNiIsIngiOiJycFg3RllLZjRldlhwR0R1bEZQS3h4QWdaT1ktVU95ZG82eW1SSTB1cGhRIiwieSI6IjU0WTVTcnVJdHRNZ1E5NlJid21feTZYdVJYTkwwRzczTmNBY1ZpVWEyTEkiLCJ4NWMiOlsiTUlJQitEQ0NBWjJnQXdJQkFnSVVURko2SHRzTmJBZk90YTZCbHpEK0N1UW85bkl3Q2dZSUtvWkl6ajBFQXdJd1dERVVNQklHQTFVRUNnd0xRbXhsY21sbWVTQkVaWFl4UURBK0JnTlZCQU1NTjBKc1pYSnBabmtnUkdWMklFWmxaR1Z5WVhScGIyNGdVbTl2ZENBb1JFVk5UeUF0SUU1UFZDQkdUMUlnVUZKUFJGVkRWRWxQVGlrd0hoY05Nall3TnpJek1qSTBNREV3V2hjTk16RXdOekl5TWpJME1ERXdXakJZTVJRd0VnWURWUVFLREF0Q2JHVnlhV1o1SUVSbGRqRkFNRDRHQTFVRUF3dzNRbXhsY21sbWVTQkVaWFlnUm1Wa1pYSmhkR2x2YmlCU2IyOTBJQ2hFUlUxUElDMGdUazlVSUVaUFVpQlFVazlFVlVOVVNVOU9LVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSzZWK3hXQ24rSHIxNlJnN3BSVHlzY1FJR1RtUGxEc25hT3Nwa1NOTHFZVTU0WTVTcnVJdHRNZ1E5NlJid20veTZYdVJYTkwwRzczTmNBY1ZpVWEyTEtqUlRCRE1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRRXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CMEdBMVVkRGdRV0JCU2xyVnVTNjZFU2M5U294bXdrM3VVT2E3Y3VuekFLQmdncWhrak9QUVFEQWdOSkFEQkdBaUVBbU1nVkN1eUN3OFNZY1FyMlZQRVZHdXBGSHhTMngrQmFrSFlpUW1rOFlPb0NJUUR3N29vSUh6RDNWQ3FSUmRsZFlQdE11djJ1eTA4OG9CV3haZXJxMTlGbHhnPT0iXSwieDV0I1MyNTYiOiJBeDR6Ykx5X0JjM3dLUzFxNkJrM3c2YTRPTWZfR3VmMjNaNWF2UmFQbnBJIn1dfSwiY2xpZW50X25hbWUiOiJEZW1vIEJhbmsiLCJjbGllbnRfdXJpIjoiaHR0cHM6Ly93d3cuZGVtb2JhbmsuZXhhbXBsZSJ9fSwiY29tLmJsZXJpZnkudHJ1c3QiOnsiYW5jaG9yVHlwZSI6ImNhIiwib3JnSWQiOiIxMTExMTExMS0xMTExLTQxMTEtODExMS0xMTExMTExMTExMTEiLCJzdGF0dXMiOiJWQUxJRCIsInNhbl9kbnMiOlsidmVyaWZpZXItb25lLmRldi5ibGVyaWZ5LmNvbSJdLCJsZWdhbF9pZGVudGl0eSI6eyJsZWdhbF9uYW1lIjoiRGVtbyBCYW5rIFMuQS4gZGUgQy5WLiIsInRheF9pZCI6IjA2MTQtMDEwMTkwLTEwMS0wIiwiY291bnRyeSI6IlNWIn0sInNlcXVlbmNlIjo2fX0.6emcf0SVfF7Zj641JISaSQzi_rKyfVws5AGtRdpvtedN0Ijwed3JA2GCrUEFjSspsRmuq0zqQClJe-Ey9lWtOQ"}],"_postman_id":"4d491f52-245e-42a5-b3d0-463a99e4dcce"},{"name":"List Subordinates","id":"c254998b-d7ee-47af-83ad-392559138664","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{federation-host}}/list","description":"<p>Returns the Entity Identifiers of all Immediate Subordinates — the organizations that currently hold a trust-list entry (OpenID Federation §8.2). Plain JSON array, <code>application/json</code>.</p>\n<p>Use it to enumerate the ecosystem and then fetch each organization's Subordinate Statement via the <code>fetch</code> endpoint.</p>\n<p>Revoked organizations drop off this list <strong>and</strong> appear on the revocation list. A consumer must never infer revocation from absence alone — always check presented certificates against the revocation list.</p>\n","urlObject":{"path":["list"],"host":["{{federation-host}}"],"query":[],"variable":[]}},"response":[{"id":"709e873c-4269-4578-a030-bbd84665c6a2","name":"success","originalRequest":{"method":"GET","header":[],"url":"{{federation-host}}/list"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Cache-Control","value":"public, max-age=3600"}],"cookie":[],"responseTime":null,"body":"[\n \"https://federation.blerify.com/orgs/11111111-1111-4111-8111-111111111111\",\n \"https://federation.blerify.com/orgs/22222222-2222-4222-8222-222222222222\"\n]"}],"_postman_id":"c254998b-d7ee-47af-83ad-392559138664"},{"name":"Get Revocation List","id":"501c82aa-062d-4c68-8129-f050776d0ba6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{federation-host}}/revocation","description":"<p>Returns the <strong>positive revocation-list statement</strong> — a Blerify profile extension (not an OpenID Federation endpoint) signed with the statement-signing key, JOSE header <code>typ: blerify-revocation-list+jwt</code>. Deliberately <strong>short-lived</strong> and re-issued frequently, so revocations propagate on a faster clock than the trust documents; entries are retained <strong>past certificate expiry</strong> so a consumer returning from a long offline period still learns that a cached certificate was revoked.</p>\n<p><strong>Payload members:</strong></p>\n<ul>\n<li><code>iss</code>, <code>iat</code>, <code>exp</code> — issuer and validity window</li>\n<li><code>sequence</code> — monotonic anti-rollback counter</li>\n<li><code>revoked[]</code> — one entry per revoked certificate: <code>x5t#S256</code> (base64url SHA-256 thumbprint of the DER certificate — the match target), <code>orgId</code>, <code>revokedAt</code> (epoch seconds), and optionally <code>revocationReason</code></li>\n</ul>\n<p><strong>How to consume:</strong></p>\n<ol>\n<li>Verify the JWS signature with the statement-signing key from the Entity Configuration.</li>\n<li>Enforce <code>exp</code> and the monotonic <code>sequence</code>.</li>\n<li>Check <strong>every certificate presented by a verifier</strong> against the <code>x5t#S256</code> entries — revocation is positive evidence, never inferred from a statement's absence.</li>\n</ol>\n<p><strong>Decoded payload example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"iss\": \"https://federation.blerify.com\",\n  \"iat\": 1784847714,\n  \"exp\": 1784851314,\n  \"revoked\": [\n    {\n      \"x5t#S256\": \"B9W3cVCd82aGsloeWP59H2kiLDn0Qkwb9RX9tpDhlLg\",\n      \"orgId\": \"33333333-3333-4333-8333-333333333333\",\n      \"revokedAt\": 1784846451,\n      \"revocationReason\": \"demo-revocation\"\n    }\n  ],\n  \"sequence\": 3\n}\n</code></pre>\n","urlObject":{"path":["revocation"],"host":["{{federation-host}}"],"query":[],"variable":[]}},"response":[{"id":"83517936-37c8-4e1e-aac3-869ab30e91cd","name":"success","originalRequest":{"method":"GET","header":[],"url":"{{federation-host}}/revocation"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[{"key":"Content-Type","value":"application/jwt"},{"key":"Cache-Control","value":"public, max-age=3600"}],"cookie":[],"responseTime":null,"body":"eyJhbGciOiJFUzI1NiIsInR5cCI6ImJsZXJpZnktcmV2b2NhdGlvbi1saXN0K2p3dCIsImtpZCI6ImRldi1zdGF0ZW1lbnQtc2lnbmVyLTIwMjYifQ.eyJpc3MiOiJodHRwczovL2ZlZGVyYXRpb24uYmxlcmlmeS5jb20iLCJpYXQiOjE3ODQ4NDc3MTQsImV4cCI6MTc4NDg1MTMxNCwicmV2b2tlZCI6W3sieDV0I1MyNTYiOiJCOVczY1ZDZDgyYUdzbG9lV1A1OUgya2lMRG4wUWt3YjlSWDl0cERobExnIiwib3JnSWQiOiIzMzMzMzMzMy0zMzMzLTQzMzMtODMzMy0zMzMzMzMzMzMzMzMiLCJyZXZva2VkQXQiOjE3ODQ4NDY0NTEsInJldm9jYXRpb25SZWFzb24iOiJkZW1vLXJldm9jYXRpb24ifV0sInNlcXVlbmNlIjozfQ.YWlPlZX_Pl_LWdfJgCh07gn4Q23QSoU--12yDUAHZSUfV5Pnx-X_V3mULiVi48tfeb4Dt6QbbbJD9KGm-KmEUw"}],"_postman_id":"501c82aa-062d-4c68-8129-f050776d0ba6"}],"id":"b3de99bb-e87a-4d5d-ad89-da4860f96fe9","description":"<p>The OpenID Federation-shaped <strong>verifier trust list</strong> — how wallets and other consumers learn which verifier organizations to trust, what keys and certificates identify them, and which of them have been revoked. All endpoints are <code>GET</code>, unauthenticated, and CDN-cacheable.</p>\n<p><strong>Trust bootstrap.</strong> A consumer ships with exactly two provisioned items: the <strong>pinned Blerify root key</strong> and the federation base URL (<code>{{federation-host}}</code>). Every organization anchor, display name, and logo arrives <em>signed</em> through these endpoints — onboarding a new organization never requires an app update.</p>\n<p><strong>Validity — two layers.</strong> The authoritative validity lives <em>inside</em> each signed document: <code>iat</code>/<code>exp</code> plus a monotonically increasing <code>sequence</code> for anti-rollback (a consumer must reject a document whose <code>sequence</code> is lower than the last one it accepted). HTTP <code>Cache-Control</code>/<code>ETag</code> headers are advisory hints for caches only — never use them for validity decisions.</p>\n<p><strong>Entity Identifiers.</strong> Each organization is identified by a stable URL of the form <code>https://&lt;federation-host&gt;/orgs/&lt;org-uuid&gt;</code>. The human-readable name lives in the signed <code>client_name</code> metadata, never in the identifier.</p>\n<p><strong>Variables:</strong> <code>federation-host</code> — the federation base URL for the target environment; <code>entity-identifier</code> — an organization's Entity Identifier (URL-encoded when used as a query parameter).</p>\n<p>Example responses are real signed artifacts from a development environment (demo organizations, development PKI).</p>\n<p><strong>Note on the example bodies:</strong> Entity Statements and the revocation list are <em>public signed documents</em> — they carry only public keys and public metadata and grant no access. They are not bearer tokens or secrets, even though they share the JWT format.</p>\n","_postman_id":"b3de99bb-e87a-4d5d-ad89-da4860f96fe9"},{"name":"Templates","item":[{"name":"Get Templates","id":"c584cb6b-48b5-4887-8354-fb097cc6fd54","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access-token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/templates/summary","urlObject":{"path":["api","v1","organizations","{{organization-id}}","projects","{{project-id}}","templates","summary"],"host":["{{api-host}}"],"query":[],"variable":[]}},"response":[{"id":"111e1c7f-9d6d-4642-a8ad-16b6c978af2a","name":"success","originalRequest":{"method":"GET","header":[],"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/templates/summary"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"templates\" : [ {\n    \"id\" : \"0cd6e22b-7ef0-4c66-b88a-70fead24c57c\",\n    \"title\" : \"Ingeniería en Ciberseguridad\",\n    \"image\" : \"https://cdn.blerify.com/templates/8d684ba2-b6bd-4349-8cf6-49d9911eb3ed\",\n    \"description\" : \"Testing\"\n  }, {\n    \"id\" : \"9bb86488-45a2-48c5-8b2b-fd3f6084a2e2\",\n    \"title\" : \"Ingeniería en Muñecas\",\n    \"image\" : \"https://cdn.blerify.com/templates/8d684ba2-b6bd-4349-8cf6-49d9911eb3ed\",\n    \"description\" : \"Ingeniería muy demandada\"\n  }, {\n    \"id\" : \"aad6e22b-7ef0-4c66-b88a-70fead24c57c\",\n    \"title\" : \"ISO 18013 mDL\",\n    \"image\" : \"https://cdn.blerify.com/templates/8d684ba2-b6bd-4349-8cf6-49d9911eb3ed\",\n    \"description\" : \"ISO 18013 mDL Test\"\n  }, {\n    \"id\" : \"0d633d03-7251-4397-953f-75eecba003e3\",\n    \"title\" : \"New Template\",\n    \"image\" : \"NO_IMAGE\",\n    \"description\" : \"example template for credentials\"\n  }, {\n    \"id\" : \"01c08117-ed2a-4e5d-a327-75c2da8a506c\",\n    \"title\" : \"New Template\",\n    \"image\" : \"NO_IMAGE\",\n    \"description\" : \"example template for credentials\"\n  }]\n}"},{"id":"00f0bec4-d128-492b-9e36-803431d99cd2","name":"success_empty","originalRequest":{"method":"GET","header":[],"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/templates/summary"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"templates\" : [ ]\n}"},{"id":"6841f87a-5870-4c58-8ec6-712e0577b0c5","name":"error-bad-request","originalRequest":{"method":"GET","header":[],"url":"{{api-host}}/api/v1/organizations/{{organization-id}}/projects/{{project-id}}/templates/summary"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n  \"code\" : 40001,\n  \"error\" : \"Illegal argument parameters\"\n}"}],"_postman_id":"c584cb6b-48b5-4887-8354-fb097cc6fd54"}],"id":"cefddd47-fe2c-4fc9-aacf-24f82e9c21ec","_postman_id":"cefddd47-fe2c-4fc9-aacf-24f82e9c21ec","description":""}]}