Syncro MSP Invoice Management
Overview
Syncro invoices are the core of your billing workflow. Invoices can be created manually, generated from tickets, or produced automatically from recurring contracts. This skill covers invoice creation, line item management, payment processing, and billing workflows.
Key Concepts
Invoice
A billing document sent to customers.
| Field | Type | Required | Description |
|---|---|---|---|
id | integer | System | Unique identifier |
number | string | System | Invoice number |
customer_id | integer | Yes | Billing customer |
date | date | Yes | Invoice date |
due_date | date | No | Payment due date |
status | string | Yes | Invoice status |
subtotal | decimal | System | Sum of line items |
tax | decimal | System | Calculated tax |
total | decimal | System | Final amount due |
balance | decimal | System | Remaining balance |
notes | text | No | Invoice notes |
terms | text | No | Payment terms |
Invoice Status Values
| Status | Description |
|---|---|
| Draft | Not yet sent to customer |
| Sent | Emailed to customer |
| Viewed | Customer has viewed |
| Partial | Partially paid |
| Paid | Fully paid |
| Void | Cancelled/voided |
Line Item
Individual billable items on an invoice.
| Field | Type | Required | Description |
|---|---|---|---|
id | integer | System | Unique identifier |
invoice_id | integer | Yes | Parent invoice |
product_id | integer | No | Product/service reference |
name | string | Yes | Item description |
quantity | decimal | Yes | Quantity |
price | decimal | Yes | Unit price |
taxable | boolean | No | Subject to tax |
total | decimal | System | Line total |
Payment
Payment received against an invoice.
| Field | Type | Required | Description |
|---|---|---|---|
id | integer | System | Unique identifier |
invoice_id | integer | Yes | Associated invoice |
amount | decimal | Yes | Payment amount |
payment_method | string | No | How payment was made |
reference | string | No | Check/transaction number |
date | date | Yes | Payment date |
notes | text | No | Payment notes |
API Patterns
Creating an Invoice
POST /api/v1/invoices Content-Type: application/json Authorization: Bearer YOUR_API_KEY
{
"customer_id": 12345,
"date": "2024-02-15",
"due_date": "2024-03-15",
"notes": "Thank you for your business!",
"line_items": [
{
"name": "Managed Services - February 2024",
"quantity": 1,
"price": 500.00,
"taxable": true
},
{
"name": "On-site support - 2 hours",
"quantity": 2,
"price": 125.00,
"taxable": true
}
]
}
Searching Invoices
Invoices for a customer:
GET /api/v1/invoices?customer_id=12345
Unpaid invoices:
GET /api/v1/invoices?status=sent
Date range:
GET /api/v1/invoices?date_from=2024-01-01&date_to=2024-01-31
Paginated listing:
GET /api/v1/invoices?page=1
Getting Invoice Details
GET /api/v1/invoices/{id}
Response includes:
- •Invoice header information
- •Line items
- •Payment history
- •Customer details
Updating an Invoice
PUT /api/v1/invoices/{id}
Content-Type: application/json
{
"notes": "Updated payment terms",
"due_date": "2024-03-30"
}
Adding Line Items
POST /api/v1/invoices/{id}/line_items
Content-Type: application/json
{
"name": "Additional support hours",
"quantity": 1.5,
"price": 125.00,
"taxable": true
}
Sending an Invoice
POST /api/v1/invoices/{id}/email
Content-Type: application/json
{
"to": "billing@acme.example.com",
"cc": "manager@acme.example.com",
"subject": "Invoice #1042 from MSP Company",
"message": "Please find attached your invoice for services rendered."
}
Recording a Payment
POST /api/v1/invoices/{id}/payments
Content-Type: application/json
{
"amount": 750.00,
"payment_method": "Credit Card",
"reference": "TXN-12345",
"date": "2024-02-20",
"notes": "Paid via online portal"
}
Voiding an Invoice
PUT /api/v1/invoices/{id}
Content-Type: application/json
{
"status": "void"
}
Common Workflows
Invoice Creation from Ticket
- •
Review ticket time entries
- •Verify hours are accurate
- •Check billing rates
- •
Create invoice
- •Associate with customer
- •Set appropriate dates
- •
Add line items
- •Import from ticket
- •Add any additional charges
- •
Review and send
- •Check totals
- •Email to customer
Recurring Invoice Workflow
- •
Set up contract
- •Define billing frequency
- •Set amount and services
- •
Auto-generate invoices
- •System creates drafts
- •Review before sending
- •
Send and track
- •Email to customer
- •Monitor payment status
Payment Collection
- •
Monitor aging
- •Review unpaid invoices
- •Identify overdue accounts
- •
Send reminders
- •Automated or manual
- •Escalate as needed
- •
Record payments
- •Enter when received
- •Update invoice status
- •
Reconcile
- •Match to bank deposits
- •Handle partial payments
Month-End Billing
- •
Review open tickets
- •Ensure time is entered
- •Close billable tickets
- •
Generate invoices
- •Create for all customers
- •Include contract charges
- •
Review drafts
- •Check accuracy
- •Verify line items
- •
Send batch
- •Email all invoices
- •Log for records
Response Examples
Invoice Object
{
"invoice": {
"id": 5678,
"number": "INV-2024-0042",
"customer_id": 12345,
"date": "2024-02-15",
"due_date": "2024-03-15",
"status": "sent",
"subtotal": 750.00,
"tax": 56.25,
"total": 806.25,
"balance": 806.25,
"notes": "Thank you for your business!",
"created_at": "2024-02-15T10:00:00Z",
"line_items": [
{
"id": 1001,
"name": "Managed Services - February 2024",
"quantity": 1,
"price": 500.00,
"taxable": true,
"total": 500.00
},
{
"id": 1002,
"name": "On-site support - 2 hours",
"quantity": 2,
"price": 125.00,
"taxable": true,
"total": 250.00
}
]
}
}
Payment Object
{
"payment": {
"id": 789,
"invoice_id": 5678,
"amount": 806.25,
"payment_method": "Credit Card",
"reference": "TXN-12345",
"date": "2024-02-20",
"notes": "Paid via online portal",
"created_at": "2024-02-20T14:30:00Z"
}
}
Error Handling
Common API Errors
| Code | Message | Resolution |
|---|---|---|
| 400 | Invalid parameters | Check field values |
| 401 | Unauthorized | Verify API key |
| 404 | Invoice not found | Confirm invoice ID |
| 422 | Validation failed | Check required fields |
| 429 | Rate limited | Wait and retry |
Validation Errors
"customer_id is required" - Invoice must have a customer
"date is required" - Invoice must have a date
"Cannot modify paid invoice" - Void instead of editing
"Payment exceeds balance" - Check payment amount
Best Practices
- •Review before sending - Check all line items for accuracy
- •Set due dates - Clear expectations for payment
- •Use descriptive line items - Customers understand charges
- •Track partial payments - Record as received
- •Follow up promptly - Address overdue invoices quickly
- •Maintain documentation - Keep payment references
- •Reconcile regularly - Match to bank records
- •Use templates - Consistent professional appearance
Accounting Integration
Syncro integrates with popular accounting software:
- •QuickBooks Online - Sync invoices and payments
- •Xero - Two-way synchronization
- •QuickBooks Desktop - Export capabilities
Related Skills
- •Syncro Customers - Customer billing info
- •Syncro Tickets - Time tracking for billing
- •Syncro API Patterns - Authentication and pagination