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": "[email protected] ",
"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" : "[email protected] " ,
"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": "[email protected] "
}'
The invoice will be sent via email, and you’ll receive a confirmation:
{
"message" : "Invoice sent successfully" ,
"sent_to" : "[email protected] " ,
"sent_at" : "2025-01-15T10:35:00Z"
}
What’s Next?
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?
Tip : All examples in this guide use placeholder IDs. Replace them with the actual IDs returned by your API calls.