---
title: "Create a customer"
method: POST
path: "/v0.1/customers"
tags: ["Customers"]
---

# Create a customer

`POST /v0.1/customers`

Creates a new saved customer resource which you can later manipulate and save payment instruments to.

## Request body

- Customer — Saved customer details.
  - `customer_id` string, required — Unique ID of the customer.
  - `personal_details` PersonalDetails — Personal details for the customer.
    - `first_name` string — First name of the customer.
    - `last_name` string — Last name of the customer.
    - `email` string — Email address of the customer.
    - `phone` string — Phone number of the customer.
    - `birth_date` string, date — Date of birth of the customer.
    - `tax_id` string — An identification number user for tax purposes (e.g. CPF)
    - `address` AddressLegacy — Profile's personal address information.
      - `city` string — City name from the address.
      - `country` string — Two letter country code formatted according to [ISO3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
      - `line_1` string — First line of the address with details of the street name and number.
      - `line_2` string — Second line of the address with details of the building, unit, apartment, and floor numbers.
      - `postal_code` string — Postal code from the address.
      - `state` string — State name or abbreviation from the address.

## Response `201`

Returns the customer resource.

- Customer — Saved customer details.
  - `customer_id` string, required — Unique ID of the customer.
  - `personal_details` PersonalDetails — Personal details for the customer.
    - `first_name` string — First name of the customer.
    - `last_name` string — Last name of the customer.
    - `email` string — Email address of the customer.
    - `phone` string — Phone number of the customer.
    - `birth_date` string, date — Date of birth of the customer.
    - `tax_id` string — An identification number user for tax purposes (e.g. CPF)
    - `address` AddressLegacy — Profile's personal address information.
      - `city` string — City name from the address.
      - `country` string — Two letter country code formatted according to [ISO3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
      - `line_1` string — First line of the address with details of the street name and number.
      - `line_2` string — Second line of the address with details of the building, unit, apartment, and floor numbers.
      - `postal_code` string — Postal code from the address.
      - `state` string — State name or abbreviation from the address.

## Other responses

- `400` — The request body is invalid.
- `401` — The request is not authorized.
- `403` — The request is authenticated but not permitted for this operation.
- `409` — A customer with the provided identifier already exists.

## Changes

- **2026-04-13** `d06724d996eb` — 3 info
  - the response property `oneOf[subschema #2]/error_code` became required for the status `400`
  - the response property `oneOf[subschema #2]/error_message` became required for the status `400`
  - the response property `oneOf[subschema #2]/instance` became required for the status `400`
- **2026-03-11** `cd79d83b07e0` — 2 warning, 6 info
  - removed the optional property `error_code` from the response with the `401` status
  - removed the optional property `message` from the response with the `401` status
  - added the non-success response with the status `400`
  - added the optional property `detail` to the response with the `401` status
  - …4 more
- **2025-12-15** `1cc3dc13341a` — 1 breaking
  - request body became required
- **2025-03-29** `040271b0b0c2` — 1 breaking, 6 warning, 9 info
  - the response property `personal_details/address/country` became optional for the status `201`
  - removed the request property `personal_details/address/line1`
  - removed the request property `personal_details/address/line2`
  - removed the request property `personal_details/birthdate`
  - …12 more
- **2025-02-25** `cdadac3315a1` — 2 info
  - the endpoint scheme security `apiKey` was added to the API
  - the endpoint scheme security `oauth2` was added to the API

[Change history](https://skmtc.dev/sumup/apis/sumup-rest-api/changes/v0.1/customers/post.md)

---

[API](https://skmtc.dev/sumup/apis/sumup-rest-api.md) · [All operations](https://skmtc.dev/sumup/apis/sumup-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sumup/sumup-rest-api/revisions/b54086fdb4cc/schema)
