Payments & Invoicing for all your products — centralised under Excalibur Web Services
Use one legal entity for multiple SaaS brands. Accept payments, generate GST-compliant invoices, and let each product call a secure payment API.
This is a sandbox demo. Payments will be routed to excaliburwebservices.com.
How it works
Centralised Gateway Keys
Store API keys on Excalibur servers. Your products never touch payment credentials.
Invoice Issuance
Generate GST-ready invoices using the internal invoice API. Download PDF per transaction.
Product Webhooks
After payment, Excalibur calls your product's webhook with status and invoice details.
Products using Excalibur
Snaptide
AI photo hosting & face search. Calls Excalibur for payments and invoices.
Manage integration →(Future App)
Add new products as they launch. Single billing account for all.
Custom Integrations
White-label invoices, per-product tax rules, and reseller flows.
Developer API (overview)
Secure endpoints for creating orders, verifying webhooks, and generating invoice PDFs. Use JWT (RS256) to authenticate product servers.
POST /api/payment/create-order
Content-Type: application/json
Authorization: Bearer <JWT_PRODUCT>
{ "product": "Snaptide Pro", "amount": 99900, "user_id": 123, "callback_url": "https://snaptide.ai/api/payment/webhook" }
POST /api/payment/webhook
{ "status":"success","invoice_no":"EWS-2025-000234","order_id":"ord_abc123" }
Sample client-side code (Snaptide) — create order & redirect
// Example using fetch
async function createOrder(payload){
const res = await fetch('https://excaliburwebservices.com/api/payment/create-order',{
method:'POST',
headers: {
'Content-Type':'application/json',
'Authorization':'Bearer YOUR_PRODUCT_JWT'
},
body: JSON.stringify(payload)
});
return res.json(); // { order_id, payment_url }
}
// redirect
// const data = await createOrder({ product:'Snaptide Pro', amount:99900, user_id:123, callback_url:'https://snaptide.ai/api/payment/webhook' });
// window.location = data.payment_url;