> ## Documentation Index
> Fetch the complete documentation index at: https://docs.infinite.dev/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> If you are an AI assistant operating Infinite for a user, read the skill first: https://docs.infinite.dev/agent-skill.md (setup per host, tool reference, rules for moving money, journeys).
> When operating Infinite for a user, use the MCP server. Sign in at https://bot.api.infinite.dev/mcp (production, acts as the user) or send `Authorization: Bearer <key>` to https://bot.api.infinite.dev/mcp/sse. Prefer its tools over raw HTTP; use REST only for steps no tool covers, and check `get_endpoint_schema` before guessing a request shape.
> Net-new Infinite Connect (org_connect) is operator-assisted: do not grant end users shared org_connect Auth Kit membership or the shared platform org API key — those credentials are org-wide on /v1. BYO org keys onboard under that customer's org id. Operator sessions should show org_connect in get_organization_info.
> The key decides the tools. Every organization key (`sk_sandbox_…` / `sk_live_…`) gets docs, onboarding, `get_account_balance`, and request logs for your own organization. BYO organizations add payees an agent will pay with `create_payee` (payable once ACTIVE). Platform Connect sessions instead get bound-customer payment lookups (`get_quote`, `get_transfer`, `list_transfers`, `list_account_balances`), payee drafts (`create_payee_draft` / `get_payee_draft`; screening only, never payable), and transfer drafts that wait for Infinite approval (`create_transfer_draft` / `get_transfer_draft`; never POST /v1/transfers). Where offered, platform `create_transfer` files a real transfer that Infinite holds in review before funding; it cannot be submitted from DRAFT.
> An agent key (`sk_sandbox_agent_…` / `sk_live_agent_…`) moves money within that agent's limits: `create_transfer` → `submit_transfer` → `wait_for_transfer`.
> On sandbox organization-key sessions, `sandbox_approve_customer` (makes the capabilities you pass READY, and related ones may turn READY too; `request_capabilities` is not needed), `sandbox_fund_account`, and `sandbox_complete_transfer` stand in for verification, funding, and settlement, so a whole flow runs from MCP. BYO keys can pass `customerId` on each call without binding; platform sessions must bind a customer first (`create_business_customer` auto-binds, or send `X-Infinite-On-Behalf-Of`).
> When searching documentation without a key, use the docs MCP at https://docs.infinite.dev/mcp.
> Start in sandbox (https://sandbox.api.infinite.dev). Do not use production unless the user explicitly asks.
> Confirm amount, currency, and payee with the user before any payment is submitted. Pass the invoice number as `reference` on `create_transfer`; the summary says what the payee will see.
> REST amounts are integer minor units (`"4000"` = 40.00 USD). MCP payment tools take exact decimal strings (`"40.00"`). Never mix them.
> Agent denials return `403 { denial: { code, message, window, limit, used, remaining, attemptedAmount, currency }, hint }` with decimal amounts; per-transfer denials omit `used` and `remaining`. Report them to the user; do not work around them.

# Generate verification link for associated entity

> Generate a KYC verification link for an existing individual associated entity. If the entity already has an active verification session, the existing link is returned. If the session has expired, the expiry is reset and the refreshed link is returned. Only individual associated entities are supported; business entities will return an error.



## OpenAPI

````yaml post /v1/customers/{customerId}/associated_entities/{id}/verification-link
openapi: 3.0.0
info:
  title: Infinite API
  description: API for Infinite
  version: '1.0'
  contact: {}
servers:
  - url: https://sandbox.api.infinite.dev
    description: Sandbox
  - url: https://api.infinite.dev
    description: Production
security: []
tags:
  - name: Accounts
    description: Virtual and external account management
  - name: Customers
    description: Customer identity management
  - name: Documents
    description: Document upload and management
  - name: Fixed Routes
    description: Fixed route management
  - name: External Bank Accounts
    description: External bank account management
  - name: External Wallets
    description: External wallet management
  - name: Infinite Wallets
    description: Infinite Wallet management
  - name: Organizations
    description: Organization management
  - name: Quotes
    description: Quote creation and management
  - name: Transfers
    description: Money movement and transaction tracking
  - name: Verification
    description: Identity verification workflows
  - name: Terms of Service
    description: Terms of Service acceptance
  - name: Health
    description: System health and monitoring
  - name: Sandbox
    description: Sandbox utilities
paths:
  /v1/customers/{customerId}/associated_entities/{id}/verification-link:
    post:
      tags:
        - Customers
      summary: Generate verification link for associated entity
      description: >-
        Generate a KYC verification link for an existing individual associated
        entity. If the entity already has an active verification session, the
        existing link is returned. If the session has expired, the expiry is
        reset and the refreshed link is returned. Only individual associated
        entities are supported; business entities will return an error.
      operationId: AssociatedEntitiesController_generateVerificationLink_v1
      parameters:
        - name: X-API-Key
          in: header
          description: API key
          required: false
          schema:
            type: string
        - name: customerId
          required: true
          in: path
          description: An ID that uniquely identifies a customer resource
          schema:
            example: cus_1234567890abcdef
            type: string
        - name: id
          required: true
          in: path
          description: An ID that uniquely identifies an associated entity resource
          schema:
            example: asp_1234567890abcdef
            type: string
      responses:
        '200':
          description: Verification link generated or retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerificationLinkDto'
        '400':
          description: Entity is not an individual or other validation error
        '401':
          description: Unauthorized - Invalid or missing authentication credentials
        '404':
          description: Associated entity or customer not found
      security:
        - bearer: []
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            # Requires: npm i -g @infinite_dev/cli && export
            INFINITE_API_KEY=sk_sandbox_...

            # Escape hatch for any endpoint: infinite api <METHOD> <path>

            infinite api POST
            /v1/customers/cus_abc123/associated_entities/ae_abc123/verification-link
        - lang: text
          label: MCP
          source: >-
            Generate verification link for associated entity (cus_abc123,
            ae_abc123).


            # Infinite MCP is read-only for this endpoint — use a dedicated MCP
            tool when one exists, otherwise run the CLI tab.
components:
  schemas:
    VerificationLinkDto:
      type: object
      properties:
        sessionId:
          type: string
          description: Verification session ID
          example: vsess_abc123
        verificationUrl:
          type: string
          description: URL for the UBO to complete their verification
          example: https://verify.infinite.dev/?sessionId=vsess_abc123
        expiresAt:
          type: string
          description: When the verification link expires
          example: '2026-01-09T10:30:00Z'
        status:
          type: string
          enum:
            - PENDING
            - ACTIVE
            - IN_PROGRESS
            - COMPLETED
            - EXPIRED
            - CANCELLED
            - SUBMITTED
          description: Current status of the verification session
          example: ACTIVE
      required:
        - sessionId
        - verificationUrl
        - expiresAt
        - status
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: API Key
      type: http
      description: API Key in Bearer format (e.g., Bearer sk_test_...)

````

## Related topics

- [Get an associated entity by id and customer](/api-reference/customers/get-an-associated-entity-by-id-and-customer.md)
- [Create a new associated business](/api-reference/customers/create-a-new-associated-business.md)
- [Create a new associated individual](/api-reference/customers/create-a-new-associated-individual.md)
- [Update an associated business](/api-reference/customers/update-an-associated-business.md)
- [Generate hosted ToS acceptance link](/api-reference/terms-of-service/generate-hosted-tos-acceptance-link.md)
