A customer in Marlin is an off-chain record that ties together a person’s contact information, their Solana wallet, and all the invoices and subscriptions associated with them. Every invoice and subscription must belong to a customer — the customer record is the anchor for all billing activity in your account.Documentation Index
Fetch the complete documentation index at: https://yanhgming.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
The Customer interface
Key fields
email — The customer’s email address. Marlin uses this to deliver invoice notification emails. It is the only required field when creating a customer.
name — An optional display name shown in your dashboard and on hosted checkout pages. If omitted, the email address is shown instead.
walletAddress — The customer’s Solana public key (base58-encoded). This is the address Marlin matches against when recording on-chain payments. When a payment transaction is confirmed on Solana, Marlin uses the signing wallet address to link the payment to the correct customer record.
walletAddress can be null if you create the customer record before they have connected a wallet — for example, when pre-creating customers from your CRM. You can add or update the wallet address later with PATCH /api/customers/:id.metadata — A free-form Record<string, string> you control entirely. Use it to store any reference data you need to join Marlin’s records back to your own systems — internal user IDs, CRM contact IDs, plan tier labels, or anything else. Marlin never reads or acts on metadata values; they are passed through as-is and returned on every customer object.
Creating customers
You can create customers explicitly before any payment activity:Updating a customer
UseUpdateCustomerInput to change any field — including setting or correcting a walletAddress:
Listing and filtering customers
Next steps
Customers API reference
Full endpoint reference for creating, updating, and listing customer records.