---
title: "Update capability request"
method: PATCH
path: "/v1/requests/{id}"
tags: ["Capability Requests"]
---

# Update capability request

`PATCH /v1/requests/{id}`

## Request

- Base URL: `https://api.paymongo.com`
- URL: `https://api.paymongo.com/v1/requests/{id}`
- Auth: one of:
  - HTTP basic
  - HTTP bearer

Corrects or adds to the request's `kyb_data`, and attaches documents. Never changes the status.

`kyb_data` is shallow-merged into what is stored — top-level keys you send overwrite or add, every other key is kept — and re-validated the way create validates it. Documents attach the same way as on create (`multipart/form-data`, one `files_<purpose>` part per document) and are appended to what that key already holds.

**During `pending_clarification` this call alone does not return the request to review** — follow it with `POST /v1/requests/{id}/resubmit`. See the [Capability requests API](https://docs.paymongo.com/docs/onboarding-aas-capability-requests) guide.

## Path parameters

- `id` string, required

## Headers

- `Account-ID` string

## Request body

- object
  - `kyb_data` union: Pick the shape for the request's `product_code`. Any `files_<purpose>` key beyond the ones listed is also accepted and stored verbatim (except `files_draft`).
    - object: `prd_svc_paymongo_account_update`. A PARTIAL payload — only the fields being changed. `change_reason` is required unless the payload changes only `business_size` and/or `business_age`. Validation rules and required documents: [Account update](https://docs.paymongo.com/docs/onboarding-aas-capability-requests#account-update).
      - `change_reason` string: Why the merchant is changing their details. Required unless the payload is auto-approvable.
      - `business_trade_name` string
      - `business_legal_name` string
      - `business_type` 'individual' | 'sole_proprietor' | 'partnership' | 'corporation'
      - `is_one_person_corporation` boolean
      - `business_description` string
      - `business_industry` string: The business's Merchant Category Code (MCC). See [Merchant Category Codes](https://docs.paymongo.com/docs/account-settings-merchant-category-codes) for the list.
      - `business_size` 'less_than_10' | 'between_10_and_50' | 'between_51_and_250' | 'greater_than_250'
      - `business_age` 'less_than_1_year' | 'between_1_and_2_years' | 'between_2_and_5_years' | 'greater_than_5_years'
      - `business_estimated_monthly_volume` 'less_than_100K' | 'between_100K_and_300K' | 'between_300K_and_500K' | 'between_500K_and_1M' | 'between_1M_and_3M' | 'greater_than_3M'
      - `business_website` string
      - `business_tin` string
      - `business_has_physical_stores` boolean
      - `business_address` KybDataAddress
        - `line1` string
        - `line2` string
        - `city` string
        - `state` string
        - `postal_code` string
        - `country` string: ISO 3166-1 alpha-2 country code.
      - `customer_service_number` string
      - `support_email` string, email
      - `plugin` boolean
      - `tax_gross_remittances` 'do_not_exceed_500k' | 'exceed_500k': `do_not_exceed_500k` requires `ack_sd_requirement` true in the same payload.
      - `ack_sd_requirement` boolean
      - `files_signed_request_letter` union: The id of a file uploaded with this request, or an array of them. To upload a document, send it as a `files_<purpose>` part of a `multipart/form-data` body.
        - string
        - string[]
    - object: `prd_svc_paymongo_ewallet_gcash`, `prd_svc_paymongo_ewallet_grabpay`, `prd_svc_paymongo_ewallet_maya`, `prd_svc_paymongo_ewallet_shopeepay` and `prd_svc_paymongo_card_visa_mastercard`. The ACCOUNT is the source of truth, so `kyb_data` is normally `{}` — nothing needs re-sending. If `GET /v1/requests/eligibility/{product_code}` reports a missing field, include it here (for example `business_website`); a missing document is attached as a `files_<purpose>` part of a `multipart/form-data` body. What you send fills the gap for the eligibility check and is written to the account on approval.
    - object: `prd_svc_paymongo_tax_document`. Documents only.
      - `files_bir_2303` union: The id of a file uploaded with this request, or an array of them. To upload a document, send it as a `files_<purpose>` part of a `multipart/form-data` body.
        - string
        - string[]
      - `files_tax_exemption` union: The id of a file uploaded with this request, or an array of them. To upload a document, send it as a `files_<purpose>` part of a `multipart/form-data` body.
        - string
        - string[]
      - `files_tax_sworn_declaration` union: The id of a file uploaded with this request, or an array of them. To upload a document, send it as a `files_<purpose>` part of a `multipart/form-data` body.
        - string
        - string[]

## Response `200`

OK

- object: Standard response containing data and its metadata if any
  - `data` MerchantRequestResDTO
    - `account_id` string
    - `cancelled_at` string, date-time
    - `completed_at` string, date-time
    - `created_at` string
    - `declined_at` string, date-time
    - `id` string: ID is the unique identifier of this request.
    - `kyb_data` object: KybData is the KYC/KYB details submitted for this request, as a JSON object.
    - `merchant_note` MerchantNoteDTO
      - `note` string
      - `requested_custom_files` string[]: RequestedCustomFiles are reviewer-typed names for documents outside the purpose list.
      - `requested_fields` string[]: RequestedFields are kyb_data field keys the merchant must resupply.
      - `requested_files` string[]: RequestedFiles are document purposes the merchant must re-upload, without the `files_` prefix.
      - `set_at` string
    - `organization_data` object
    - `pending_clarification_at` string, date-time
    - `processed_at` string, date-time
    - `product_code` string: ProductCode is the product the request was opened for.
    - `request_type` 'account_update' | 'onboarding'
    - `status` 'draft' | 'submitted' | 'under_review' | 'pending_clarification' | 'processing' | 'completed' | 'declined' | 'cancelled'
    - `submitted_at` string, date-time
    - `under_review_at` string, date-time
    - `updated_at` string
  - `has_more` boolean

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `500`: Internal Server Error

---

[API](https://skmtc.dev/paymongo/apis/onboarding-api.md) - [All operations](https://skmtc.dev/paymongo/apis/onboarding-api/llms.txt) - [OpenAPI document](https://skmtc.dev/paymongo/apis/onboarding-api/revisions/36885f98768f?raw)
