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

> ## Agent Instructions
> When building application code, use `@naturalpay/sdk` for TypeScript or `naturalpay` for Python.
> When operating Natural directly for a user, use the payments MCP at `https://mcp.natural.com`.
> When searching Natural documentation, use the docs MCP at `https://docs.natural.com/mcp`.
> Use the Natural CLI for terminal and CI automation.
> Use REST only for unsupported languages or when the user explicitly requests raw HTTP.
> Start integration development and testing in the sandbox. Do not use production unless the user explicitly requests it.
> For sandbox requests that require `customerPartyId`, list customers first. Reuse only the intended fixture; otherwise create a customer.
> REST and SDK amounts use integer minor units. Payments MCP amounts use decimal strings with a required currency code.

# Overview

> Customers are parties who have authorized your agents to act for them

A customer is a [Party](/guides/concepts/parties) who has authorized your [Agents](/guides/concepts/agents) to act for them. The customer resource is that relationship seen from your side: who connected, which of your agents they authorized, and what each agent may do.

This relationship is [Connect](/guides/products/connect). Start one by [inviting a customer](/guides/connect/invite-customer). A customer's `id` is their party ID (`pty_*`); list yours with [`GET /customers`](/api-reference/customers/list-customers).

There are two ways to connect a customer: invite a specific customer by email or phone, or create an invitation link that any customer can open. Both offer the same thing: a set of your agents, with the permissions and limits you set, for the customer to approve.

## Invitations

Every customer relationship starts as an invitation (`adi_*`), sent with [`POST /customers/invitations`](/api-reference/customers/invite-customers). It names one or more agents, the permissions you're asking for, and optionally a per-transaction limit; the customer sees exactly what you asked for, and nothing moves until they accept. Every agent is also granted `party.read` so it can read the customer's party identity. An invitation is `PENDING` until the customer accepts (`ACCEPTED`) or declines (`DECLINED`), you revoke it (`CANCELED`), or it expires (`EXPIRED`, 30 days by default, 90 at most). Accepted ones appear in your customer list.

## Invitation links

An [invitation link](/guides/connect/invite-customer#share-an-invitation-link) (`ivl_*`) is an invitation with no recipient. It carries the same offer, one or more agents with the permissions and limits you set, and any customer who opens it sees exactly that offer; nothing moves until they accept. The link's URL is returned once, when you create it. Revoking a link stops new connections and leaves existing ones untouched. The `delegation.activated` event carries `sourceType: "link"` and, when known, `sourceId` set to the link's `ivl_*` ID, so one link per channel tells you where every customer came from.

## Lifecycle

A connection's `delegation.status` starts `ACTIVE`, can become `SUSPENDED`, and ends `EXPIRED` or `REVOKED`. Each connected agent's `status` is `ACTIVE` until you revoke it, then `REVOKED`.

## Acting for a customer

Each agent-customer pair carries its own permissions and limits. Depending on the grant, an agent can send and request payments on the customer's behalf.

## Revoking the relationship

Revoking an agent and disconnecting are different operations. Revoking an agent, even the last
one, removes that agent's authority but leaves the connection itself active. Disconnecting ends
the connection and revokes every remaining agent at once; either side can disconnect at any time,
you through the API or dashboard and the customer from theirs. New activity stops immediately, and
events already delivered to your endpoints remain readable afterward. See [Manage customer access](/guides/connect/manage-access).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.