Invoices
Invoices
Overview
Endpoints
POST /v2/invoices
Request Body
{
"clientId": "client_123",
"amount": 1000.0,
"currency": "MXN",
"description": "Professional services",
"series": "A",
"items": [
{
"description": "Consulting services",
"quantity": 1,
"unitPrice": 800.0,
"amount": 800.0
},
{
"description": "Setup fee",
"quantity": 1,
"unitPrice": 200.0,
"amount": 200.0
}
],
"dueDate": "2024-02-15T00:00:00.000Z",
"issueDate": "2024-01-15T00:00:00.000Z"
}
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
clientId | string | Yes | Client identifier |
amount | number | Yes | Total invoice amount |
currency | string | No | Currency code (default: MXN) |
description | string | No | Invoice description |
series | string | No | Invoice series (default: A) |
items | array | No | Invoice line items |
dueDate | string | No | Invoice due date (ISO 8601) |
issueDate | string | No | Invoice issue date (ISO 8601) |
Response
{
"data": {
"id": "inv_456",
"client": {
"rfc": "XAXX010101000",
"name": "Cliente Example",
"legalName": "Cliente Example S.A. de C.V."
},
"status": "draft",
"amount": 1000.0,
"currency": "MXN",
"series": "A",
"invoice": {
"folioNumber": "A001"
},
"description": "Professional services",
"dueDate": "2024-02-15T00:00:00.000Z",
"issueDate": "2024-01-15T00:00:00.000Z",
"timestamp": "2024-01-15T10:30:00.000Z",
"items": [
{
"description": "Consulting services",
"quantity": 1,
"unitPrice": 800.0,
"amount": 800.0
},
{
"description": "Setup fee",
"quantity": 1,
"unitPrice": 200.0,
"amount": 200.0
}
]
},
"message": "Invoice created successfully"
}
GET /v2/invoices
Query Parameters
Parameter | Type | Description |
---|---|---|
limit | number | Number of results to return (default: 20, max: 100) |
offset | number | Number of results to skip |
clientId | string | Filter by client ID |
status | string | Filter by invoice status |
series | string | Filter by invoice series |
from | string | Filter invoices from date (ISO 8601) |
to | string | Filter invoices to date (ISO 8601) |
minAmount | number | Filter by minimum amount |
maxAmount | number | Filter by maximum amount |
Response
{
"data": [
{
"id": "inv_456",
"client": {
"rfc": "XAXX010101000",
"name": "Cliente Example"
},
"status": "sent",
"amount": 1000.0,
"currency": "MXN",
"series": "A",
"invoice": {
"folioNumber": "A001"
},
"timestamp": "2024-01-15T10:30:00.000Z"
}
],
"message": "Invoices retrieved successfully",
"totalResults": 1,
"hasMore": false,
"next": null
}
GET /v2/invoices/{invoiceId}
Response
{
"data": {
"id": "inv_456",
"client": {
"rfc": "XAXX010101000",
"name": "Cliente Example",
"legalName": "Cliente Example S.A. de C.V.",
"email": "cliente@example.com"
},
"status": "sent",
"amount": 1000.0,
"currency": "MXN",
"series": "A",
"invoice": {
"folioNumber": "A001"
},
"description": "Professional services",
"dueDate": "2024-02-15T00:00:00.000Z",
"issueDate": "2024-01-15T00:00:00.000Z",
"timestamp": "2024-01-15T10:30:00.000Z",
"items": [
{
"description": "Consulting services",
"quantity": 1,
"unitPrice": 800.0,
"amount": 800.0
},
{
"description": "Setup fee",
"quantity": 1,
"unitPrice": 200.0,
"amount": 200.0
}
]
},
"message": "Invoice retrieved successfully"
}
PUT /v2/invoices/{invoiceId}
Request Body
{
"description": "Updated professional services",
"dueDate": "2024-03-01T00:00:00.000Z"
}
DELETE /v2/invoices/{invoiceId}
Invoice Status
Status | Description |
---|---|
draft | Invoice is in draft state |
sent | Invoice has been sent to client |
paid | Invoice has been paid |
overdue | Invoice is past due date |
cancelled | Invoice has been cancelled |
refunded | Invoice has been refunded |
Invoice Series
Code Examples
Create an Invoice
List Invoices with Filtering
Error Handling
Common Error Responses
{
"error": {
"code": "validation_error",
"message": "Invalid request parameters",
"details": {
"amount": "Amount must be greater than 0",
"clientId": "Client ID is required",
"items": "At least one item is required"
}
},
"message": "Request validation failed"
}
{
"error": {
"code": "client_not_found",
"message": "The specified client does not exist"
},
"message": "Client validation failed"
}
Best Practices
1.
2.
3.
4.
5.
6.
Integration with Payments
Next Steps
Modified at 2025-06-11 04:54:30