TransUnion Verification Service API

Currently, a RESTful API client is required to provide an 'apiKey' query parameter with a pre-provisioned value to access API calls that are restricted. If the 'apiKey' parameter is not specified, the client IP address may be used as the backup authentication mechanism if pre-provisioned. Three different API entry points are defined for SIP Identity header verification: * Accepts requests in JSON format and produces responses in JSON format * Accepts text messages and produces responses in JSON format * Accepts text messages and produces responses in SIP format

Operations 3

POST /verify/v2/identityj-j Request & Response in JSON Format #
POST /verify/v2/identitys-j Text Message & Response in JSON Format #
POST /verify/v2/identitys-s Text Message & Response in Text Format #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/transunion-verification-service-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

transunion-verification-service-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  x-logo:
    url: https://raw.githubusercontent.com/neustar/tcs-apis/main/docs/newNeustarLogo.jpeg
    altText: STIR/SHAKEN Authentication & Verification Service APIs
  version: 1.0.0
  title: STIR/SHAKEN Authentication Verification Service API
  summary: null
  description: "# Overview\n  Secure Telephone Identity Revisited (STIR) and the Signature-based Handling of Asserted information using toKENs (SHAKEN) framework have already become regulatory mandates in both the United States and Canada for caller identity authentication.  These IETF and ATIS standards define how to securely compute, transit and verify SIP Identity headers through an Authentication Service (AS) and Verification Service (VS).\n\n  Since their initial implementation, STIR and SHAKEN standards have been (and continue to be) extended in multiple ways.  Additionally, the AS and VS can support supplemental features including, but not limited to telephone number ownership validation, subscriber-based policy management and robocall analytics.\n  \n  The AS and VS implement call authentication and related functions ideally through flexible, extensible, robust and standardized Application Program Interfaces (APIs).  Many initial implementations of the SHAKEN framework employ RESTful API clients, but these are constrained to only supporting base functionality.  The STIR/SHAKEN API project promotes collaboration to expand functionality, while hopefully also achieving industry alignment amongst various RESTful API implementations and/or applicable standards, where possible.\n\n  There are generally two ways to authenticate a RESTful API client - 'apiKey' or 'coming from a whitelisted client IP'.  Both are initially supported in the STIR/SHAKEN API project.  If a RESTful API client chooses to use 'apiKey' for authentication, an 'apiKey' query parameter, with a pre-provisioned value, is validated to access API calls that are restricted. If the 'apiKey' parameter is not specified, a pre-provisioned client IP address may be used as the backup authentication mechanism.  The server first checks for availability of an 'apiKey' in the query parameter and if it doesn't find one, it tries to authenticate via the client IP address.\n\n  The primary objective of the STIR/SHAKEN API project is to foster broad and open industry collaboration amongst developers and implementers of (or those desiring to implement) RESTful APIs for timely and extensible support of evolving caller identity authentication standards, including supplemental feature support as required.  The core set of ATIS SHAKEN standards supported in this project, including their underlying and/or referenced IETF and 3GPP standards, are:\n  * ATIS-1000074, “SHAKEN”\n  * ATIS-1000078, “National Security / Emergency Preparedness Priority Service SIP RPH Signing and Verification using PASSporTs”\n  * ATIS-1000080, “SHAKEN: Governance Model and Certificate Management”\n  * ATIS-1000084, “Operational and Management Considerations for SHAKEN STI Certification Authorities and Policy Administrators”\n  * ATIS-1000085, “SHAKEN: SHAKEN Support of “div” PASSporT”\n  * ATIS-1000092, “SHAKEN: Delegate Certificates\n  * ATIS-1000093, “Toll-Free Numbers in the SHAKEN Framework”\n  * ATIS-1000094, “SHAKEN: Calling Name and Rich Call Data Handling Procedures”\n  * ATIS-1000098, “SIP Resource-Priority Header and Priority Header Signing in Support of Emergency Calling”\n\nLooking forward to your support, feedback and contributions.\n"
servers:
- url: https://{hostname}:{port}/{optionalRoutingPath}
  description: https
tags:
- name: Verification Service
  description: "Currently, a RESTful API client is required to provide an 'apiKey' query parameter with a pre-provisioned value to access API calls that are restricted. If the 'apiKey' parameter is not specified, the client IP address may be used as the backup authentication mechanism if pre-provisioned.\n\nThree different API entry points are defined for SIP Identity header verification:\n  * Accepts requests in JSON format and produces responses in JSON format\n  * Accepts text messages and produces responses in JSON format\n  * Accepts text messages and produces responses in SIP format\n"
paths:
  /verify/v2/identityj-j:
    post:
      tags:
      - Verification Service
      description: 'This API entry point accepts requests and produces responses in JSON Format.

        '
      summary: Request & Response in JSON Format
      operationId: verify/identityj-j
      parameters:
      - in: query
        name: apiKey
        schema:
          type: string
        description: Required, if client chooses to authenticate via apiKey. Not required, if client chooses to authenticate via pre-provisioned client IP
      - name: status
        in: query
        description: Only applicable for SIP INVITE message. The verification status requirement
        required: false
        style: form
        schema:
          type: string
      - name: origcc
        in: query
        description: Only applicable for SIP INVITE message. Default country codes for the originator telephone number
        required: false
        style: form
        schema:
          type: string
      - name: destcc
        in: query
        required: false
        description: Only applicable for SIP INVITE message. Default country code for the destination telephone number
        schema:
          type: string
      - name: cnam
        in: query
        description: Only applicable for SIP INVITE message. Flag for performing CNAM lookup
        required: false
        style: form
        schema:
          type: boolean
      - name: robocall
        in: query
        description: Only applicable for SIP INVITE message. Flag for returning Robocall Call Insight data
        required: false
        style: form
        schema:
          type: boolean
      - name: cnamPrefix
        in: query
        description: Only applicable for SIP INVITE message. Prefix applied to to CNAM data field, indicating if SIP Identity header is verified or not
        required: false
        style: form
        schema:
          type: string
      - name: verstat
        in: query
        description: Only applicable for SIP INVITE message. Verstat value as defined in ETSI TS 124 299, for performing tagging and SIP Identity headers optionally removed
        required: false
        style: form
        schema:
          type: string
      - name: identity
        in: query
        description: Only applicable for SIP INVITE message. Boolean flag for including SIP Identity header when the "verstat" parameter is specified, with the default value as "true"
        required: false
        style: form
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyIdentity'
          text/plain:
            examples:
              request:
                value: 'INVITE sip:+15715550001@proxy.example.com;transport=UDP SIP/2.0

                  v: SIP/2.0/UDP proxy.example.com:39089;branch=z9hG4bK-d8754za

                  Max-Forwards: 70

                  m: "alice" <sip:alice@proxy.example.com:39089;transport=UDP>

                  f: "alice" <sip:+15715550000@example.com>;tag=1f4e4f40

                  t: "bob" <sip:+15715550001@example.com>

                  Date: Fri, 16 Apr 2021 02:56:54 GMT

                  i: YzRlZDFlYzYyM2IwOTdlMzk0MDA3MTRmZmY3OGIzODM.

                  y: eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cDovL2NhLmV4YW1wbGUuY29tL3Rlc3QuZGVyIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxNTcxNTU1MDAwMSJdfSwiaWF0IjoxNjE4NTQxODE0LCJta3kiOlt7ImFsZyI6IlNIQS0xIiwiZGlnIjoiNEFBREI5QjEzRjgyMTgzQjU0MDIxMkRGM0U1RDQ5NkIxOUU1N0NBQiJ9LHsiYWxnIjoiU0hBLTI1NiIsImRpZyI6IjM2M0JBRTEyOTU5NUY1OTcyREY3RTA4NEZFQ0RGMUJDQUQ3QTcwNjRGN0U3NEY3RUE2MDIwNjBFMzc1NENGRjcifV0sIm9yaWciOnsidG4iOiIxNzAzNTU1MDAwMSJ9LCJvcmlnaWQiOiIxMjM0NTYtQUJDRC05OTk5OTkifQ.yd8hFUIVEbXiZI4NTbLeepUkuEpkKAo_DQZmc2BivqJxGAnbZO2j4iljprTrka-3jLOj6ZSXo-y91879cUYZ-A;info=<http://ca.example.com/test.der>;alg=ES256;ppt="shaken"

                  P-Asserted-Identity: "Alice" <tel:+17035550001>

                  P-Asserted-Identity: "Alice" <sip:+17035550001@example.com>

                  CSeq: 2 INVITE

                  c: application/sdp

                  User-Agent: Z 3.3.25608 r25552

                  k: replaces, norefersub, extended-refer, timer

                  Allow-Events: presence, kpml

                  l: 439


                  v=0

                  o=Z 0 0 IN IP4 10.31.32.251

                  s=Z

                  c=IN IP4 10.31.32.251

                  t=0 0

                  m=audio 8000 RTP/AVP 8 0 3 110 98 101

                  a=fingerprint:SHA-1 4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB

                  a=fingerprint:SHA-256 36:3B:AE:12:95:95:F5:97:2D:F7:E0:84:FE:CD:F1:BC:AD:7A:70:64:F7:E7:4F:7E:A6:02:06:0E:37:54:CF:F7

                  a=rtpmap:110 speex/8000

                  a=rtpmap:98 iLBC/8000

                  a=fmtp:98 mode=20

                  a=rtpmap:101 telephone-event/8000

                  a=fmtp:101 0-15

                  a=sendrecv

                  '
            required: true
        required: true
      x-code-samples:
      - lang: curl
        label: STIR
        source: "Request: \ncurl 'https://{hostname}:{port}/{optionalRoutingPath}/verify/v2/identity?apiKey=10679965b0504406a3f02cc4' -i -X POST \\\n    -H 'Content-Type: application/json' \\\n    -H 'Accept: application/json' \\\n    -d '{\n          \"from\" : \"\\\"Alice\\\" <sip:+17035550001@example.com>\",\n          \"to\" : \"\\\"Bob\\\" <sip:+15715550000@example.com>\",\n          \"identity\" : [ \"eyJhbGciOiJFUzI1NiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9jci11YXQuY2NpZC5uZXVzdGFyLmJpei9jY2lkL2F1dGhuL3YyL2NlcnRzLzExNDc1LjEwMDAxIn0.eyJkZXN0Ijp7InRuIjpbIjE1NzE1NTUwMDAwIl19LCJpYXQiOjE2MzQyNDIwMTcsIm9yaWciOnsidG4iOiIxNzAzNTU1MDAwMSJ9fQ.q2JsLmI-ApIqPpPVnsoQNrD4tpdFv5lLD-80PrJ6WB8YDVF_70CEUetBjxI8-4-5gH91Hu3xLkDqmTeNUUatIw;info=<https://cr-uat.ccid.neustar.biz/ccid/authn/v2/certs/11475.10001>;alg=ES256\" ]\n        }'\n\nResponse: \n{\n  \"status\" : \"ok\"\n}\n"
      - lang: curl
        label: SHAKEN
        source: "Request: \ncurl 'https://{hostname}:{port}/{optionalRoutingPath}/verify/v2/identity?apiKey=10679965b0504406a3f02cc4' -i -X POST \\\n    -H 'Content-Type: application/json' \\\n    -H 'Accept: application/json' \\\n    -d '{\n          \"from\" : \"\\\"Alice\\\" <sip:+17035550001@example.com>\",\n          \"to\" : \"\\\"Bob\\\" <sip:+15715550000@example.com>\",\n          \"identity\" : [ \"eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9jci11YXQuY2NpZC5uZXVzdGFyLmJpei9jY2lkL2F1dGhuL3YyL2NlcnRzLzExNDc1LjEwMDAxIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxNTcxNTU1MDAwMCJdfSwiaWF0IjoxNjM0MjQyMTk4LCJvcmlnIjp7InRuIjoiMTcwMzU1NTAwMDEifSwib3JpZ2lkIjoiM0Y5QzI4MzYtN0U0MC0xMUU3LUJBNTgtNzgzMUMxQjhERUJBIn0.j3N_z0Eu7I_dcNQ9BTdoZ7AoBFRCetBX4RzOfj2vNSENJ4EdKUpehijGa8xy-5kZgV3I_alJsKxI8XoV2aTm5w;info=<https://cr-uat.ccid.neustar.biz/ccid/authn/v2/certs/11475.10001>;alg=ES256;ppt=\\\"shaken\\\"\" ]\n        }'\n\nResponse: \n{\n  \"status\" : \"ok\"\n}\n"
      - lang: curl
        label: SHAKEN w/verstat
        source: "Request: \ncurl 'https://{hostname}:{port}/{optionalRoutingPath}/verify/v2/identity?apiKey=10679965b0504406a3f02cc4' -i -X POST \\\n    -H 'Content-Type: application/json' \\\n    -H 'Accept: application/json' \\\n    -d '{\n          \"from\" : \"\\\"Alice\\\" <sip:+17035550001@example.com>\",\n          \"to\" : \"\\\"Bob\\\" <sip:+15715550000@example.com>\",\n          \"identity\" : [ \"eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9jci11YXQuY2NpZC5uZXVzdGFyLmJpei9jY2lkL2F1dGhuL3YyL2NlcnRzLzExNDc1LjEwMDAxIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxNTcxNTU1MDAwMCJdfSwiaWF0IjoxNjM0MjQyMTk4LCJvcmlnIjp7InRuIjoiMTcwMzU1NTAwMDEifSwib3JpZ2lkIjoiM0Y5QzI4MzYtN0U0MC0xMUU3LUJBNTgtNzgzMUMxQjhERUJBIn0.j3N_z0Eu7I_dcNQ9BTdoZ7AoBFRCetBX4RzOfj2vNSENJ4EdKUpehijGa8xy-5kZgV3I_alJsKxI8XoV2aTm5w;info=<https://cr-uat.ccid.neustar.biz/ccid/authn/v2/certs/11475.10001>;alg=ES256;ppt=\\\"shaken\\\"\" ],\n          \"verstat\" : true \n        }'\n\nResponse: \n{\n  \"status\" : \"ok\",\n  \"verstat\" : \"TN-Validation-Passed\"\n}\n"
      - lang: curl
        label: DIV
        source: "Request: \ncurl 'https://{hostname}:{port}/{optionalRoutingPath}/verify/v2/identity?apiKey=10679965b0504406a3f02cc4' -i -X POST \\\n    -H 'Content-Type: application/json' \\\n    -H 'Accept: application/json' \\\n    -d '{\n          \"from\" : \"\\\"Alice\\\" <sip:+17035550001@example.com>\",\n          \"to\" : \"\\\"John\\\" <sip:+15715550002@example.com>\",\n          \"identity\" : [ \"eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9jci11YXQuY2NpZC5uZXVzdGFyLmJpei9jY2lkL2F1dGhuL3YyL2NlcnRzLzExNDc1LjEwMDAxIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxNTcxNTU1MDAwMCJdfSwiaWF0IjoxNjM1MTc4MDgxLCJvcmlnIjp7InRuIjoiMTcwMzU1NTAwMDEifSwib3JpZ2lkIjoiOWJjM2U2MjktMWViNC00NGY3LTgzMjEtY2Q3ZDAwNGNkNDdiIiwicmNkIjp7Im5hbSI6IkFsaWNlIn0sInJjZGkiOiJzaGEyNTYtL3pnQ1RJaTNXZ3Bmb1VpUUNLYjZtV2R6VTVnT2tpdUVva3U3TklBbDJyYz0ifQ.JNtrzwn9x0zCohIyIxrXm-DhjHJZyKUuTmk70C71DFub411yQYIsAT3QV-5EX2ULLtHpv2uVMHZLJbIdFpR0TQ;info=<https://cr-uat.ccid.neustar.biz/ccid/authn/v2/certs/11475.10001>;alg=ES256;ppt=\\\"shaken\\\"\", \"eyJhbGciOiJFUzI1NiIsInBwdCI6ImRpdiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9jci11YXQuY2NpZC5uZXVzdGFyLmJpei9jY2lkL2F1dGhuL3YyL2NlcnRzLzExNDc1LjEwMDAxIn0.eyJkZXN0Ijp7InRuIjpbIjE1NzE1NTUwMDAyIl19LCJkaXYiOnsidG4iOiIxNTcxNTU1MDAwMCJ9LCJpYXQiOjE2MzUxNzgwOTAsIm9yaWciOnsidG4iOiIxNzAzNTU1MDAwMSJ9fQ.vKuA9Chpfkqb4W5b-kf1e76Y8ECSdR8S7v8hFWYtccCpCvzdTfDF6TnNTpuVVhZ560ikECSCxhfqwHUMLJz3TQ;info=<https://cr-uat.ccid.neustar.biz/ccid/authn/v2/certs/11475.10001>;alg=ES256;ppt=\\\"div\\\"\" ],\n          \"diversion\" : \"\\\"Bob\\\" <sip:+17035550000@example.com>;reason=away\"\n        }'\n\nResponse: \n{\n  \"status\" : \"ok\"\n}\n"
      - lang: curl
        label: RPH w/SPH
        source: "Request: \ncurl 'https://{hostname}:{port}/{optionalRoutingPath}/verify/v2/identity?apiKey=10679965b0504406a3f02cc4' -i -X POST \\\n    -H 'Content-Type: application/json' \\\n    -H 'Accept: application/json' \\\n    -d '{\n          \"from\" : \"\\\"Alice\\\" <sip:alice@example.com>\",\n          \"to\" : \"\\\"Bob\\\" <sip:5715550000@example.com>\",\n          \"passport_type\" : \"rph\",\n          \"resource_priority\" : [ \"ets.0, wps.1, esnet.1\", \"q735.1\" ],\n          \"priority\" : \"psap-callback\",\n          \"identity\" : [ \"eyJhbGciOiJFUzI1NiIsInBwdCI6InJwaCIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cDovLzEwLjc1LjMyLjE2OTo4MDgxL2NjaWQvYXV0aG4vdjIvY2VydHMvMTAxODgyLjEwMDQyNiJ9.eyJkZXN0Ijp7InRuIjpbIjU3MTU1NTAwMDAiXX0sImlhdCI6MTY0MzM5NzA5Nywib3JpZyI6eyJ1cmkiOiJzaXA6YWxpY2VAZXhhbXBsZS5jb20ifSwicnBoIjp7ImF1dGgiOlsiZXNuZXQuMSIsImV0cy4wIiwicTczNS4xIiwid3BzLjEiXX0sInNwaCI6InBzYXAtY2FsbGJhY2sifQ.B3bAZvTbTJ-4ggkt_FhB3F7q7RL021_bJ0hevyJ5Gkf3Vn-Ci-kA1estfMvFMGiKw9ODZqVUWUcmz3TayAyoXg;info=<https://{hostname}:{port}/{optionalRoutingPath}/authn/v2/certs/101882.100426>;alg=ES256;ppt=\\\"rph\\\"\" ]\n        }'\n\nResponse: \n{\n  \"status\" : \"ok\"\n}\n"
      - lang: curl
        label: SHAKEN w/Request ID & Identity Header Data
        source: "Request: \ncurl 'https://{hostname}:{port}/{optionalRoutingPath}/verify/v2/identity?apiKey=10679965b0504406a3f02cc4' -i -X POST \\\n    -H 'Content-Type: application/json' \\\n    -H 'Accept: application/json' \\\n    -d '{\n          \"from\" : \"\\\"Alice\\\" <sip:+17035550001@example.com>\",\n          \"to\" : \"\\\"Bob\\\" <sip:+15715550000@example.com>\",\n          \"identity\" : [ \"eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9jci11YXQuY2NpZC5uZXVzdGFyLmJpei9jY2lkL2F1dGhuL3YyL2NlcnRzLzExNDc1LjEwMDAxIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxNTcxNTU1MDAwMCJdfSwiaWF0IjoxNjM0MjQyMTk4LCJvcmlnIjp7InRuIjoiMTcwMzU1NTAwMDEifSwib3JpZ2lkIjoiM0Y5QzI4MzYtN0U0MC0xMUU3LUJBNTgtNzgzMUMxQjhERUJBIn0.j3N_z0Eu7I_dcNQ9BTdoZ7AoBFRCetBX4RzOfj2vNSENJ4EdKUpehijGa8xy-5kZgV3I_alJsKxI8XoV2aTm5w;info=<https://cr-uat.ccid.neustar.biz/ccid/authn/v2/certs/11475.10001>;alg=ES256;ppt=\\\"shaken\\\"\" ],\n          \"verstat\" : true,\n          \"identity_info\" : true,\n          \"request_id\" : \"X-REQUEST-ID-12345\"\n        }'\n\nResponse:\n{\n  \"status\" : \"ok\",\n  \"request_id\" : \"X-REQUEST-ID-12345\",\n  \"verstat\" : \"TN-Validation-Passed\",\n  \"identity_info\" : [ {\n    \"status\" : \"Ok\",\n    \"params\" : \"info=<https://cr-uat.ccid.neustar.biz/ccid/authn/v2/certs/11475.10001>;alg=ES256;ppt=\\\"shaken\\\"\",\n    \"header\" : {\n      \"alg\" : \"ES256\",\n      \"ppt\" : \"shaken\",\n      \"typ\" : \"passport\",\n      \"x5u\" : \"https://cr-uat.ccid.neustar.biz/ccid/authn/v2/certs/11475.10001\"\n    },\n    \"claim\" : {\n      \"attest\" : \"A\",\n      \"dest\" : {\n        \"tn\" : [ \"15715550000\" ]\n      },\n      \"iat\" : 1634242198,\n      \"orig\" : {\n        \"tn\" : \"17035550001\"\n      },\n      \"origid\" : \"3F9C2836-7E40-11E7-BA58-7831C1B8DEBA\"\n    },\n    \"certificate_info\" : {\n      \"subject\" : \"CN=KEYTOOL-TEST-EC-256, OU=IOT Labs, O=\\\"Neustar, Inc.\\\", L=Sterling, ST=VA, C=US\",\n      \"issuer\" : \"CN=KEYTOOL-TEST-EC-256, OU=IOT Labs, O=\\\"Neustar, Inc.\\\", L=Sterling, ST=VA, C=US\"\n    }\n  } ]\n}\n"
      - lang: curl
        label: SHAKEN All Data
        source: "Request: \ncurl 'https://{hostname}:{port}/{optionalRoutingPath}/verify/v2/identity?apiKey=10679965b0504406a3f02cc4' -i -X POST \\\n    -H 'Content-Type: application/json' \\\n    -H 'Accept: application/json' \\\n    -d '{\n          \"from\" : \"\\\"Alice\\\" <sip:+17035550001@example.com>\",\n          \"to\" : \"\\\"Bob\\\" <sip:+15715550000@example.com>\",\n          \"date\" : \"Thu, 14 Oct 2021 22:11:08 GMT\",\n          \"pai\" : [ \"\\\"Alice\\\" <tel:+17035550001>\", \"\\\"Alice\\\" <sip:+17035550001@example.com>\" ],\n          \"finger_print\" : [ {\n                              \"algorithm\" : \"SHA-1\",\n                              \"digest\" : \"4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB\"\n                              }, {\n                              \"algorithm\" : \"SHA-256\",\n                              \"digest\" : \"36:3B:AE:12:95:95:F5:97:2D:F7:E0:84:FE:CD:F1:BC:AD:7A:70:64:F7:E7:4F:7E:A6:02:06:0E:37:54:CF:F7\"\n                              } ],\n          \"identity\" : [ \"eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9jci11YXQuY2NpZC5uZXVzdGFyLmJpei9jY2lkL2F1dGhuL3YyL2NlcnRzLzExNDc1LjEwMDAxIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxNTcxNTU1MDAwMCJdfSwiaWF0IjoxNjM0MjQ5Njg4LCJta3kiOlt7ImFsZyI6IlNIQS0xIiwiZGlnIjoiNEFBREI5QjEzRjgyMTgzQjU0MDIxMkRGM0U1RDQ5NkIxOUU1N0NBQiJ9LHsiYWxnIjoiU0hBLTI1NiIsImRpZyI6IjM2M0JBRTEyOTU5NUY1OTcyREY3RTA4NEZFQ0RGMUJDQUQ3QTcwNjRGN0U3NEY3RUE2MDIwNjBFMzc1NENGRjcifV0sIm9yaWciOnsidG4iOiIxNzAzNTU1MDAwMSJ9LCJvcmlnaWQiOiIzRjlDMjgzNi03RTQwLTExRTctQkE1OC03ODMxQzFCOERFQkEifQ.Oyz1HateQwUcuFGHoTI1iHiUsQ-b60AoH6BjsSSb__b4Dzw0sNf7yhdl_iE5nHqPPJOY2zShHYfw0XWERIj6SA;info=<https://cr-uat.ccid.neustar.biz/ccid/authn/v2/certs/11475.10001>;alg=ES256;ppt=\\\"shaken\\\"\" ],\n          \"dest_cc\" : \"1\",\n          \"orig_cc\" : \"1\",\n          \"status\" : \"all\",\n          \"verstat\" : true,\n          \"identity_info\" : true,\n          \"cnam\" : true,\n          \"ecnam\" : true, \n          \"robocall\" : true\n          \"request_id\" : \"X-REQUEST-ID-12345\"\n}'\n\nResponse: \n{\n  \"status\" : \"ok\",\n  \"request_id\" : \"X-REQUEST-ID-12345\",\n  \"verstat\" : \"TN-Validation-Passed\",\n  \"identity_info\" : [ {\n    \"status\" : \"Ok\",\n    \"params\" : \"info=<http://ca.example.com/test.der>;alg=ES256;ppt=\\\"shaken\\\"\",\n    \"header\" : {\n      \"alg\" : \"ES256\",\n      \"ppt\" : \"shaken\",\n      \"typ\" : \"passport\",\n      \"x5u\" : \"http://ca.example.com/test.der\"\n    },\n    \"claim\" : {\n      \"attest\" : \"A\",\n      \"dest\" : {\n        \"tn\" : [ \"15715550000\" ]\n      },\n      \"iat\" : 1634249688,\n      \"mky\" : [ {\n        \"alg\" : \"SHA-1\",\n        \"dig\" : \"4AADB9B13F82183B540212DF3E5D496B19E57CAB\"\n      }, {\n        \"alg\" : \"SHA-256\",\n        \"dig\" : \"363BAE129595F5972DF7E084FECDF1BCAD7A7064F7E74F7EA602060E3754CFF7\"\n      } ],\n      \"orig\" : {\n        \"tn\" : \"17035550001\"\n      },\n      \"origid\" : \"123456-ABCD-999999\",\n      \"rcd\" : {\n        \"nam\" : \"Alice\"\n      }\n    },\n    \"certificate_info\" : {\n      \"subject\" : \"C=US, ST=VA, L=Somewhere, O=\\\"AcmeTelecom, Inc.\\\", OU=VOIP, CN=TEST-EC-256-EXT-TN-JWT\",\n      \"issuer\" : \"C=US, O=Neustar IOT Lab, CN=CallAuthnCA\",\n      \"tn_auth_list\" : [ {\n        \"spc\" : \"X001\"\n      }, {\n        \"range\" : {\n          \"start\" : \"15714340000\",\n          \"count\" : 10000\n        }\n      }, {\n        \"one\" : \"17035550000\"\n      } ]\n    }\n  } ],\n  \"cnam\" : \"Alice In Wonderland\",\n  \"ecnam\" : {\n    \"display_template\" : \"none\",\n    \"business_name\" : \"Disney World\",\n    \"department\" : \"Theme Park\",\n    \"line_type\" : \"Wireline\",\n    \"subscriber_type\" : \"Business\",\n    \"business_type\" : \"Entertainment\",\n    \"business_address\" : \"Walt Disney World Resort\",\n    \"locality\" : \"Orlando, FL\",\n    \"city\" : \"Orlando\",\n    \"state\" : \"FL\",\n    \"country\" : \"US\",\n    \"postal_code\" : \"32830\",\n    \"website_url\" : \"http://movies.disney.com/alice-in-wonderland-1951\",\n    \"logo_url\" : \"https://static-mh.content.disney.io/matterhorn/assets/goc/nav-logo-dark@2x-2b3eb08c507c.png\",\n    \"tagline\" : \"#AliceInWonderLand\",\n    \"employee_name\" : \"Alice\",\n    \"first_name\" : \"Alice\",\n    \"last_name\" : \"Liddell\",\n    \"job_title\" : \"Adventurer\",\n    \"headshot_url\" : \"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR2Q1GWX6hdmMr2dh10SoTeEKEn4S4toc4V3yAJCrPQHlzWvr_I\",\n    \"email\" : \"alice@disney.com\",\n    \"cnam\" : \"Alice In Wonderland\",\n    \"call_purpose\" : \"Customer Support\",\n    \"social_media_info\" : {\n      \"Facebook\" : \"https://www.facebook.com/DisneyAliceInWonderland\",\n      \"Twitter\" : \"https://twitter.com/Disney\"\n    },\n    \"p_asserted_identity\" : \"\\\"Alice In Wonderland\\\" <sip:alice@example.com;tmpl=none;bn=Disney%20World;dept=Theme%20Park;lt=Wireline;st=Business;bt=Entertainment;ba=Walt%20Disney%20World%20Resort;cs=Orlando, FL;city=Orlando;state=FL;ct=US;zip=32830;wb=http://movies.disney.com/alice-in-wonderland-1951;lg=https://static-mh.content.disney.io/matterhorn/assets/goc/nav-logo-dark@2x-2b3eb08c507c.png;tg=#AliceInWonderLand;sm=%7B%22Facebook%22%3A%22https%3A%2F%2Fwww.facebook.com%2FDisneyAliceInWonderland%22%2C%22Twitter%22%3A%22https%3A%2F%2Ftwitter.com%2FDisney%22%7D;nm=Alice;fn=Alice;ln=Liddell;jt=Adventurer;hs=https://encrypted-tbn0.gstatic.com/images?q%3dtbn:ANd9GcR2Q1GWX6hdmMr2dh10SoTeEKEn4S4toc4V3yAJCrPQHlzWvr_I;cp=Customer Support;email=alice@disney.com>\"\n  },\n  \"call_insight\" : {\n    \"call_treatment\" : \"allow\",\n    \"fraud_score\" : 0,\n    \"category_id\" : 0,\n    \"data_model\" : \"titan\",\n    \"category\" : \"N/A\",\n    \"overlay_name\" : \"[V] \",\n    \"original_calling_name\" : \"Alice\"\n  }\n}\n"
      - lang: curl
        label: Integrated STIR Verify and SHAKEN Signing
        source: "Request: \n<<<<<<<<<<<< VS Profile needs to be configured for Re-Signing >>>>>>>>>>>>>\ncurl 'https://{hostname}:{port}/{optionalRoutingPath}/verify/v2/identity?apiKey=7826148d26e8470ba1be4548' -i -X POST \\\n    -H 'Content-Type: application/json' \\\n    -H 'Accept: application/json' \\\n    -d '{\n          \"from\" : \"\\\"Alice\\\" sip:+17035550001@example.com\",\n          \"to\" : \"\\\"Bob\\\" sip:+15715550000@example.com\",\n          \"identity\" : [ \"eyJhbGciOiJFUzI1NiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9jci11YXQuY2NpZC5uZXVzdGFyLmJpei9jY2lkL2F1dGhuL3YyL2NlcnRzLzExNDc1LjEwMDAxIn0.eyJkZXN0Ijp7InRuIjpbIjE1NzE1NTUwMDAwIl19LCJpYXQiOjE2MzQyNDIwMTcsIm9yaWciOnsidG4iOiIxNzAzNTU1MDAwMSJ9fQ.q2JsLmI-ApIqPpPVnsoQNrD4tpdFv5lLD-80PrJ6WB8YDVF_70CEUetBjxI8-4-5gH91Hu3xLkDqmTeNUUatIw;info=https://cr-uat.ccid.neustar.biz/ccid/authn/v2/certs/11475.10001;alg=ES256\" ]\n        }'\nResponse: \n{\n  \"status\" : \"ok\",\n  \"resigned_identity\" : \"eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9jci11YXQuY2NpZC5uZXVzdGFyLmJpei9jY2lkL2F1dGhuL3YyL2NlcnRzLzExNDc5LjEwMDAxIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxNTcxNTU1MDAwMCJdfSwiaWF0IjoxNjM3MDc5MjYwLCJvcmlnIjp7InRuIjoiMTcwMzU1NTAwMDEifSwib3JpZ2lkIjoiNzUyM2Y1YWMtY2JkMS00YThhLTg3NGMtNWMxNGUzY2MxNzAxIn0.KJZ-kmSJdv9laJYoqOP937tvGNcFA9TG0Nec5LcH0oEUAHxT8qit2TsvWIh3iha11dPtyvLJ3vrV9fZNm_ADlg;info=https://cr-uat.ccid.neustar.biz/ccid/authn/v2/certs/11479.10001;alg=ES256;ppt=\\\"shaken\\\"\"\n}\n"
      - lang: curl
        label: RCD
        source: "Request: \ncurl 'https://{hostname}:{port}/{optionalRoutingPath}/verify/v2/identity?apiKey=6bea63cb232d4a4a8dea656e' -i -X POST \\\n    -H 'Content-Type: application/json' \\\n    -H 'Accept: application/json' \\\n    -d '{\n          \"from\" : \"\\\"Alice\\\" <sip:+17035550001@example.com>\",\n          \"to\" : \"\\\"John\\\" <sip:+15715550002@example.com>\",\n          \"caller_reason\" : \"Travel\",\n          \"caller_name\" : \"Alice Liddell\",\n          \"alt_present_number\" : \"<sip:+18005550000@example.com>\",\n          \"jcard\" : \"[\\\"vcard\\\",[[\\\"version\\\",{},\\\"text\\\",\\\"4.0\\\"],[\\\"fn\\\",{},\\\"text\\\",\\\"Alice Liddell\\\"],[ \\\"email\\\",{},\\\"text\\\",\\\"alice@example.com\\\"]]]\",\n          \"rcd_issuer\" : \"Disney, Inc.\",\n          \"rcd_integrity\" : true,\n          \"identity_info\" : true,\n          \"identity\" : \"eyJhbGciOiJFUzI1NiIsInBwdCI6InJjZCIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cDovLzEwLjc1LjMyLjE2OTo4MDgxL2NjaWQvYXV0aG4vdjIvY2VydHMvMTAxODgyLjEwMDQyNiJ9.eyJjcm4iOiJUcmF2ZWwiLCJkZXN0Ijp7InRuIjpbIjE1NzE1NTUwMDAyIl19LCJpYXQiOjE2NDQ1MjcwMDcsImlzcyI6IkRpc25leSwgSW5jLiIsIm9yaWciOnsidG4iOiIxNzAzNTU1MDAwMSJ9LCJyY2QiOnsiYXBuIjoiMTgwMDU1NTAwMDAiLCJqY2wiOiJjaWQ6MTIzNDU2IiwibmFtIjoiQWxpY2UgTGlkZGVsbCJ9LCJyY2RpIjp7Ii9hcG4iOiJzaGEzODQtRjQyd2htbEhLZnNtNmNzRUU4aXdBZzlsejkxL1JiUnQxUGJTQzFHSXJZMG4va1UzZHlOSFJ6WDdxV2s5R0l0WSIsIi9qY2wiOiJzaGEzODQtcVA1NEo0aUM2Y1B0L0ZmdXNLcEMwVlhoNjVvaFRZY2NQekRJUFdXZzRZc3F0ZFU3a2xiOVlIWFA2elp5dWlzayIsIi9uYW0iOiJzaGEzODQtbWtFV3lVdTA1b1UyMGYxNFVwN2xibnk3WDhDSndzT09zeVlQUllCWmYydExvQ2JoaEpLMkd4aGsyWFF5NUIzZyJ9fQ.VaFqs3J98BCW55dKljNHkeN6F7M0KW10dH0IhbdQfXHDUHDCbfNALIIwqKFhUXTJ55lX-y4u5_lZ-VSlXMLyHw;info=<https://{hostname}:{port}/{optionalRoutingPath}/authn/v2/certs/101882.100426>;alg=ES256;ppt=\\\"rcd\\\"\"\n        }'\nResponse: \n{\n  \"status\" : \"ok\",\n  \"identity_info\" : [ {\n    \"status\" : \"Ok\",\n    \"params\" : \"info=<https://{hostname}:{port}/{optionalRoutingPath}/authn/v2/certs/101882.100426>;alg=ES256;ppt=\\\"rcd\\\"\",\n    \"header\" : {\n      \"alg\" : \"ES256\",\n      \"ppt\" : \"rcd\",\n      \"typ\" : \"passport\",\n      \"x5u\" : \"https://{hostname}:{port}/{optionalRoutingPath}/authn/v2/certs/101882.100426\"\n    },\n    \"claim\" : {\n      \"crn\" : \"Travel\",\n      \"dest\" : {\n        \"tn\" : [ \"15715550002\" ]\n      },\n      \"iat\" : 1644527007,\n      \"iss\" : \"Disney, Inc.\",\n      \"orig\" : {\n        \"tn\" : \"17035550001\"\n      },\n      \"rcd\" : {\n        \"apn\" : \"18005550000\",\n        \"jcl\" : \"cid:123456\",\n        \"nam\" : \"Alice Liddell\"\n      },\n      \"rcdi\" : {\n        \"/apn\" : \"sha384-F42whmlHKfsm6csEE8iwAg9lz91/RbRt1PbSC1GIrY0n/kU3dyNHRzX7qWk9GItY\",\n        \"/jcl\" : \"sha384-qP54J4iC6cPt/FfusKpC0VXh65ohTYccPzDIPWWg4YsqtdU7klb9YHXP6zZyuisk\",\n        \"/nam\" : \"sha384-mkEWyUu05oU20f14Up7lbny7X8CJwsOOsyYPRYBZf2tLoCbhhJK2Gxhk2XQy5B3g\"\n      }\n    },\n    \"certificate_info\" : {\n      \"subject\" : \"C=CA, ST=VA, L=Somewhere, O=\\\"AcmeTelecom, Inc.\\\", OU=VOIP, CN=SHAKEN 6660\",\n      \"issuer\" : \"C=US, O=Neustar Information Services Inc, OU=www.ccid.neustar, CN=Neustar Certified Caller ID CA-1\",\n      \"tn_auth_list\" : [ {\n        \"spc\" : \"6660\"\n      } ]\n    }\n  } ]\n}\n"
      - lang: curl
        label: SHAKEN w/RCD
        source: "Request:\ncurl 'https://{hostname}:{port}/{optionalRoutingPath}/verify/v2/identity?apiKey=%3CapiKey1%3E' -i -X POST \\\n    -H 'Content-Type: application/json' \\\n    -H 'Accept: application/json' \\\n    -d '{\n          \"from\" : \"\\\"alice\\\" <sip:+17035550001@example.com>\",\n          \"to\" : \"\\\"bob\\\" <sip:+15715550001@example.com>\",\n          \"identity\" : [ \"eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cDovL2NhLmV4YW1wbGUuY29tL3Rlc3QuZGVyIn0.eyJhdHRlc3QiOiJBIiwiY3JuIjoiVHJhdmVsIiwiZGVzdCI6eyJ0biI6WyIxNTcxNTU1MDAwMSJdfSwiaWF0IjoxNjM5NDU1NzUxLCJpc3MiOiJEaXNuZXksIEluYy4iLCJvcmlnIjp7InRuIjoiMTcwMzU1NTAwMDEifSwib3JpZ2lkIjoiMTIzNDU2LUFCQ0QtOTk5OTk5IiwicmNkIjp7ImFwbiI6IjE4MDA1NTUwMDAwIiwiamNkIjpbInZjYXJkIixbWyJ2ZXJzaW9uIix7fSwidGV4dCIsIjQuMCJdLFsiZm4iLHt9LCJ0ZXh0IiwiQWxpY2UgTGlkZGVsbCJdLFsiZW1haWwiLHt9LCJ0ZXh0IiwiYWxpY2VAZXhhbXBsZS5jb20iXV1dLCJuYW0iOiJBbGljZSJ9LCJyY2RpIjp7Ii9hcG4iOiJzaGEyNTYtdkhDUkcxMmpDNlhNOVJPTzF3c0RGT3BqZUFENEkyYzc0TlVRa2x6bjR6WT0iLCIvamNkIjoic2hhMjU2LUhaeC9OLzF4T0JwRW9mc2hiWjJYampRMzFPRHV2cGVGWnRrbG5xMnpaRzg9IiwiL25hbSI6InNoYTI1Ni1POFVRWXBjOFJZMWFieTJOWktBakpHTlVyWDRHU3g1T0FKN0lvR21hTUVNPSJ9fQ.ur9sW1E2Wc5FgREsbhM17kQrmfKCbcUtq8ZDAVL_YiUDe9T9s69YoeaCElWcvhLikqqDVBgS3E78g9ZHn2GcjA;info=<http://ca.example.com/test.der>;alg=ES256;ppt=\\\"shaken\\\"\" ],\n          \"call_info\" : \"<cid:example.com/alice.json>;purpose=jcard;call-reason=Travel\",\n          \"caller_name\" : \"Alice\",\n          \"alt_present_number\" : \"<sip:+18005550000@example.com>\",\n          \"jcard\" : \"[\\\"vcard\\\",[[\\\"version\\\",{},\\\"text\\\",\\\"4.0\\\"],[\\\"fn\\\",{},\\\"text\\\",\\\"Alice Liddell\\\"],[ \\\"email\\\",{},\\\"text\\\",\\\"alice@example.com\\\"]]]\",\n          \"rcd_issuer\" : \"Disney, Inc.\",\n          \"rcd_integrity\" : true,\n          \"status\" : \"all\",\n          \"verstat\" : true,\n          \"identity_info\" : true,\n          \"request_id\" : \"X-REQUEST-ID-12345\"\n        }'\nResponse: \n{\n  \"status\" : \"ok\",\n  \"request_id\" : \"X-REQUEST-ID-12345\",\n  \"verstat\" : \"TN-Validation-Passed\",\n  \"identity_info\" : [ {\n    \"status\" : \"Ok\",\n    \"params\" : \"info=<http://ca.example.com/test.der>;alg=ES256;ppt=\\\"shaken\\\"\",\n    \"header\" : {\n      \"alg\" : \"ES256\",\n      \"ppt\" : \"shaken\",\n      \"typ\" : \"passport\",\n      \"x5u\" : \"http://ca.example.com/test.der\"\n    },\n    \"claim\" : {\n      \"attest\" : \"A\",\n      \"crn\" : \"Travel\",\n      \"dest\" : {\n        \"tn\" : [ \"15715550001\" ]\n      },\n      \"iat\" : 1639455751,\n      \"iss\" : \"Disney, Inc.\",\n      \"orig\" : {\n        \"tn\" : \"17035550001\"\n      },\n      \"origid\" : \"123456-ABCD-999999\",\n      \"rcd\" : {\n        \"apn\" : \"18005550000\",\n        \"jcd\" : [ \"vcard\", [ [ \"version\", { }, \"text\", \"4.0\" ], [ \"fn\", { }, \"text\", \"Alice Liddell\" ], [ \"email\", { }, \"text\", \"alice@example.com\" ] ] ],\n        \"nam\" : \"Alice\"\n      },\n      \"rcdi\" : {\n        \"/apn\" : \"sha256-vHCRG12jC6XM9ROO1wsDFOpjeAD4I2c74NUQklzn4zY=\",\n        \"/jcd\" : \"sha256-HZx/N/1xOBpEofshbZ2XjjQ31ODuvpeFZtklnq2zZG8=\",\n        \"/nam\" : \"sha256-O8UQYpc8RY1aby2NZKAjJGNUrX4GSx5OAJ7IoGmaMEM=\"\n      }\n    },\n    \"certificate_info\" : {\n      \"subject\" : \"C=US, ST=VA, L=Somewhere, O=\\\"AcmeTelecom, Inc.\\\", OU=VOIP, CN=TEST-EC-256-EXT-TN-JWT\",\n      \"issuer\" : \"C=US, O=Neustar IOT Lab, CN=CallAuthnCA\",\n      \"tn_auth_list\" : [ {\n        \"spc\" : \"X001\"\n      }, {\n        \"range\" : {\n          \"start\" : \"15714340000\",\n          \"count\" : 10000\n        }\n      }, {\n        \"one\" : \"17035550000\"\n      } ]\n    }\n  } ]\n}\n"
      responses:
        200:
          description: 'successful operation

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyResponse'
            text/plain:
              examples:

# --- truncated at 32 KB (326 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/transunion/refs/heads/main/openapi/transunion-verification-service-api-openapi.yml