---
title: "Submit agent customer for verification"
method: POST
path: "/agents/me/verifications"
tags: ["Agent Operations"]
---

# Submit agent customer for verification

`POST /agents/me/verifications`

## Request

- Base URL: `https://api.lightspark.com/grid/2025-10-13`
- URL: `https://api.lightspark.com/grid/2025-10-13/agents/me/verifications`
- Auth: HTTP bearer

Submit the authenticated agent's individual customer for KYC verification. The response reports the current status and any identity fields that still need to be supplied. Requires the MANAGE_IDENTITY permission in the agent's policy.

## Response `200`

Verification status returned

- Verification
  - `id` string, required: Unique identifier for this verification
  - `customerId` string, required: The ID of the customer being verified
  - `verificationStatus` 'RESOLVE_ERRORS' | 'PENDING_MANUAL_REVIEW' | 'IN_PROGRESS' | 'APPROVED' | 'REJECTED' | 'READY_FOR_VERIFICATION', required: Current status of the KYC/KYB verification
  - `errors` VerificationError[], required: List of issues preventing verification from proceeding. Empty when verificationStatus is APPROVED or IN_PROGRESS.
    - `resourceId` string, required: ID of the resource with the issue (Customer, BeneficialOwner, or Document)
    - `type` 'MISSING_FIELD' | 'INVALID_FIELD' | 'MISSING_LEGAL_PRESENCE_DOCUMENT' | 'MISSING_CONTROL_STRUCTURE_DOCUMENT' | 'MISSING_OWNERSHIP_STRUCTURE_DOCUMENT' | 'MISSING_PROOF_OF_ADDRESS_DOCUMENT' | 'MISSING_IDENTITY_DOCUMENT' | 'INVALID_DOCUMENT' | 'EXPIRED_DOCUMENT' | 'POOR_QUALITY_DOCUMENT' | 'SUSPECTED_FRAUD_DOCUMENT' | 'WRONG_DOCUMENT_TYPE' | 'INCOMPLETE_DOCUMENT' | 'UNREADABLE_DOCUMENT' | 'DOCUMENT_VERIFICATION_FAILED' | 'APPLICANT_SANCTIONED' | 'APPLICANT_FRAUD' | 'APPLICANT_CRIMINAL_RECORD' | 'APPLICANT_REJECTED' | 'MISSING_BENEFICIAL_OWNER' | 'MISSING_CONTROL_PERSON' | 'MISSING_GOOD_STANDING_DOCUMENT', required: Type of verification error. The category-specific MISSING_*_DOCUMENT types indicate which document category is needed. Document quality types (POOR_QUALITY_DOCUMENT, SUSPECTED_FRAUD_DOCUMENT, etc.) indicate specific issues with uploaded documents. APPLICANT_* types indicate issues with the applicant themselves (sanctions, fraud, criminal records).
    - `field` string: Dot-notation path to the field with the issue. Present when type is MISSING_FIELD or INVALID_FIELD.
    - `acceptedDocumentTypes` DocumentType[]: Document types that would satisfy this requirement. The integrator can upload any one of the listed types. Present when type is MISSING_LEGAL_PRESENCE_DOCUMENT, MISSING_CONTROL_STRUCTURE_DOCUMENT, MISSING_OWNERSHIP_STRUCTURE_DOCUMENT, MISSING_PROOF_OF_ADDRESS_DOCUMENT, MISSING_IDENTITY_DOCUMENT, INVALID_DOCUMENT, or EXPIRED_DOCUMENT. | Error Type | Accepted Document Types | |---|---| | MISSING_LEGAL_PRESENCE_DOCUMENT | CERTIFICATE_OF_INCORPORATION, ARTICLES_OF_INCORPORATION, ARTICLES_OF_ASSOCIATION, STATE_REGISTRY_EXCERPT | | MISSING_CONTROL_STRUCTURE_DOCUMENT | DIRECTOR_REGISTRY, TRUST_AGREEMENT, STATE_COMPANY_REGISTRY, PARTNERSHIP_CONTROL_AGREEMENT | | MISSING_OWNERSHIP_STRUCTURE_DOCUMENT | SHAREHOLDER_REGISTER, TRUST_AGREEMENT, PARTNERSHIP_AGREEMENT | | MISSING_PROOF_OF_ADDRESS_DOCUMENT | UTILITY_BILL, RENT_OR_LEASE_AGREEMENT, ELECTRICITY_BILL, BANK_STATEMENT, TAX_RETURN | | MISSING_IDENTITY_DOCUMENT | PASSPORT, DRIVERS_LICENSE, NATIONAL_ID, RESIDENCE_PERMIT |
    - `reason` string, required: Human-readable description of the issue
  - `createdAt` string, date-time, required: When this verification was created
  - `updatedAt` string, date-time: When this verification was last updated

## Other responses

- `400`: Bad request - Required identity information is invalid
- `401`: Unauthorized
- `403`: Forbidden - Agents API is not enabled for the platform or the agent does not have the MANAGE_IDENTITY permission
- `500`: Internal service error

## Changes

> 115 revisions in range; 2 not diffed.

- **2026-10-28** `9e646a130ea0`: 1 warning
  - added the new `RESIDENCE_PERMIT` enum value to the `errors/items/acceptedDocumentTypes/items/` response property for the response status `200`
- **2026-10-28** `d996ddfb9d2b`: 5 info
  - added the optional property `details/missingFields` to the response with the `400` status
  - added the optional property `details/permission` to the response with the `403` status
  - added the optional property `details/policyDenialReason` to the response with the `403` status
  - added the optional property `details/refusalReason` to the response with the `400` status
  - …1 more
- **2026-10-28** `5abf2bb56bcb`: 1 warning
  - added the new `CORRIDOR_UNDER_MAINTENANCE` enum value to the `code` response property for the response status `403`
- **2026-10-24** `715332dcb111`: 1 warning
  - added the new `EXACT_AMOUNT_UNAVAILABLE` enum value to the `code` response property for the response status `400`
- **2026-10-20** `761d1d030cb5`: 1 warning
  - added the new `CARDHOLDER_AGREEMENT_NOT_ACCEPTED` enum value to the `code` response property for the response status `400`

[Operation history](https://skmtc.dev/lightsparkdev/apis/grid-api/changes/agents/me/verifications/post.md)

---

[API](https://skmtc.dev/lightsparkdev/apis/grid-api.md) - [All operations](https://skmtc.dev/lightsparkdev/apis/grid-api/llms.txt) - [OpenAPI document](https://skmtc.dev/lightsparkdev/apis/grid-api/revisions/7a1db46ec552?raw)
