Skip to main content
Customers represent billable accounts; Entities represent child users, agents, projects, or environments. UpsertCustomer sends the merchant secret key to Core, which derives the owning organization from that key.

Upsert a customer and Entity

Set BillingConfiguration with the Stripe customer ID to link it in the same call (requires v0.11.0). Nozle stores the link and does not create a new Stripe customer. Sending the same upsert again is safe.
PaymentProvider is required when BillingConfiguration is set. Nozle keeps the assignment with or without SyncWithProvider, and checkout charges only through the assigned connection. A returned Customer without a provider has a nil BillingConfiguration, so it can be passed back to UpsertCustomer unchanged. See Assign the connection to customers. Use GetEntity, ListEntities, ActivateEntity, SuspendEntity, and BulkUpsertEntities for the Entity lifecycle. List pages accept PageOptions with status, limit (1–100), and cursor. Bulk upsert accepts 1–500 distinct IDs. Mutations use caller-supplied idempotency keys of at most 255 UTF-8 bytes. Entity lifecycle changes do not emit seat billing events automatically.

Read and update Entities

Entity status accepts active, suspended, or deleted. Status helpers read the Entity first and preserve its name and metadata. Retry an uncertain mutation with the same key and payload.

Bulk upsert and seat billing

Track seat additions and removals separately when your catalog bills seats. Use the same Entity ID for per-Entity credits and usage attribution.