Quickstart
Get up and running with the Billbora API in under 5 minutes. This guide will walk you through making your first API call and creating your first invoice.
Prerequisites
Before you begin, you’ll need:
A Billbora account (sign up here )
Basic knowledge of REST APIs
A tool to make HTTP requests (curl, Postman, or your preferred programming language)
Step 1: Get Your API Credentials
Go to API Settings
In your dashboard, go to Settings → API → Credentials .
Generate API Key
Click Generate New API Key and copy the generated key. Store this key securely - it won’t be shown again!
Step 2: Make Your First API Call
Let’s start by fetching your organization information:
cURL
JavaScript
Python
TypeScript
curl -X GET \
https://api.billbora.com/api/v1/organizations/me/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
You should receive a response like this:
{
"id" : "org_1234567890" ,
"name" : "Your Organization" ,
"subscription_tier" : "growth" ,
"subscription_status" : "active" ,
"created_at" : "2025-01-01T00:00:00Z"
}
Great! Your API credentials are working correctly.
Step 3: Create Your First Client
Before creating an invoice, you need a client. Let’s create one:
cURL
JavaScript
Python
TypeScript
curl -X POST \
https://api.billbora.com/api/v1/clients/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corporation",
"email": "billing@acme.com",
"phone": "+1-555-0123",
"address": "123 Business Ave",
"city": "San Francisco",
"state": "CA",
"postal_code": "94102",
"country": "US"
}'
Save the client ID from the response - you’ll need it for the invoice:
{
"id" : "client_1234567890" ,
"name" : "Acme Corporation" ,
"email" : "billing@acme.com" ,
"is_active" : true ,
"created_at" : "2025-01-15T10:30:00Z"
}
Step 4: Create Your First Invoice
Now let’s create an invoice for your new client:
cURL
JavaScript
Python
TypeScript
curl -X POST \
https://api.billbora.com/api/v1/invoices/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"client": "client_1234567890",
"issue_date": "2025-01-15",
"due_date": "2025-02-15",
"line_items": [
{
"description": "Consulting Services",
"quantity": 10,
"unit_price": "150.00",
"tax_rate": "10.00"
},
{
"description": "Project Management",
"quantity": 20,
"unit_price": "100.00",
"tax_rate": "10.00"
}
],
"notes": "Thank you for your business!",
"terms": "Payment due within 30 days"
}'
You should receive a response with your new invoice:
{
"id" : "inv_1234567890" ,
"invoice_number" : "INV-001" ,
"status" : "draft" ,
"client" : {
"id" : "client_1234567890" ,
"name" : "Acme Corporation"
},
"issue_date" : "2025-01-15" ,
"due_date" : "2025-02-15" ,
"subtotal" : "3500.00" ,
"tax_amount" : "350.00" ,
"total_amount" : "3850.00" ,
"currency" : "USD" ,
"line_items" : [
{
"description" : "Consulting Services" ,
"quantity" : 10 ,
"unit_price" : "150.00" ,
"tax_rate" : "10.00" ,
"total" : "1650.00"
},
{
"description" : "Project Management" ,
"quantity" : 20 ,
"unit_price" : "100.00" ,
"tax_rate" : "10.00" ,
"total" : "2200.00"
}
],
"public_url" : "https://invoice.billbora.com/inv_1234567890" ,
"pdf_url" : "https://invoice.billbora.com/inv_1234567890/pdf" ,
"created_at" : "2025-01-15T10:30:00Z"
}
Congratulations! You’ve successfully created your first invoice.
Step 5: Send the Invoice
Now let’s send the invoice to your client:
cURL
JavaScript
Python
TypeScript
curl -X POST \
https://api.billbora.com/api/v1/invoices/inv_1234567890/send/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "billing@acme.com"
}'
The invoice will be sent via email, and you’ll receive a confirmation:
{
"message" : "Invoice sent successfully" ,
"sent_to" : "billing@acme.com" ,
"sent_at" : "2025-01-15T10:35:00Z"
}
What’s Next?
Authentication Guide Learn about our hybrid authentication system for frontend applications
Frontend Integration Integrate Billbora with React, Vue, or your preferred frontend framework
Webhooks Setup Set up real-time event notifications for invoice and payment updates
Payment Processing Accept payments directly through your application using Stripe integration
Common Next Steps
Set up webhook notifications
Configure webhooks to receive real-time updates about invoice status changes, payments, and other events: curl -X POST \
https://api.billbora.com/api/v1/webhooks/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-app.com/webhooks/billbora",
"events": ["invoice.paid", "invoice.overdue", "payment.received"]
}'
Enable your clients to pay invoices online by setting up Stripe integration: curl -X POST \
https://api.billbora.com/api/v1/invoices/inv_1234567890/payment-link/ \
-H "Authorization: Bearer YOUR_API_KEY"
Create recurring invoices
Set up subscription billing for recurring services: curl -X POST \
https://api.billbora.com/api/v1/recurring-invoices/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"client": "client_1234567890",
"frequency": "monthly",
"line_items": [...]
}'
Access revenue reports and analytics: curl -X GET \
"https://api.billbora.com/api/v1/reports/revenue/?period=monthly&start_date=2025-01-01" \
-H "Authorization: Bearer YOUR_API_KEY"
Need Help?
API Reference Complete API documentation with all endpoints
Community Get help from other developers
Support Contact our support team
Tip : All examples in this guide use placeholder IDs. Replace them with the actual IDs returned by your API calls.