Customers represent the individuals or businesses that pay you through Marlin. Each customer record is scoped to your merchant account and identified primarily by their Solana wallet address. When you create an invoice, Marlin automatically upserts a customer record for you — but you can also create and manage customers directly using these endpoints. TheDocumentation Index
Fetch the complete documentation index at: https://yanhgming.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
GET /api/customers/:id endpoint returns the customer’s full invoice and subscription history.
GET /api/customers
List all customers on your merchant account, ordered newest-first.Query parameters
Free-text search across
walletAddress, label (display name), and email.Response — 200 OK
Returns an array of customer objects. Each object includes_count: { invoices: number, subscriptions: number } with aggregate totals.
Database UUID.
Your merchant account ID.
The customer’s Solana wallet address (base58).
Customer email address.
Display name for the customer.
ISO 8601 creation timestamp.
ISO 8601 last-updated timestamp.
Aggregate counts:
{ invoices: number, subscriptions: number }.POST /api/customers
Create a new customer record. If a customer with the givenwalletAddress already exists on your account, Marlin upserts the record — updating email and label if provided — and returns the existing customer rather than creating a duplicate.
Request body
The customer’s Solana wallet address (base58, 32–44 characters).
Customer email address. Marlin uses this address when delivering invoice notification emails.
Display name for the customer (max 100 characters).
Response — 201 Created
Returns the created or upserted customer object.Database UUID.
Your merchant account ID.
The customer’s Solana wallet address.
Customer email address.
Display name.
ISO 8601 creation timestamp.
ISO 8601 last-updated timestamp.
PATCH /api/customers/:id
Update theemail or label of an existing customer. Both fields accept null to clear a previously set value.
Path parameters
The customer’s database UUID.
Request body
All fields are optional. Include only the fields you want to change.New email address, or
null to remove the existing email.New display name (max 100 characters), or
null to remove the existing label.Response — 200 OK
Returns the updated customer object. Error casesNOT_FOUND(404) — The customer does not exist or does not belong to your account.VALIDATION_ERROR(400) — The request body failed schema validation (e.g. invalid email format).