{
  "openapi": "3.0.0",
  "info": {
    "title": "Authorization",
    "description": "Obtain client access tokens for API authorization when needed (see [Authentication](/openapi/api_ref_intro/#authentication)). Click **Try it** from the API explorer below to generate access tokens directly from the docs. You can then use these tokens to run API requests in this API reference.",
    "version": "",
    "contact": {}
  },
  "servers": [
    {
      "url": "https://api.sbx.transmitsecurity.io",
      "description": "Sandbox environment"
    },
    {
      "url": "https://api.transmitsecurity.io",
      "description": "Production environment (US)"
    },
    {
      "url": "https://api.eu.transmitsecurity.io",
      "description": "Production environment (EU)"
    },
    {
      "url": "https://api.ca.transmitsecurity.io",
      "description": "Production environment (CA)"
    },
    {
      "url": "https://api.au.transmitsecurity.io",
      "description": "Production environment (AU)"
    }
  ],
  "paths": {
    "/oidc/token": {
      "post": {
        "operationId": "getAccessToken",
        "summary": "Get client access token",
        "description": "Retrieve an access token to authorize your API request. By default, the access token is **valid for 1 hour**, you don't need to regenerate it every time before calling Mosaic APIs. <br><br> **NOTE: The request type and examples depend on the service you choose**",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/Default"
                  },
                  {
                    "$ref": "#/components/schemas/Identity Verification only"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Access token successfully retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "access_token": {
                      "type": "string",
                      "description": "The access token issued by the authorization server"
                    },
                    "token_type": {
                      "type": "string",
                      "description": "Returned as Bearer",
                      "example": "Bearer"
                    },
                    "expires_in": {
                      "type": "integer",
                      "description": "Expiration time of the access token in seconds",
                      "default": 3600,
                      "example": 3600
                    },
                    "scope": {
                      "type": "string",
                      "description": "Scope of the access token"
                    }
                  },
                  "required": [
                    "access_token",
                    "token_type",
                    "expires_in",
                    "scope"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestHttpError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerHttpError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Identity Verification only": {
        "type": "object",
        "properties": {
          "client_id": {
            "type": "string",
            "description": "Client identifier"
          },
          "client_secret": {
            "type": "string",
            "description": "Client secret"
          },
          "grant_type": {
            "type": "string",
            "enum": [
              "client_credentials"
            ],
            "description": "Should be set to client_credentials."
          },
          "resource": {
            "type": "string",
            "enum": [
              "https://verify.identity.security"
            ],
            "description": "URI of the resource the request is attempting to access."
          }
        },
        "required": [
          "client_id",
          "client_secret",
          "grant_type"
        ],
        "example": {
          "client_id": "YOUR_CLIENT_ID",
          "client_secret": "YOUR_CLIENT_SECRET",
          "grant_type": "client_credentials",
          "resource": "https://verify.identity.security"
        }
      },
      "Default": {
        "type": "object",
        "properties": {
          "client_id": {
            "type": "string",
            "description": "Client identifier"
          },
          "client_secret": {
            "type": "string",
            "description": "Client secret"
          },
          "grant_type": {
            "type": "string",
            "enum": [
              "client_credentials"
            ],
            "description": "Grant type must be client_credentials."
          },
          "resource": {
            "type": "string",
            "description": "URI of the resource the request is attempting to access."
          }
        },
        "required": [
          "client_id",
          "client_secret",
          "grant_type"
        ],
        "example": {
          "client_id": "YOUR_CLIENT_ID",
          "client_secret": "YOUR_CLIENT_SECRET",
          "grant_type": "client_credentials"
        }
      },
      "BadRequestHttpError": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "readOnly": true,
            "example": "Bad request"
          },
          "error_code": {
            "type": "number",
            "readOnly": true,
            "example": 400
          }
        },
        "required": [
          "message",
          "error_code"
        ]
      },
      "InternalServerHttpError": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "readOnly": true,
            "example": "Something went wrong - Internal server error"
          },
          "error_code": {
            "type": "number",
            "readOnly": true,
            "example": 500
          }
        },
        "required": [
          "message",
          "error_code"
        ]
      }
    }
  },
  "tags": [],
  "security": []
}