Getting Started
How do I get my API keys?
How do I get my API keys?
- Log in to Alguna Dashboard
- Navigate to Settings → API Keys
- Click Create API Key
- Copy and securely store your key
What's the difference between sandbox and production?
What's the difference between sandbox and production?
Where do I find test card numbers?
Where do I find test card numbers?
How do I avoid creating duplicate customers?
How do I avoid creating duplicate customers?
POST /customers always creates — there is no upsert. Look up first with GET /customers/lookup?alias=<your ID>, create only on a 404, and send an Idempotency-Key on the create so a retry replays instead of duplicating.Set your own ID in aliases at creation time; that is what makes the lookup work next time. See Create or look up?How do I migrate from another billing system?
How do I migrate from another billing system?
- Contact us via Slack or support@alguna.io
- Grant access to your existing billing system (read-only)
- We plan the migration based on your data and requirements
- We execute with stepped rollout to minimize risk
Subscriptions
Can a customer have multiple subscriptions?
Can a customer have multiple subscriptions?
- Different products: Main platform + add-on services
- Different billing entities: Separate invoicing per department
- Multiple contracts: Different terms for different services
How do I handle upgrades mid-billing cycle?
How do I handle upgrades mid-billing cycle?
- Navigate to Subscriptions
- Open the subscription
- Click Change Plan or Edit
- Select the new plan
- Set when the change takes effect
- Review the prorated amount in the preview and confirm
- Credit for unused time on old plan
- Charge for new plan’s remaining time
- Net amount billed immediately
How do I cancel a subscription but let them use until period end?
How do I cancel a subscription but let them use until period end?
- Navigate to Subscriptions
- Find and open the subscription
- Click Cancel Subscription
- Select Cancel at end of period
- Add cancellation reason (optional)
- Confirm
- Remains
activeuntil period ends - Won’t renew
- Changes to
canceledat period end - Triggers
subscription.canceledwebhook at that time
How do I pause a subscription instead of canceling?
How do I pause a subscription instead of canceling?
- Navigate to Subscriptions
- Open the subscription
- Click Pause Subscription
- Set pause duration
- Confirm
How do I grandfather customers on old pricing?
How do I grandfather customers on old pricing?
- Update the plan with new pricing for new customers
- Existing subscriptions keep their current version automatically
- On renewal, configure whether to update pricing in the subscription’s contract terms
How do I add a price to a subscription that hasn't started yet?
How do I add a price to a subscription that hasn't started yet?
effective: immediate — “immediate” means now, which is before the subscription begins.- Still a draft subscription: add the item to its draft version and publish.
- Activated with a future start date: create a new version with
effective_atset to the subscription’s start date and the complete item set. A published version already sits at that date, so you get a409naming it — delete that version, then retry. - From a later date instead: use
POST /subscriptions/{id}/changeswith that explicit date.
Pricing & Packaging
What's the difference between a bundle and a plan?
What's the difference between a bundle and a plan?
If I edit a bundle, do existing customers get the new prices?
If I edit a bundle, do existing customers get the new prices?
Emails
Can emails come from our own address instead of alguna.io?
Can emails come from our own address instead of alguna.io?
Do we need to add SPF, DKIM or DMARC records?
Do we need to add SPF, DKIM or DMARC records?
A customer says they never received an invoice email. Where do I look?
A customer says they never received an invoice email. Where do I look?
- The customer’s contacts. A customer with no contact email receives nothing, and the invoice still progresses. See Customer contacts.
- Settings → Logs → Emails, which shows what was sent and to which address — that separates a missing contact from a deliverability problem.
Can we change the wording, or copy our billing inbox on everything?
Can we change the wording, or copy our billing inbox on everything?
Invoicing & Payments
When are invoices generated?
When are invoices generated?
How do I retry a failed payment?
How do I retry a failed payment?
- Navigate to Invoices
- Find the invoice — it will be Issued or Overdue, with the payment showing as failed
- Click to open invoice details
- Click Retry Payment
- Send customer a billing portal link to update their payment method
- Verify the payment amount
- Check for available credits that could be applied
How do I issue a partial refund?
How do I issue a partial refund?
- Navigate to Invoices
- Find and open the paid invoice
- Click Issue Refund or Create Credit Note
- Enter partial refund amount
- Add reason
- Choose: Refund to payment method OR Store as credit
- Confirm
How do I apply credits to an invoice?
How do I apply credits to an invoice?
- Navigate to Invoices
- Open the invoice
- Click Apply Credits
- Select amount to apply
- Confirm
How do I handle international payments and currencies?
How do I handle international payments and currencies?
- Navigate to Customers → [Customer]
- Edit customer details
- Set preferred currency
- Configure multi-currency pricing on plans/products
- Invoices generate in customer’s currency
- Settlement happens in your configured currencies
What payment methods are supported?
What payment methods are supported?
- Cards: Visa, Mastercard, Amex, Discover, Diners, JCB, UnionPay, eftpos Australia
- Bank transfer: including ACH for US bank accounts
- Stripe Link: saved details through Stripe
- Alguna wallet: pay down an invoice from a prepaid wallet balance
- Offline payment: record a payment taken outside Alguna, such as a wire
How do I stop a payment method appearing in checkout?
How do I stop a payment method appearing in checkout?
I refunded a paid invoice — why does it still say paid?
I refunded a paid invoice — why does it still say paid?
refunded invoice status: the invoice records what was billed and that it was settled at the time, and the reversal is recorded against the payment as a refund.Which record you create matters. A bare refund returns money without changing what was billed — right for a duplicate charge. A credit note applied with a refund reverses the charge itself and flows into revenue and tax — right for an overcharge or a cancelled service. Voiding is not available once an invoice is paid. See What happens to a paid invoice.Does the credit notes endpoint support idempotency keys?
Does the credit notes endpoint support idempotency keys?
POST, PUT, PATCH, DELETE — accepts Idempotency-Key, credit notes included. The only exception is POST /events, which deduplicates on each event’s own unique_id. See Idempotency.Usage-Based Billing
How often should usage events be sent?
How often should usage events be sent?
How do I prevent duplicate usage events?
How do I prevent duplicate usage events?
Can I backfill historical usage data?
Can I backfill historical usage data?
How do I show customers their current usage?
How do I show customers their current usage?
- Navigate to Customers
- Open the customer account
- View Usage tab for current period
How do I set up usage alerts/thresholds?
How do I set up usage alerts/thresholds?
- Navigate to Automations
- Create new automation
- Set trigger based on usage conditions
- Configure actions (email notification, webhook, etc.)
Webhooks & Integration
Which webhooks should I listen to?
Which webhooks should I listen to?
subscription.activated- Grant accesssubscription.canceled- Revoke accessinvoice.paid- Confirm paymentpayment.updated- Handle payment status changescheckout.session.completed- Provision from checkout
invoice.issued- Custom receiptssubscription.cancelation_scheduled- Retention offersaccount.credits.balance_depleted- Upsell opportunities
How do I verify webhook signatures?
How do I verify webhook signatures?
What if my webhook endpoint is down?
What if my webhook endpoint is down?
- Immediate → 5 min → 30 min → 2 hr → 8 hr → 24 hr
- Fix your endpoint
- Manually retry from Settings → Webhooks → [Endpoint] → Failed Events
- Use the API to fetch missed events
How do I sync with my CRM (Salesforce/HubSpot)?
How do I sync with my CRM (Salesforce/HubSpot)?
- Go to Settings → Integrations
- Connect your CRM
- Configure field mappings
- Enable bi-directional sync
Does the CRM's account owner (AE) sync to Alguna?
Does the CRM's account owner (AE) sync to Alguna?
How do I know a subscription is live after a checkout session completes?
How do I know a subscription is live after a checkout session completes?
successful with a subscription_id means the subscription exists, not that it is active. Read it with GET /subscriptions/{id} and check its own status — with approval flows configured it can land in pending_approval. Fulfilment is asynchronous, so poll the session or use the checkout.session.completed webhook rather than the browser redirect. See Hosted Checkout.Credits & Wallets
What's the difference between credits and wallets?
What's the difference between credits and wallets?
How do I grant credits to a customer?
How do I grant credits to a customer?
- Navigate to Customers → [Customer] → Credits
- Click Grant Credits
- Enter the amount and type (monetary or units)
- Set expiration (optional)
- Add a reason for the grant
- Click Grant
How do credits apply to invoices?
How do credits apply to invoices?
- Invoice generated for $100
- Customer has $30 in credits
- Credits applied: $30
- Remaining due: $70
- $70 charged to payment method
Troubleshooting
Webhooks not being received
Webhooks not being received
- Verify endpoint URL in Settings → Webhooks
- Check endpoint is publicly accessible (not localhost)
- Ensure firewall allows requests from webhook IPs
- Check webhook logs in dashboard
- Verify your endpoint returns 200 status
Invoice shows wrong amount
Invoice shows wrong amount
- Proration calculations (mid-cycle changes)
- Tax configuration
- Credit applications
- Currency conversion
Subscription requires approval
Subscription requires approval
- Navigate to Approvals in the sidebar
- Find the pending subscription
- Review the details
- Click Approve or Reject