{
  "info": {
    "name": "Zign API v1 — NOM-151",
    "description": "Configura las variables baseUrl y ZIGN_API_KEY. Empieza por Health, luego emite tu primera constancia NOM-151.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{ZIGN_API_KEY}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://zerozign.com/api/public/v1"
    },
    {
      "key": "ZIGN_API_KEY",
      "value": "cfk_xxxxxxxx_xxxxxxxx"
    },
    {
      "key": "sha256",
      "value": "3f786850e387550fdab836ed7e6dc881de23001b3f0cbc4b0d1a4f4a1d9ca1a5"
    },
    {
      "key": "folio",
      "value": ""
    },
    {
      "key": "constanciaBase64",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "1. Health",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/health",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "health"
          ]
        }
      }
    },
    {
      "name": "2. Emitir constancia NOM-151",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/nom151/constancias",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "nom151",
            "constancias"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"sha256\": \"{{sha256}}\",\n  \"fileName\": \"contrato-4471.pdf\",\n  \"externalId\": \"ERP-4471\"\n}"
        }
      },
      "event": [
        {
          "listen": "test",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const r = pm.response.json();",
              "if (r.folio) pm.collectionVariables.set(\"folio\", r.folio);",
              "if (r.hashProcessed || r.sha256) pm.collectionVariables.set(\"sha256\", r.hashProcessed || r.sha256);",
              "if (r.constanciaBase64) pm.collectionVariables.set(\"constanciaBase64\", r.constanciaBase64);"
            ]
          }
        }
      ]
    },
    {
      "name": "3. Recuperar constancia",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/nom151/constancias/{{folio}}",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "nom151",
            "constancias",
            "{{folio}}"
          ]
        }
      }
    },
    {
      "name": "4. Listar constancias",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/nom151/constancias?page=1&pageSize=25",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "nom151",
            "constancias?page=1&pageSize=25"
          ]
        }
      }
    },
    {
      "name": "5. Validar constancia",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/nom151/validate",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "nom151",
            "validate"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"sha256\": \"{{sha256}}\",\n  \"folio\": \"{{folio}}\",\n  \"constanciaBase64\": \"{{constanciaBase64}}\"\n}"
        }
      }
    },
    {
      "name": "6. Verificación pública",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/verify/{{sha256}}",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "verify",
            "{{sha256}}"
          ]
        }
      }
    }
  ]
}