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

# Customers

> Create and read the partner-scoped customer record.

A customer is **your** user. Key them with `external_id` on create — not `customer_id`. Swapnice returns `customer.id` for connection, consent, event, and profile calls.

Private consumer-app fields (wallet, Plaid, government id, precise address) are never accepted or returned here. `profile` is public display fields only.

## Endpoints in this group

| Method | Path                                                                   | Scope             |
| ------ | ---------------------------------------------------------------------- | ----------------- |
| `POST` | [`/v1/customers`](/partners/api-reference/customers-upsert)            | `customers:write` |
| `GET`  | [`/v1/customers/{customer_id}`](/partners/api-reference/customers-get) | `customers:read`  |

`POST` is an upsert. Replaying the same `Idempotency-Key` or the same `external_id` does not create a duplicate.

```json theme={null}
{
  "external_id": "partner_user_1842",
  "profile": { "username": "collector1842" },
  "metadata": { "source": "ios" }
}
```
