---
title: "List onboarding requests (S2S only)"
method: GET
path: "/v1/internal/requests"
tags: ["internal-requests"]
---

# List onboarding requests (S2S only)

`GET /v1/internal/requests`

Lists onboarding requests with optional filtering by status, product code, assignee, dates, etc. Supports cursor-based pagination.

## Query parameters

- `status` string
- `statuses` string[]
- `product_code` string
- `product_codes` string[]
- `assignee_email` string
- `assignee_emails` string[]
- `include_unassigned` boolean
- `search` string
- `assigned_at_from` string
- `assigned_at_to` string
- `submitted_at_from` string
- `submitted_at_to` string
- `completed_at_from` string
- `completed_at_to` string
- `sort_by` string
- `sort_dir` string
- `cursor` string
- `limit` integer

## Response `200`

OK

- object — Standard response containing data and its metadata if any
  - `data` ListRequestsResDTO
    - `cursor` string
    - `data` RequestResDTO[]
      - `account_id` string — AccountID is required only for Client auth mode, it can be empty for S2S mode
      - `assigned_at` string
      - `assignee_email` string
      - `audit_history` RequestAuditLogResDTO[] — Audit trail - populated when fetching single request details
        - `action_type` string — assigned, unassigned, reassigned, status_changed, field_updated
        - `actor` string — Who performed the action (from JWT admin_id)
        - `created_at` string
        - `field_name` string — Which field was changed
        - `id` string
        - `new_value` string — Value after change (empty for removal)
        - `note` string — Optional human-readable note
        - `previous_value` string — Value before change (empty for initial)
        - `request_id` string
      - `cancelled_at` string
      - `changes` object — Changes gives an old/new view per submitted kyb_data field for account_update requests: old is the organization's current value (fetched live from Core API), new is the submitted value. Populated on the internal detail endpoint only.
      - `completed_at` string
      - `created_at` string
      - `declined_at` string
      - `id` string
      - `internal_note` string
      - `kam_ids` string[]
      - `kyb_data` integer[]
      - `organization_data` integer[]
      - `pending_clarification_at` string
      - `processed_at` string
      - `product_code` string
      - `request_type` string, required
      - `requester_id` string, required
      - `status` string
      - `submitted_at` string
      - `updated_at` string
    - `has_more` boolean
    - `meta` ListRequestsMetaDTO
      - `total_requests` integer — Total requests matching the filter criteria
      - `total_unique_organizations` integer — Total unique organizations matching the filter criteria
  - `has_more` boolean

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `500` — Internal Server Error

---

[API](https://skmtc.net/paymongo/apis/paymongo-api.md) · [All operations](https://skmtc.net/paymongo/apis/paymongo-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/paymongo/paymongo-api/revisions/c18f9a027b2c/schema)
