Skip to main content
The Customers API provides a single endpoint to create or update a customer record in Nova.Pay. If the customer already exists (matched by email), their record is updated with the provided data. When you pass create_deal: true, Nova.Pay additionally creates an order for the customer and returns the resulting order_id. All endpoints are relative to the base URL https://pay.nova.money/api/v1.

Create or update a customer

Create a new customer or update an existing one. You can also trigger an order creation in the same request by setting create_deal to true.

Request body

email
string
required
Customer email address. Must be a valid email format. Used as the unique identifier for upsert behaviour.
name
string
required
Customer full name.
phone
string
required
Customer phone number. Maximum 11 characters. Use only digits (e.g., 11999998888).
identification
string
Brazilian CPF (11 digits) or CNPJ (14 digits). Maximum 14 characters.
foreign
boolean
Set to true for customers outside Brazil. When true, identification validation is relaxed.
neighborhood
string
Neighborhood or district of the customer’s address.
number
string
Street number of the customer’s address.
street
string
Street name of the customer’s address.
zipcode
string
Postal/ZIP code of the customer’s address.
state
string
State abbreviation (e.g., SP, RJ).
city
string
City name.
complement
string
Address complement (apartment number, suite, floor, etc.).
tags
string
Comma-separated tags to attach to the customer record.
list_ids
string
Comma-separated list IDs to associate with this customer in connected CRM or email marketing tools.
carrier
string
Carrier name or identifier, used for shipping preferences.
url
uri
Source URL where the customer originated (e.g., a landing page). Stored for attribution purposes.
main_product_id
integer
ID of the primary product to associate with this customer record.
checkout_page_id
string
ID of the checkout page to associate with this customer request.
coupon
string
Coupon code to apply when create_deal: true creates an order.
minimum_retention_value
number
Minimum order value to apply when evaluating retention pricing for this customer.
state_inscription
string
State tax inscription number (Inscrição Estadual). Relevant for business customers.
social_reason
string
Legal company name (Razão Social) for business customers.
municipal_inscription
string
Municipal tax inscription number (Inscrição Municipal). Relevant for service providers.
auxiliary_emails
array of strings
Additional email addresses to associate with this customer. Each entry must be a valid email.
meta
object
Arbitrary key-value metadata to store on the customer record. Values must be strings.
create_deal
boolean
When true, Nova.Pay creates an order for this customer after upserting the customer record. The new order’s ID is returned in order_id.
scheduled_at
datetime
ISO 8601 datetime for scheduling the order, when create_deal: true and the product requires scheduling.
observation
string
Internal observation or note to attach to the order, when create_deal: true.

Response — CustomerResponse

id
integer
Unique numeric ID of the created or updated customer record.
email
string
Customer email address.
identification
string
CPF or CNPJ stored on the customer record.
meta
object
Arbitrary metadata stored on the customer record.
name
string
Customer full name.
phone
string
Customer phone number.
foreign
boolean
Whether the customer is flagged as foreign.
address
object
Customer address details.
order_id
integer
The ID of the order created for this customer. Only present when create_deal: true was sent and an order was successfully created. Returns null otherwise.

Example request and response

When create_deal: true is set, the order creation may fail independently of the customer upsert. Always check the response for order_id to confirm the order was created. If order_id is null, you can create the order separately using POST /orders.