Overview: Settings
Overview: Settings
Configure your PaymentKit account settings to customize branding, billing behavior, notifications, and more.
Account settings
Access settings through the dashboard sidebar under Settings.
Brand & Identity
Customize how your business appears to customers:
Upload a high-resolution logo (at least 512x512px) for best results across all devices and email clients.
Custom domain
Use your own domain for hosted pages:
- Navigate to Settings > Custom Domain
- Enter your desired subdomain (e.g.,
pay.yourcompany.com) - Add the provided DNS records to your domain
- Wait for verification (usually within an hour)
Once configured, your checkout and portal URLs will use your custom domain instead of paymentkit.com.
Business details
Configure your business information for invoices and tax compliance:
Billing settings
Invoice settings
Configure default invoice behavior:
Preview an invoice PDF
Generate a sample invoice PDF that uses your account’s real invoice settings and branding (logo, address, tax IDs, footer) but with mock line-item data. Use it to iterate on invoice styling without issuing a real invoice.
The endpoint takes no request body and returns the PDF bytes directly (Content-Type: application/pdf, served inline as invoice-preview.pdf).
The preview reflects your current invoice settings and brand settings — update those first, then regenerate the preview to see your changes.
This endpoint requires the Settings · View permission.
Dunning behavior
Configure what happens when payments fail:
Notification settings
Notification settings control the merchant-facing alerts your team receives about payment activity — both via Slack and via email to your own team (distinct from the customer-facing emails below). Configure them under Settings > Notifications or via the API.
Slack notifications
Send real-time alerts to your team’s Slack channels when payments succeed or fail. PaymentKit posts to one or more Slack incoming webhook URLs.
Get notification settings
Response:
Slack webhook URLs are secrets. The GET response redacts each stored URL to a masked sentinel (https://hooks.slack.com/services/T***/B***/***) so it never exposes the raw URL. Use it only to display that webhooks are configured — never re-send a masked value back to the API.
Update notification settings
Send only the fields you want to change. Omitted fields are left untouched.
Settings fields:
Because GET returns masked webhook URLs, only include slack_webhook_urls in a PATCH when the user has actually entered or edited a URL. To keep existing webhooks unchanged, omit the field entirely. The API rejects any payload containing the redaction marker *** to prevent silently overwriting a real webhook with a masked placeholder.
Reset notification settings
Restore notification settings to their defaults with a DELETE. The response returns the reset (default) settings.
Email settings
Email notifications
Configure which emails are sent to customers:
Email templates
Customize the content of customer emails:
- Navigate to Settings > Email Templates
- Select the template to customize
- Edit the subject line and body content
- Preview and save changes
Use template variables like {{customer_name}} and {{invoice_total}} to personalize emails.
Checkout settings
Payment methods
Enable the payment methods available at checkout:
- Credit/debit cards - Visa, Mastercard, Amex, etc.
- Digital wallets - Apple Pay, Google Pay
- Bank payments - ACH, SEPA (where supported)
- Buy now, pay later - Klarna, Afterpay (where supported)
Available payment methods depend on your connected payment processors and their capabilities.
Checkout options
Team settings
Team members
Invite team members to access your PaymentKit account:
- Navigate to Settings > Team
- Click Invite Member
- Enter their email and select a role
- They’ll receive an invitation email
Roles and permissions
API settings
API keys
Manage your API keys:
- Create new keys - Generate secret and publishable keys
- Rotate keys - Create new keys while keeping old ones active
- Revoke keys - Immediately disable compromised keys
Always use separate API keys for test and production environments. Never share secret keys.
Webhooks
Configure webhook endpoints to receive event notifications:
Test mode
Toggle between test and live modes at the top of the dashboard:
Always test your integration thoroughly in test mode before going live. Test mode data is separate from live data.
Sandbox accounts
Sandbox accounts are isolated child accounts linked to a parent account, used to test integrations without touching live data. Manage them under Settings or via the API.
Creating and archiving sandbox accounts require a signed-in user — these endpoints reject API keys and return 400 with "API keys not supported for this endpoint". Use a user session token (not an sk_live_... API key) in the Authorization header for those two operations. Listing sandbox accounts accepts either a user session token or an API key.
List sandbox accounts
Returns a paginated response. Accepts an API key or a user session token.
Create a sandbox account
Requires a signed-in user (API keys are rejected). The request body takes a required name and an optional description. Returns the created sandbox account object.
Archive a sandbox account
Requires a signed-in user (API keys are rejected). Archiving hides a sandbox from the UI and blocks further access. The underlying data is preserved in the database, not deleted.
A successful archive returns 204 No Content.
Archiving a sandbox account is a one-way operation — the sandbox cannot be un-archived or accessed again afterward.