Send a branding test email
Send a live test email using the company's saved branding settings. The email is rendered with the currently persisted branding (not a draft). Save changes with PATCH /branding before calling this. `email_type` selects the template: receipt | login | invoice (default). Limited to 3 requests per minute per user.
Authorization
bearerAuth Supabase JWT bearer token for dashboard / user-scoped endpoints. Role-derived scopes: ROOT/ADMIN → full admin; USER → read-only treasury.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://loading/v1/auth/branding/email/test" \ -H "Content-Type: application/json" \ -d '{ "to": "user@example.com" }'{
"success": true,
"timestamp": "2019-08-24T14:15:22Z",
"data": null,
"message": "string",
"pagination": {
"total": 0,
"limit": 1,
"offset": 0,
"has_more": true,
"truncated": true,
"cursors": {
"first": "string",
"last": "string"
}
}
}{
"success": false,
"timestamp": "2019-08-24T14:15:22Z",
"error": {
"code": "string",
"message": "string",
"details": null
}
}{
"success": false,
"timestamp": "2019-08-24T14:15:22Z",
"error": {
"code": "string",
"message": "string",
"details": null
}
}{
"success": false,
"timestamp": "2019-08-24T14:15:22Z",
"error": {
"code": "string",
"message": "string",
"details": null
}
}{
"success": false,
"timestamp": "2019-08-24T14:15:22Z",
"error": {
"code": "string",
"message": "string",
"details": null
}
}Update company branding
Partially update branding for the authenticated user's company. Only provided fields are overwritten. Surface objects (checkout, email, etc.) are field-level merged — you can pass `{ checkout: { button_color: '#...' } }` without affecting other checkout fields. Changes are written to the audit log automatically.
Register custom email sending domain
Register or replace the custom email sending domain for this company. Returns SPF and DKIM DNS records to add. After adding DNS records, use GET to poll verification status. Limited to 5 requests per minute to prevent domain-change spam.