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

# Customer structure

> Manage the buyers of your project with transaction history

## Structure

A customer is represented in our API by the following structure:

```json theme={"system"}
{
  "id": "clx1a2b3c4d5e6f7g8h9",
  "name": "João Silva",
  "email": "joao@email.com",
  "phone": "11987654321",
  "document": "12345678900",
  "street": "Rua Exemplo",
  "streetNumber": "123",
  "complement": null,
  "neighborhood": "Centro",
  "zipCode": "01234567",
  "city": "São Paulo",
  "state": "SP",
  "country": "BR",
  "isBlocked": false,
  "blockedAt": null,
  "blockedReason": null,
  "blockExpiresAt": null,
  "blockType": null,
  "createdAt": "2026-02-28T09:00:00.000Z",
  "updatedAt": "2026-02-28T09:00:00.000Z"
}
```

## Attributes

<ResponseField name="id" type="string">
  Unique identifier of the customer in CUID format.
</ResponseField>

<ResponseField name="name" type="string">
  Customer's full name.
</ResponseField>

<ResponseField name="email" type="string">
  Customer's email address.
</ResponseField>

<ResponseField name="phone" type="string">
  Phone number with area code, digits only.
</ResponseField>

<ResponseField name="document" type="string">
  Customer's CPF or CNPJ, digits only. Used as a unique identifier per project.
</ResponseField>

<ResponseField name="street" type="string">
  Street name or address line.
</ResponseField>

<ResponseField name="streetNumber" type="string">
  Address number.
</ResponseField>

<ResponseField name="complement" type="string | null">
  Address complement (e.g., `Apto 4`). Optional.
</ResponseField>

<ResponseField name="neighborhood" type="string">
  Customer's neighborhood.
</ResponseField>

<ResponseField name="zipCode" type="string">
  ZIP code, digits only.
</ResponseField>

<ResponseField name="city" type="string">
  Customer's city.
</ResponseField>

<ResponseField name="state" type="string">
  State abbreviation (UF).
</ResponseField>

<ResponseField name="country" type="string">
  Country code in ISO 3166-1 alpha-2 format.
</ResponseField>

<ResponseField name="isBlocked" type="boolean">
  Indicates whether the customer is blocked. Blocked customers cannot generate new transactions.
</ResponseField>

<ResponseField name="blockedAt" type="date-time | null">
  Date and time when the block was applied.
</ResponseField>

<ResponseField name="blockedReason" type="string | null">
  Recorded reason for blocking the customer.
</ResponseField>

<ResponseField name="blockExpiresAt" type="date-time | null">
  Block expiration date. `null` indicates a permanent block until manually unblocked.
</ResponseField>

<ResponseField name="blockType" type="string | null">
  Type of block applied.
</ResponseField>

<ResponseField name="createdAt" type="date-time">
  Date and time when the record was created.
</ResponseField>

<ResponseField name="updatedAt" type="date-time">
  Date and time of the last update.
</ResponseField>

## Next steps

<CardGroup cols={2}>
  <Card title="Get customer by ID" icon="magnifying-glass" href="/en/pages/customers/get">
    Retrieve a specific customer from the project.
  </Card>

  <Card title="Customers" icon="users" href="/en/pages/concepts/customers">
    Understand how Bob links buyers and transactions.
  </Card>
</CardGroup>
