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

# Checkout customers

> Create, retrieve, and delete Neuro-Pay checkout customers

## Overview

Checkout customers let you associate hosted payments with a reusable customer
record and, depending on your setup, save cards for future use.

## Endpoints

| Method | Path                          | Purpose                      |
| ------ | ----------------------------- | ---------------------------- |
| `POST` | `/checkout/create-customer`   | Create a checkout customer   |
| `POST` | `/checkout/retrieve-customer` | Retrieve a checkout customer |
| `POST` | `/checkout/delete-customer`   | Delete a checkout customer   |

## Create customer

`POST /checkout/create-customer`

### cURL example

```bash theme={null}
curl -X POST https://api.neuro-admin.com/checkout/create-customer \
  -H "Authorization: Bearer $NEURO_PAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "first_name": "Ada",
    "last_name": "Lovelace",
    "email": "ada@example.com"
  }'
```

### Request body

```json theme={null}
{
  "first_name": "Ada",
  "last_name": "Lovelace",
  "email": "ada@example.com",
  "metaData": {
    "crmId": "cust_123"
  }
}
```

### Fields

| Field        | Type   | Required | Description                                |
| ------------ | ------ | -------- | ------------------------------------------ |
| `first_name` | string | yes      | Customer first name                        |
| `last_name`  | string | yes      | Customer last name                         |
| `email`      | string | yes      | Customer email                             |
| `metaData`   | object | no       | Optional metadata stored with the customer |

### Response shape

```json theme={null}
{
  "customer_id": "9a7991cb1e8e9f30911970e913ad4841",
  "first_name": "Ada",
  "last_name": "Lovelace",
  "email": "ada@example.com",
  "client_page": "https://neuro-admin.com/...",
  "metaData": {
    "crmId": "cust_123"
  },
  "savedCards": []
}
```

## Retrieve customer

`POST /checkout/retrieve-customer`

### cURL example

```bash theme={null}
curl -X POST https://api.neuro-admin.com/checkout/retrieve-customer \
  -H "Authorization: Bearer $NEURO_PAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "9a7991cb1e8e9f30911970e913ad4841"
  }'
```

### Request body

```json theme={null}
{
  "customer_id": "9a7991cb1e8e9f30911970e913ad4841"
}
```

Returns the same customer shape, including any `savedCards` available for your
account configuration.

## Delete customer

`POST /checkout/delete-customer`

### cURL example

```bash theme={null}
curl -X POST https://api.neuro-admin.com/checkout/delete-customer \
  -H "Authorization: Bearer $NEURO_PAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "9a7991cb1e8e9f30911970e913ad4841"
  }'
```

### Request body

```json theme={null}
{
  "customer_id": "9a7991cb1e8e9f30911970e913ad4841"
}
```

Typical delete response:

```json theme={null}
{
  "status": "success",
  "message": "Customer deleted.",
  "customer_id": "9a7991cb1e8e9f30911970e913ad4841"
}
```

## Notes

* Customers belong to the authenticated company account.
* The API returns `400` if the customer does not exist or belongs to a
  different company.
