Infobip CAMARA API

Contact us and get started with CAMARA. Please fill out the form, and our experts will contact you shortly. CAMARA represents a set of services that we offer in cooperation with the mobile network operators. — 9 operation path(s) and 0 webhook(s) in Infobip's published OpenAPI.

OpenAPI Specification

infobip-camara-openapi.json Raw ↑
{
 "openapi":"3.1.0",
 "info":{
  "title":"Infobip OpenAPI Specification",
  "description":"OpenAPI Specification that contains all public endpoints and webhooks.",
  "contact":{
   "name":"Infobip support",
   "email":"support@infobip.com"
  },
  "version":"3.210.0",
  "x-generatedAt":"2026-07-23T15:23:55.97536296Z"
 },
 "tags":[
  {
   "name":"connectivity",
   "description":"Powerful infrastructure and tools that connect you to the world.\n",
   "x-type":"category",
   "x-displayName":"Connectivity"
  },
  {
   "name":"camara",
   "description":"**Contact us and get started with CAMARA. Please [fill out the form](https://www.infobip.com/contact), and our experts will contact you shortly.** \\\n\\\n[CAMARA](https://camaraproject.org/) represents a set of services that we offer in cooperation with the mobile network operators. With their capabilities, we are bringing the extensive subscriber data they possess to provide improved authentication methods and enhance the security of online transactions.\n",
   "x-type":"product",
   "x-displayName":"CAMARA"
  },
  {
   "name":"network-based-number-verification",
   "description":"",
   "x-type":"section",
   "x-displayName":"Network based Number Verification"
  },
  {
   "name":"sim-based-number-verification",
   "description":"",
   "x-type":"section",
   "x-displayName":"SIM based Number Verification"
  },
  {
   "name":"device-location-verification",
   "description":"",
   "x-type":"section",
   "x-displayName":"Device location verification"
  },
  {
   "name":"sim-swap",
   "description":"",
   "x-type":"section",
   "x-displayName":"SIM swap"
  },
  {
   "name":"know-your-customer",
   "description":"",
   "x-type":"section",
   "x-displayName":"Know your customer"
  }
 ],
 "paths":{
  "/camara/number-verification/v0/authorize":{
   "get":{
    "tags":[
     "connectivity",
     "camara",
     "network-based-number-verification"
    ],
    "summary":"Number verify device authorization",
    "description":"Use this method to redirect the mobile device on the MNO network for authorization, based on the mobile device IP address.\nUpon authorization, the device is redirected back to the URL specified in `redirectUrl`.\nWhen redirected back, a new query parameter `code` is being added.\nIt needs to be sent in a subsequent verify request to complete verification.\n\n**Error handling behavior:**\n- When `redirectUrl` parameter **is provided**: All errors are returned as a 302 redirect back to the `redirectUrl` with OAuth 2.0 error query parameters (`error`, `error_description` (optional), `state`).\n- When `redirectUrl` parameter **is NOT provided**: A JSON response is returned (see below).\n",
    "operationId":"authorize-number-verify",
    "parameters":[
     {
      "name":"clientId",
      "in":"query",
      "description":"Client ID to identify the client on whose behalf the device is making the request. This is **provided to the client** upon registration. The value is usually the username that is being used to login into Infobip portal when generating [API key header](https://www.infobip.com/docs/essentials/api-essentials/api-authentication#api-key-header) and/or client_id that is being used when [generating OAuth2 token](https://www.infobip.com/docs/api/platform/account-management/create-oauth2-token).",
      "required":true,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"string"
      },
      "example":"enterprise-client-id"
     },
     {
      "name":"redirectUrl",
      "in":"query",
      "description":"URL to redirect back the device to after authorization on MNO network. **This URL needs to be static**. For request tracking and correlation purposes, the `state` query parameter will be added to this URL before redirecting the device back.",
      "required":true,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"string",
       "format":"uri"
      },
      "example":"https://enterprise.com/authorization-complete"
     },
     {
      "name":"state",
      "in":"query",
      "description":"String that will be returned as a query parameter in the `redirectUrl`.",
      "required":false,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"string"
      },
      "example":"51A7_7131"
     },
     {
      "name":"login_hint",
      "in":"query",
      "description":"OIDC login hint. Expects a phone number in `tel:+{phone_number_with_country_code}` format.",
      "required":false,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"string"
      },
      "example":"tel:+441134961234"
     }
    ],
    "responses":{
     "302":{
      "description":" Redirect to MNO authorization endpoint. Response body is empty, information is returned in response headers.",
      "headers":{
       "Location":{
        "description":"MNO authorization endpoint URL\n\n**Error redirect:** When an error occurs and `redirectUrl` was provided, the error is returned as OAuth 2.0 query parameters in the redirect URL.\n\n**Error redirect URL format:** `{redirectUrl}?error={error_code}&error_description={error_description}&state={state}`\n\nNote: `error_description` is optional.\n\n**OAuth error codes:**\n\n- `invalid_request` - The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed.\n- `unauthorized_client` - The client is not authorized to request an authorization code using this method.\n- `access_denied` - The user or authorization server denied the request (for example, the user cannot be authenticated or denied the consent).\n- `unsupported_response_type` - The authorization server does not support obtaining an authorization code using this method.\n- `invalid_scope` - The requested scope is either invalid, unknown, or malformed.\n- `consent_required` - The authorization server requires user consent.\n- `server_error` - The authorization server encountered an unexpected condition that prevented it from fulfilling the request.\n- `temporarily_unavailable` - The authorization server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n- `invalid_request_object` - The request parameter contains an invalid Request Object.\n- `request_uri_not_supported` - The authorization server does not support use of the request_uri parameter.\n",
        "style":"simple",
        "explode":false,
        "schema":{
         "type":"string",
         "format":"uri",
         "example":"https://mno.example.com/authorize?queryParam=..."
        }
       },
       "x-correlator":{
        "description":"Correlation ID for tracking the request",
        "style":"simple",
        "explode":false,
        "schema":{
         "type":"string",
         "format":"uuid",
         "example":"6a31ccca-ceba-4998-a3b0-16ae5e182ab0"
        }
       }
      },
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.CamaraResponseBaseDto"
        }
       }
      }
     },
     "400":{
      "description":"Bad request.\nWhen `redirectUrl` is available, this error is returned via 302 redirect with `error=invalid_request`",
      "content":{
       "application/json":{
        "schema":{
         "type":"object",
         "properties":{
          "status":{
           "type":"integer",
           "description":"HTTP status code.",
           "enum":[
            400
           ]
          },
          "code":{
           "type":"string",
           "description":"Error code.",
           "enum":[
            "INVALID_ARGUMENT"
           ]
          },
          "message":{
           "type":"string",
           "description":"Detailed error message.",
           "enum":[
            "Client specified an invalid argument, request body or query param"
           ]
          }
         }
        },
        "examples":{
         "Bad request":{
          "summary":"Bad request",
          "description":"Bad request",
          "value":{
           "status":400,
           "code":"INVALID_ARGUMENT",
           "message":"Client specified an invalid argument, request body or query param"
          }
         }
        }
       }
      }
     },
     "401":{
      "description":"Unauthenticated",
      "content":{
       "application/json":{
        "schema":{
         "oneOf":[
          {
           "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.CamaraUnauthenticatedErrorResponse"
          },
          {
           "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.PlatformErrorResponse"
          }
         ]
        },
        "examples":{
         "Unauthenticated":{
          "summary":"Unauthenticated",
          "description":"Unauthenticated",
          "value":{
           "requestError":{
            "serviceException":{
             "messageId":"UNAUTHENTICATED",
             "text":"Invalid login details"
            }
           }
          }
         }
        }
       }
      }
     },
     "500":{
      "description":"Internal server error",
      "content":{
       "application/json":{
        "schema":{
         "type":"object",
         "properties":{
          "status":{
           "type":"integer",
           "description":"HTTP status code.",
           "enum":[
            500
           ]
          },
          "code":{
           "type":"string",
           "description":"Error code.",
           "enum":[
            "INTERNAL"
           ]
          },
          "message":{
           "type":"string",
           "description":"Detailed error message.",
           "enum":[
            "Server error"
           ]
          }
         }
        },
        "examples":{
         "Internal server error":{
          "summary":"Internal server error",
          "description":"Internal server error",
          "value":{
           "status":500,
           "code":"INTERNAL",
           "message":"Server error"
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/camara/number-verification/v0/verify":{
   "post":{
    "tags":[
     "connectivity",
     "camara",
     "network-based-number-verification"
    ],
    "summary":"Number Verification",
    "description":"Use this method to verify possession of the end-user's mobile phone number with the mobile network operator's data connection.",
    "operationId":"verify-number",
    "parameters":[
     {
      "name":"X-Correlator",
      "in":"header",
      "description":"`Code` parameter that was received on `/authorize` request. This header is not required only if OAuth2 `grant_type=authorization_code` was used on token generation.",
      "required":false,
      "style":"simple",
      "explode":false,
      "schema":{
       "type":"string",
       "format":"uuid"
      }
     }
    ],
    "requestBody":{
     "description":"Number verification request object.",
     "content":{
      "application/json":{
       "schema":{
        "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.NumberVerifyRequestDto"
       },
       "examples":{
        "Phone verification":{
         "summary":"Phone verification",
         "description":"Phone verification",
         "value":{
          "phoneNumber":"+441134961234"
         }
        }
       }
      }
     },
     "required":true
    },
    "responses":{
     "200":{
      "description":"OK",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.NumberVerifyResponseDto"
        },
        "examples":{
         "Verified":{
          "summary":"Verified",
          "description":"Verified",
          "value":{
           "devicePhoneNumberVerified":true
          }
         },
         "Not verified":{
          "summary":"Not verified",
          "description":"Not verified",
          "value":{
           "devicePhoneNumberVerified":false
          }
         }
        }
       }
      }
     },
     "400":{
      "description":"Bad request",
      "content":{
       "application/json":{
        "schema":{
         "type":"object",
         "properties":{
          "status":{
           "type":"integer",
           "description":"HTTP status code.",
           "enum":[
            400
           ]
          },
          "code":{
           "type":"string",
           "description":"Error code.",
           "enum":[
            "INVALID_ARGUMENT"
           ]
          },
          "message":{
           "type":"string",
           "description":"Detailed error message.",
           "enum":[
            "Client specified an invalid argument, request body or query param"
           ]
          }
         }
        },
        "examples":{
         "Bad request":{
          "summary":"Bad request",
          "description":"Bad request",
          "value":{
           "status":400,
           "code":"INVALID_ARGUMENT",
           "message":"Client specified an invalid argument, request body or query param"
          }
         }
        }
       }
      }
     },
     "401":{
      "description":"Unauthenticated",
      "content":{
       "application/json":{
        "schema":{
         "oneOf":[
          {
           "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.CamaraUnauthenticatedErrorResponse"
          },
          {
           "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.PlatformErrorResponse"
          }
         ]
        },
        "examples":{
         "Unauthenticated":{
          "summary":"Unauthenticated",
          "description":"Unauthenticated",
          "value":{
           "requestError":{
            "serviceException":{
             "messageId":"UNAUTHENTICATED",
             "text":"Invalid login details"
            }
           }
          }
         }
        }
       }
      }
     },
     "403":{
      "description":"Permission denied",
      "content":{
       "application/json":{
        "schema":{
         "oneOf":[
          {
           "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.CamaraPermissionDeniedErrorResponse"
          },
          {
           "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.PlatformErrorResponse"
          }
         ]
        },
        "examples":{
         "Permission denied":{
          "summary":"Permission denied",
          "description":"Permission denied",
          "value":{
           "status":403,
           "code":"PERMISSION_DENIED",
           "message":"Client does not have sufficient permissions to perform this action"
          }
         },
         "Unauthorized":{
          "summary":"Unauthorized",
          "description":"Unauthorized",
          "value":{
           "requestError":{
            "serviceException":{
             "messageId":"UNAUTHORIZED",
             "text":"Invalid login details"
            }
           }
          }
         }
        }
       }
      }
     },
     "404":{
      "description":"Not found",
      "content":{
       "application/json":{
        "schema":{
         "type":"object",
         "properties":{
          "status":{
           "type":"integer",
           "description":"HTTP status code.",
           "enum":[
            404
           ]
          },
          "code":{
           "type":"string",
           "description":"Error code.",
           "enum":[
            "NOT_FOUND"
           ]
          },
          "message":{
           "type":"string",
           "description":"Detailed error message.",
           "enum":[
            "Not found"
           ]
          }
         }
        },
        "examples":{
         "Not found":{
          "summary":"Not found",
          "description":"Not found",
          "value":{
           "status":404,
           "code":"NOT_FOUND",
           "message":"Not found"
          }
         }
        }
       }
      }
     },
     "409":{
      "description":"Conflict",
      "content":{
       "application/json":{
        "schema":{
         "type":"object",
         "properties":{
          "status":{
           "type":"integer",
           "description":"HTTP status code.",
           "enum":[
            409
           ]
          },
          "code":{
           "type":"string",
           "description":"Error code.",
           "enum":[
            "CONFLICT"
           ]
          },
          "message":{
           "type":"string",
           "description":"Detailed error message.",
           "enum":[
            "Another request is created for the same MSISDN"
           ]
          }
         }
        },
        "examples":{
         "Conflict":{
          "summary":"Conflict",
          "description":"Conflict",
          "value":{
           "status":409,
           "code":"CONFLICT",
           "message":"Another request is created for the same MSISDN"
          }
         }
        }
       }
      }
     },
     "422":{
      "description":"Unprocessable content",
      "content":{
       "application/json":{
        "schema":{
         "type":"object",
         "properties":{
          "status":{
           "type":"integer",
           "description":"HTTP status code.",
           "enum":[
            422
           ]
          },
          "code":{
           "type":"string",
           "description":"Error code.",
           "enum":[
            "SERVICE_NOT_APPLICABLE"
           ]
          },
          "message":{
           "type":"string",
           "description":"Detailed error message.",
           "enum":[
            "The service is not available for the provided identifier"
           ]
          }
         }
        },
        "examples":{
         "Unprocessable content":{
          "summary":"Unprocessable content",
          "description":"Unprocessable content",
          "value":{
           "status":422,
           "code":"SERVICE_NOT_APPLICABLE",
           "message":"The service is not available for the provided identifier"
          }
         }
        }
       }
      }
     },
     "500":{
      "description":"Internal server error",
      "content":{
       "application/json":{
        "schema":{
         "type":"object",
         "properties":{
          "status":{
           "type":"integer",
           "description":"HTTP status code.",
           "enum":[
            500
           ]
          },
          "code":{
           "type":"string",
           "description":"Error code.",
           "enum":[
            "INTERNAL"
           ]
          },
          "message":{
           "type":"string",
           "description":"Detailed error message.",
           "enum":[
            "Server error"
           ]
          }
         }
        },
        "examples":{
         "Internal server error":{
          "summary":"Internal server error",
          "description":"Internal server error",
          "value":{
           "status":500,
           "code":"INTERNAL",
           "message":"Server error"
          }
         }
        }
       }
      }
     }
    },
    "security":[
     {
      "IBSSOTokenHeader":[]
     },
     {
      "APIKeyHeader":[]
     },
     {
      "Basic":[]
     },
     {
      "OAuth2":[]
     }
    ],
    "x-scopes":[
     "mobile-identity:manage"
    ]
   }
  },
  "/camara/number-verification/v2/dcql":{
   "post":{
    "tags":[
     "connectivity",
     "camara",
     "sim-based-number-verification"
    ],
    "summary":"Number verification DCQL Request",
    "description":"Use this method to generate a credential request structure for the Android CredentialManager. The response must be passed to the device for SIM-based (TS.43) authentication.",
    "operationId":"create-dcql-request",
    "requestBody":{
     "description":"DCQL request object specifying the desired use case",
     "content":{
      "application/json":{
       "schema":{
        "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.DcqlRequestDto"
       },
       "examples":{
        "Get phone number":{
         "summary":"Get phone number",
         "description":"Get phone number",
         "value":{
          "useCase":"GET_PHONE_NUMBER",
          "nonce":"a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "carrierIds":[
           123,
           456
          ]
         }
        },
        "Verify phone number":{
         "summary":"Verify phone number",
         "description":"Verify phone number",
         "value":{
          "useCase":"VERIFY_PHONE_NUMBER",
          "nonce":"a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "carrierIds":[
           123,
           456
          ]
         }
        }
       }
      }
     },
     "required":true
    },
    "responses":{
     "200":{
      "description":"OK — per-carrier map of DCQL credential objects or error objects",
      "content":{
       "application/json":{
        "schema":{
         "oneOf":[
          {
           "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.DcqlResponseDto"
          },
          {
           "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.DcqlNotFoundErrorResponse"
          }
         ]
        },
        "examples":{
         "All carriers successful":{
          "summary":"All carriers successful",
          "description":"All carriers successful",
          "value":{
           "123":{
            "id":"miapi.infobip.com",
            "format":"dc-authorization+sd-jwt",
            "meta":{
             "credential_authorization_jwt":"eyJhbGciOiJFUzI1NiIs...",
             "vct_values":[
              "number-verification/device-phone-number/ts43"
             ]
            },
            "claims":[
             {
              "path":[
               "android_carrier_hint"
              ],
              "values":[
               123
              ]
             }
            ]
           },
           "456":{
            "id":"miapi.infobip.com",
            "format":"dc-authorization+sd-jwt",
            "meta":{
             "credential_authorization_jwt":"eyJhbGciOiJFUzI1NiIs...",
             "vct_values":[
              "number-verification/device-phone-number/ts43"
             ]
            },
            "claims":[
             {
              "path":[
               "android_carrier_hint"
              ],
              "values":[
               456
              ]
             }
            ]
           }
          }
         },
         "Some carriers failed, some succeeded":{
          "summary":"Some carriers failed, some succeeded",
          "description":"Some carriers failed, some succeeded",
          "value":{
           "123":{
            "id":"miapi.infobip.com",
            "format":"dc-authorization+sd-jwt",
            "meta":{
             "credential_authorization_jwt":"eyJhbGciOiJFUzI1NiIs...",
             "vct_values":[
              "number-verification/device-phone-number/ts43"
             ]
            },
            "claims":[
             {
              "path":[
               "android_carrier_hint"
              ],
              "values":[
               123
              ]
             }
            ]
           },
           "456":{
            "status":404,
            "code":"NOT_FOUND",
            "message":"Not found"
           }
          }
         }
        }
       }
      }
     },
     "400":{
      "description":"Bad request",
      "content":{
       "application/json":{
        "schema":{
         "type":"object",
         "properties":{
          "status":{
           "type":"integer",
           "description":"HTTP status code.",
           "enum":[
            400
           ]
          },
          "code":{
           "type":"string",
           "description":"Error code.",
           "enum":[
            "INVALID_ARGUMENT"
           ]
          },
          "message":{
           "type":"string",
           "description":"Detailed error message.",
           "enum":[
            "Client specified an invalid argument, request body or query param"
           ]
          }
         }
        },
        "examples":{
         "Bad request":{
          "summary":"Bad request",
          "description":"Bad request",
          "value":{
           "status":400,
           "code":"INVALID_ARGUMENT",
           "message":"Client specified an invalid argument, request body or query param"
          }
         }
        }
       }
      }
     },
     "401":{
      "description":"Unauthorized - Platform authentication error",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.PlatformErrorResponse"
        },
        "examples":{
         "Unauthorized":{
          "summary":"Unauthorized",
          "description":"Unauthorized",
          "value":{
           "requestError":{
            "serviceException":{
             "messageId":"UNAUTHORIZED",
             "text":"Invalid login details"
            }
           }
          }
         }
        }
       }
      }
     },
     "403":{
      "description":"Permission denied",
      "content":{
       "application/json":{
        "schema":{
         "oneOf":[
          {
           "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.CamaraPermissionDeniedErrorResponse"
          },
          {
           "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.PlatformErrorResponse"
          }
         ]
        },
        "examples":{
         "Permission denied":{
          "summary":"Permission denied",
          "description":"Permission denied",
          "value":{
           "status":403,
           "code":"PERMISSION_DENIED",
           "message":"Client does not have sufficient permissions to perform this action"
          }
         },
         "Unauthorized":{
          "summary":"Unauthorized",
          "description":"Unauthorized",
          "value":{
           "requestError":{
            "serviceException":{
             "messageId":"UNAUTHORIZED",
             "text":"Invalid login details"
            }
           }
          }
         }
        }
       }
      }
     },
     "422":{
      "description":"Unprocessable content",
      "content":{
       "application/json":{
        "schema":{
         "type":"object",
         "properties":{
          "status":{
           "type":"integer",
           "description":"HTTP status code.",
           "enum":[
            422
           ]
          },
          "code":{
           "type":"string",
           "description":"Error code.",
           "enum":[
            "SERVICE_NOT_APPLICABLE"
           ]
          },
          "message":{
           "type":"string",
           "description":"Detailed error message.",
           "enum":[
            "The service is not available for the provided identifier"
           ]
          }
         }
        },
        "examples":{
         "Unprocessable content":{
          "summary":"Unprocessable content",
          "description":"Unprocessable content",
          "value":{
           "status":422,
           "code":"SERVICE_NOT_APPLICABLE",
           "message":"The service is not available for the provided identifier"
          }
         }
        }
       }
      }
     },
     "500":{
      "description":"Internal server error",
      "content":{
       "application/json":{
        "schema":{
         "type":"object",
         "properties":{
          "status":{
           "type":"integer",
           "description":"HTTP status code.",
           "enum":[
            500
           ]
          },
          "code":{
           "type":"string",
           "description":"Error code.",
           "enum":[
            "INTERNAL"
           ]
          },
          "message":{
           "type":"string",
           "enum":[
            "Server error"
           ]
          }
         }
        },
        "examples":{
         "Internal server error":{
          "summary":"Internal server error",
          "description":"Internal server error",
          "value":{
           "status":500,
           "code":"INTERNAL",
           "message":"Server error"
          }
         }
        }
       }
      }
     }
    },
    "security":[
     {
      "IBSSOTokenHeader":[]
     },
     {
      "APIKeyHeader":[]
     },
     {
      "Basic":[]
     },
     {
      "OAuth2":[]
     }
    ],
    "x-scopes":[
     "mobile-identity:manage"
    ]
   }
  },
  "/camara/number-verification/v2/device-phone-number":{
   "get":{
    "tags":[
     "connectivity",
     "camara",
     "sim-based-number-verification"
    ],
    "summary":"Get Phone Number",
    "description":"Use this method to retrieve the phone number associated with the device SIM.",
    "operationId":"get-device-phone-number",
    "parameters":[
     {
      "name":"X-Correlator",
      "in":"header",
      "description":"In SIM based (TS.43) verification flow this should be the `vp_token` (SD-JWT) value received from Android Credential Manager.",
      "required":false,
      "style":"simple",
      "explode":false,
      "schema":{
       "type":"string"
      }
     }
    ],
    "responses":{
     "200":{
      "description":"OK",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.DevicePhoneNumberResponseDto"
        },
        "examples":{
         "Verified":{
          "summary":"Verified",
          "description":"Verified",
          "value":{
           "devicePhoneNumber":"+441134961234"
          }
         }
        }
       }
      }
     },
     "400":{
      "description":"Bad request",
      "content":{
       "application/json":{
        "schema":{
         "type":"object",
         "properties":{
          "status":{
           "type":"integer",
           "description":"HTTP status code.",
           "enum":[
            400
           ]
          },
          "code":{
           "type":"string",
           "description":"Error code.",
           "enum":[
            "INVALID_ARGUMENT"
           ]
          },
          "message":{
           "type":"string",
           "description":"Detailed error message.",
           "enum":[
            "Client specified an invalid argument, request body or query param"
           ]
          }
         }
        },
        "examples":{
         "Bad request":{
          "summary":"Bad request",
          "description":"Bad request",
          "value":{
           "status":400,
           "code":"INVALID_ARGUMENT",
           "message":"Client specified an invalid argument, request body or query param"
          }
         }
        }
       }
      }
     },
     "401":{
      "description":"Unauthenticated",
      "content":{
       "application/json":{
        "schema":{
         "oneOf":[
          {
           "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.CamaraUnauthenticatedErrorResponse"
          },
          {
           "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.PlatformErrorResponse"
          }
         ]
        },
        "examples":{
         "Unauthenticated":{
          "summary":"Unauthenticated",
          "description":"Unauthenticated",
          "value":{
           "requestError":{
            "serviceException":{
             "messageId":"UNAUTHENTICATED",
             "text":"Invalid login details"
            }
           }
          }
         }
        }
       }
      }
     },
     "403":{
      "description":"Permission denied",
      "content":{
       "application/json":{
        "schema":{
         "oneOf":[
          {
           "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.CamaraPermissionDeniedErrorResponse"
          },
          {
           "$ref":"#/components/schemas/c4fb96364cd87b1d1d15720880c5153ef26f58342e4ec03b9d5896f2251f17ae.PlatformErrorResponse"
          }
         ]
        },
        "examples":{
         "Permission denied":{
          "summary":"Permission 

# --- truncated at 32 KB (104 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/infobip/refs/heads/main/openapi/infobip-camara-openapi.json