> For the complete documentation index, see [llms.txt](https://developer.paddle.com/llms.txt).

# GET /verifications

**List verifications**

Returns a paginated list of verifications. Use the query parameters to page through results.

Filter by `verification_type=onboarding` and use the returned verification's `status` to check whether your account is ready for live payments or needs action.

**Required permissions:** `verification.read`

## Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | array | optional | Return only the IDs specified. Use a comma-separated list to get multiple entities. |
| `after` | string | optional | Return entities after the specified Paddle ID when working with paginated endpoints. Used in the `meta.pagination.next` URL in responses for list operations. |
| `per_page` | integer | optional | Set how many entities are returned per page. Paddle returns the maximum number of results if a number greater than the maximum is requested. Check `meta.pagination.per_page` in the response to see how many were returned.

Default: `50`; Maximum: `200`. (Max: 200; default: `50`) |
| `verification_type` | string | optional | Type of verification. |
| `order_by` | string | optional | Order returned entities by the specified field and direction (`[ASC]` or `[DESC]`). For example, `?order_by=id[ASC]`.

Valid fields for ordering: `id`. (default: `"id[DESC]"`) |

Values for `verification_type`:

- `onboarding` — A verification created as part of account onboarding.
- `domain` — A verification created for a domain review.

## Response (200)

- `data`: array (required)
  - `id`: string (required) — Unique Paddle ID for this verification entity, prefixed with `slrvrf_`. (pattern: `^slrvrf_[a-z\d]{26}$`)
  - `status`: string (required) — Overall status of the verification, derived from the status of its steps. `pending` until the first step exists.
    - `pending` — Verification hasn't started, or is waiting for its next step to start.
    - `in_progress` — Paddle is running automated checks. No input is required.
    - `in_review` — Paddle is reviewing the information provided by the account holder.
    - `action_required` — Action is required before the verification can continue.
    - `completed` — Verification is complete. For an `onboarding` verification, the account is ready for live payments.
    - `failed` — Verification didn't complete.
  - `verification_type`: string (required) — Type of verification. An account has at most one `onboarding` verification.
    - `onboarding` — A verification created as part of account onboarding.
    - `domain` — A verification created for a domain review.
  - `created_at`: string (date-time) (required) — RFC 3339 datetime string of when this entity was created. Set automatically by Paddle.
  - `updated_at`: string (date-time) (required) — RFC 3339 datetime string of when this entity was updated. Set automatically by Paddle.
  - `steps`: array (required) — Verification steps that make up this verification.
    - `id`: string (required) — Unique Paddle ID for this verification step entity, prefixed with `slrvrfstp_`. (pattern: `^slrvrfstp_[a-z\d]{26}$`)
    - `key`: string (required) — Key of the verification step.
      - `account_setup` — The account holder submits the prerequisite account details.
      - `domain_review` — Paddle reviews the domain.
      - `business_identification` — Paddle validates the business. Public companies and sole traders don't need this step.
      - `identity_verification` — Paddle validates the stakeholders of the business. Public companies don't need this step.
      - `final_review` — Paddle performs a manual review of the business.
      - `automated_review` — Paddle submits the business to a third-party provider for automated review. Where an account has no completed domain verification yet, this step stays `pending` until one completes.
    - `status`: string (required) — Status of the verification step.

Steps are created as `pending` initially, then move through `in_progress` and `in_review` states as Paddle processes each step.
      - `pending` — This step hasn't started yet.
      - `in_progress` — Paddle is running automated checks for this step. No input is required.
      - `in_review` — Paddle is reviewing this step.
      - `action_required` — Action is required before this step can continue.
      - `failed` — This step didn't complete.
      - `completed` — This step is complete and no further action is required.
    - `expires_at`: string (date-time) | null (required) — RFC 3339 datetime string of when this step expires. `null` if this step never expires.
    - `created_at`: string (date-time) (required) — RFC 3339 datetime string of when this entity was created. Set automatically by Paddle.
    - `updated_at`: string (date-time) (required) — RFC 3339 datetime string of when this entity was updated. Set automatically by Paddle.
- `meta`: object (required) — Information about this response.
  - `request_id`: string (required) — Unique ID for the request relating to this response. Provide this when contacting Paddle support about a specific request.
  - `pagination`: object (required) — Keys used for working with paginated results.
    - `per_page`: integer (required) — Number of entities per page for this response. May differ from the number requested if the requested number is greater than the maximum.
    - `next`: string (uri) (required) — URL containing the query parameters of the original request, along with the `after` parameter that marks the starting point of the next page. Always returned, even if `has_more` is `false`.
    - `has_more`: boolean (required) — Whether this response has another page.
    - `estimated_total`: integer — Estimated number of entities for this response.

For datasets with 100,000 or fewer matches, returns the exact count. For datasets with more than 100,000 matches, returns `100001` to indicate that more than 100,000 entities match. Returns `-1` when counting is skipped or couldn't be calculated.

Use `has_more` and `next` to page through all results rather than relying on `estimated_total` for an exact count.

### Response example

```json
{
  "data": [
    {
      "id": "slrvrf_01jjr5d4c14h4y3lqlk9bedkw7",
      "verification_type": "onboarding",
      "status": "action_required",
      "steps": [
        {
          "id": "slrvrfstp_01jjr5d4c14h4y3lqlk9bedkw8",
          "key": "account_setup",
          "status": "completed",
          "expires_at": null,
          "created_at": "2025-03-10T10:30:00.00Z",
          "updated_at": "2025-03-10T10:30:00.00Z"
        },
        {
          "id": "slrvrfstp_01jjr5d4c14h4y3lqlk9bedkw9",
          "key": "automated_review",
          "status": "action_required",
          "expires_at": null,
          "created_at": "2025-03-10T10:30:00.00Z",
          "updated_at": "2025-03-10T10:30:00.00Z"
        }
      ],
      "created_at": "2025-03-10T10:30:00.00Z",
      "updated_at": "2025-03-10T10:30:00.00Z"
    }
  ],
  "meta": {
    "pagination": {
      "per_page": 50,
      "estimated_total": 1,
      "next": "https://api.paddle.com/verifications?after=slrvrf_01jjr5d4c14h4y3lqlk9bedkw7",
      "has_more": false
    },
    "request_id": "80e30719-f099-52de-92c4-1d2b7b7247f3"
  }
}
```
