Syncro Invoices — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Syncro Invoices (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
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 |
| 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 |
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 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 |
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
}
]
}Invoices for a customer:
GET /api/v1/invoices?customer_id=12345Unpaid invoices:
GET /api/v1/invoices?status=sentDate range:
GET /api/v1/invoices?date_from=2024-01-01&date_to=2024-01-31Paginated listing:
GET /api/v1/invoices?page=1GET /api/v1/invoices/{id}Response includes:
PUT /api/v1/invoices/{id}
Content-Type: application/json{
"notes": "Updated payment terms",
"due_date": "2024-03-30"
}POST /api/v1/invoices/{id}/line_items
Content-Type: application/json{
"name": "Additional support hours",
"quantity": 1.5,
"price": 125.00,
"taxable": true
}POST /api/v1/invoices/{id}/email
Content-Type: application/json{
"to": "[email protected]",
"cc": "[email protected]",
"subject": "Invoice #1042 from MSP Company",
"message": "Please find attached your invoice for services rendered."
}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"
}PUT /api/v1/invoices/{id}
Content-Type: application/json{
"status": "void"
}{
"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": {
"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"
}
}| 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 |
"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
Syncro integrates with popular accounting software:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.