Endpoints
1. List Invoices
Endpoint:
GET /api/invoices
Description:
Retrieves a list of invoices for the authenticated company, with optional filtering and pagination.
Request Parameters:
company_id
(optional): The company ID to filter invoices by. Defaults to the authenticated company's ID.
transaction_id
(optional): The transaction ID to filter invoices by.
status
(optional): Filter by invoice status (e.g., pending
, paid
).
sort
(optional): Sort the results (default is created_at
).
order
(optional): The order of the results, either asc
or desc
(default is desc
).
per_page
(optional): The number of results per page (default is 10).
Response:
Copy jsonCopy code{
"message": "Invoices retrieved successfully.",
"invoices": [
{
"id": 101,
"description": "Consulting services for Q3",
"service_date": "2024-10-10",
"provider_name": "ABC Consulting",
"total_amount": "5000.00",
"amount_requested": "4500.00",
"status": "unpaid",
"approval_status": "pending",
"balance": "500.00",
"category_name": "Consulting",
"subcategory_name": "Business",
"payment_method": "self",
"transaction_id": "H360-XYZ123",
"user_email": "user@example.com",
"relationship_manager_email": "manager@example.com",
"finance_approver_email": null,
"approved_by_manager_email": null,
"comment": null
}
]
}
2. Show Invoice Details
Endpoint:
GET /api/invoices/{transaction_id}
Description:
Retrieve the details of a specific invoice by its transaction ID.
Response:
Copy jsonCopy code{
"message": "Invoice retrieved successfully.",
"invoice": {
"id": 101,
"description": "Consulting services for Q3",
"service_date": "2024-10-10",
"provider_name": "ABC Consulting",
"total_amount": "5000.00",
"amount_requested": "4500.00",
"status": "unpaid",
"approval_status": "pending",
"balance": "500.00",
"category_name": "Consulting",
"subcategory_name": "Business",
"payment_method": "self",
"transaction_id": "H360-XYZ123",
"user_email": "user@example.com",
"relationship_manager_email": "manager@example.com",
"finance_approver_email": null,
"approved_by_manager_email": null,
"comment": null
}
}
3. Create an Invoice
Endpoint:
POST /api/invoices
Description:
Creates a new invoice.
Request Body:
Copy jsonCopy code{
"company_id": 1, // Optional
"description": "Consulting services",
"service_date": "2024-10-10",
"total_amount": 5000,
"amount_requested": 4500,
"user_email": "user@example.com",
"payment_method": "self",
"provider_name": "ABC Consulting",
"category_name": "Consulting",
"subcategory_name": "Business"
}
Response:
Copy jsonCopy code{
"message": "Invoice created successfully",
"invoice": {
"id": 101,
"description": "Consulting services",
"service_date": "2024-10-10",
"provider_name": "ABC Consulting",
"total_amount": "5000.00",
"amount_requested": "4500.00",
"status": "unpaid",
"approval_status": "pending",
"balance": "500.00",
"category_name": "Consulting",
"subcategory_name": "Business",
"payment_method": "self",
"transaction_id": "H360-XYZ123",
"user_email": "user@example.com",
"relationship_manager_email": "manager@example.com"
}
}
4. Update an Invoice
Endpoint:
PUT /api/invoices/{transaction_id}
Description:
Updates an existing invoice by its transaction ID.
Request Body:
Copy jsonCopy code{
"total_amount": 6000,
"amount_requested": 5500,
"payment_method": "self",
"provider_name": "XYZ Consulting",
"category_name": "Consulting",
"subcategory_name": "Strategy"
}
Response:
Copy jsonCopy code{
"message": "Invoice updated successfully",
"invoice": {
"id": 101,
"description": "Consulting services",
"service_date": "2024-10-10",
"provider_name": "XYZ Consulting",
"total_amount": "6000.00",
"amount_requested": "5500.00",
"status": "unpaid",
"approval_status": "pending",
"balance": "500.00",
"category_name": "Consulting",
"subcategory_name": "Strategy",
"payment_method": "self",
"transaction_id": "H360-XYZ123",
"user_email": "user@example.com",
"relationship_manager_email": "manager@example.com"
}
}
5. Approve an Invoice
Endpoint:
PUT /api/invoices/{transaction_id}/approve
Description:
Approves an invoice and optionally notifies the finance approver.
Request Body:
Copy jsonCopy code{
"manager_email": "manager@example.com",
"approvalAction": "approve", // or "deny"
"finance_approver_email": "finance@example.com",
"comment": "Approval comment", // Optional
"notify": true // Optional flag to send notification
}
Response:
Copy jsonCopy code{
"message": "Invoice successfully updated.",
"invoice": {
"id": 101,
"description": "Consulting services",
"service_date": "2024-10-10",
"provider_name": "ABC Consulting",
"total_amount": "5000.00",
"amount_requested": "4500.00",
"status": "unpaid",
"approval_status": "in progress",
"balance": "500.00",
"category_name": "Consulting",
"subcategory_name": "Business",
"payment_method": "self",
"transaction_id": "H360-XYZ123",
"user_email": "user@example.com",
"relationship_manager_email": "manager@example.com",
"finance_approver_email": "finance@example.com"
}
}
6. Approve or Deny Finance Approval
Endpoint:
PUT /api/invoices/{transaction_id}/finance-approve
Description:
Approves or denies finance approval for an invoice.
Request Body:
Copy {
"finance_approved": true, // or false
"comment": "Finance approval comment", // Required if finance_approved is false
"notify": true // Optional flag to send notification
}
Response:
Copy {
"message": "Finance approval completed.",
"invoice": {
"id": 101,
"description": "Consulting services",
"service_date": "2024-10-10",
"provider_name": "ABC Consulting",
"total_amount": "5000.00",
"amount_requested": "4500.00",
"status": "unpaid",
"approval_status": "approved",
"balance": "500.00",
"category_name": "Consulting",
"subcategory_name": "Business",
"payment_method": "self",
"transaction_id": "H360-XYZ123",
"user_email": "user@example.com",
"relationship_manager_email": "manager@example.com",
"finance_approver_email": "finance@example.com"
}
}
7. Delete an Invoice
Endpoint:
DELETE /api/invoices/{transaction_id}/destroy
Description:
Deletes an invoice if it has not been paid or partially paid.
Request Body:
Copy {
"user_email": "user@example.com"
}
Response:
Copy {
"message": "Invoice deleted successfully.",
"transaction_id": "H360-XYZ123"
}
This documentation is structured for GitBook and can
Last updated 3 months ago