Compliance

    Run catalogue-driven regulatory probes against an IVR. Pick test ids from the catalogue, dispatch a batch, then fetch the structured report or render a PDF. Reports are keyed by E.164 phone number.

    6 endpoints

    Real-time updates

    The platform UI subscribes to a WebSocket gateway for live status as runs complete. The WebSocket gateway is Cognito-authenticated and not exposed to API-key callers. Poll GET /testing/mission-tests/{id} or GET /testing/compliance-reports/{phoneNumber} for status from the SDK.

    GET/testing/compliance-catalogue

    Fetch the live regulation and test catalogue, picker limit, available compliance-testing seconds, and tier. Fetch this endpoint to see the live list of regulations and tests.

    Request

    bash
    curl -H "x-api-key: YOUR_API_KEY" \
      https://api.nopaque.co.uk/testing/compliance-catalogue

    Response

    json
    {
      "catalogue": {
        "version": "2026.05.01",
        "regulations": [
          {
            "key": "gdpr",
            "name": "GDPR",
            "description": "General Data Protection Regulation"
          }
        ],
        "tests": [
          {
            "id": "gdpr.identity-verification",
            "regulationKey": "gdpr",
            "name": "Identity verification",
            "description": "Verifies the agent confirms identity before disclosing personal data."
          }
        ]
      },
      "pickerLimit": 10,
      "complianceSecondsAvailable": null,
      "tier": "team"
    }
    POST/testing/compliance-runs

    Atomic batch dispatch from selected testIds. All selected tests are dispatched together or none are. Returns 400 with errorCode BATCH_SIZE_EXCEEDS_TIER if the batch exceeds your tier picker limit.

    Body Parameters

    NameTypeRequiredDescription
    phoneNumberstringrequiredPhone number to test in E.164 format (e.g. +441234567890)
    sectorstringrequiredSector key from the catalogue
    testIdsstring[]requiredArray of test ids selected from the catalogue

    Request

    bash
    curl -X POST -H "x-api-key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"phoneNumber":"+441234567890","sector":"banking","testIds":["gdpr.identity-verification","gdpr.data-minimisation"]}' \
      https://api.nopaque.co.uk/testing/compliance-runs

    Response

    json
    {
      "runs": [
        {
          "runId": "crun_abc123",
          "testId": "gdpr.identity-verification",
          "status": "queued"
        },
        {
          "runId": "crun_def456",
          "testId": "gdpr.data-minimisation",
          "status": "queued"
        }
      ]
    }
    GET/testing/compliance-reports

    List workspace-wide compliance audits, keyed by phone number.

    Query Parameters

    NameTypeRequiredDescription
    limitnumberoptionalMaximum items to return (default 50)
    nextTokenstringoptionalPagination token from previous response

    Request

    bash
    curl -H "x-api-key: YOUR_API_KEY" \
      https://api.nopaque.co.uk/testing/compliance-reports

    Response

    json
    {
      "items": [
        {
          "phoneNumber": "+441234567890",
          "sector": "banking",
          "status": "completed",
          "updatedAt": "2026-05-06T12: 05: 00Z"
        }
      ],
      "nextToken": null
    }
    GET/testing/compliance-reports/{phoneNumber}

    Get the compliance report for a phone number. The path parameter is E.164 with the leading + URL-encoded as %2B.

    Path Parameters

    NameTypeRequiredDescription
    phoneNumberstringrequiredE.164 phone number with leading + URL-encoded as %2B (e.g. %2B441234567890)

    Request

    bash
    curl -H "x-api-key: YOUR_API_KEY" \
      https://api.nopaque.co.uk/testing/compliance-reports/%2B441234567890

    Response

    json
    {
      "phoneNumber": "+441234567890",
      "sector": "banking",
      "status": "completed",
      "runs": [
        {
          "runId": "crun_abc123",
          "testId": "gdpr.identity-verification",
          "status": "pass"
        },
        {
          "runId": "crun_def456",
          "testId": "gdpr.data-minimisation",
          "status": "fail"
        }
      ],
      "updatedAt": "2026-05-06T12: 05: 00Z"
    }
    POST/testing/compliance-reports/{phoneNumber}/pdf

    Generate a PDF for a compliance report. Returns a presigned URL pointing at the rendered PDF.

    Path Parameters

    NameTypeRequiredDescription
    phoneNumberstringrequiredE.164 phone number with leading + URL-encoded as %2B

    Body Parameters

    NameTypeRequiredDescription
    regulationKeystringoptionalOptional regulation key to scope the PDF to a single regulation

    Request

    bash
    curl -X POST -H "x-api-key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"regulationKey":"gdpr"}' \
      https://api.nopaque.co.uk/testing/compliance-reports/%2B441234567890/pdf

    Response

    json
    {
      "url": "https://nopaque-compliance-pdfs.s3.amazonaws.com/wks_abc/441234567890.pdf?X-Amz-Signature=..."
    }
    POST/testing/compliance-runs/{runId}/rerun

    Re-dispatch a single compliance test run. Returns the new run record.

    Path Parameters

    NameTypeRequiredDescription
    runIdstringrequiredCompliance run id to re-dispatch

    Request

    bash
    curl -X POST -H "x-api-key: YOUR_API_KEY" \
      https://api.nopaque.co.uk/testing/compliance-runs/crun_abc123/rerun

    Response

    json
    {
      "runId": "crun_ghi789",
      "testId": "gdpr.identity-verification",
      "status": "queued",
      "previousRunId": "crun_abc123"
    }