Invoice Protocol API Documentation
Effective Date: Sep 15, 2025
1. Introduction
This API enables developers to interact with the Invoice Protocol system to retrieve invoices, manage users, handle invoice processing, and more. The following documentation covers how to authenticate, make requests, and use each endpoint.
2. Authentication
All API requests require authentication through HTTP headers. Include the following headers in every request:
App-Name: Your application name (e.g.,api_caller_invoices).App-Secret: Your application secret (e.g.,8050025c2064d46d5f2712af9422ad99).
These headers validate your request and authorize access to the API.
3. Making Requests
The API supports both GET and POST methods. GET requests are used to retrieve data while POST requests create or update resources. Below is a sample GET request in Python for the getinvoice endpoint:
import requests
url = "https://invoiceprotocol.com/api/v1/getinvoice?id=2af59439c0b4d881e4bbdde608a7a6daa0b132235f5b619ad95f65861e38f86a"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99"
}
response = requests.get(url, headers=headers)
print(response.json())
4. GET Endpoints
GET Invoice List
Retrieves a list of invoices. Optional query parameters may be used for filtering and sorting.
Example (Python):
import requests
url = "https://invoiceprotocol.com/api/v1/getinvoiceslist"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99"
}
response = requests.get(url, headers=headers)
print(response.json())
GET Invoice
Retrieves a single invoice by its unique identifier. Requires the id query parameter.
Example (Python):
import requests
url = "https://invoiceprotocol.com/api/v1/getinvoice?id=2af59439c0b4d881e4bbdde608a7a6daa0b132235f5b619ad95f65861e38f86a"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99"
}
response = requests.get(url, headers=headers)
print(response.json())
GET Issued invoices list
Retrieves a list of invoices issued by the authenticated app.
Example (Python):
import requests
url = "https://invoiceprotocol.com/api/v1/getissuedinvoiceslist"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99"
}
response = requests.get(url, headers=headers)
print(response.json())
GET Issued invoices list
Retrieves a list of invoices received by the authenticated app.
Example (Python):
import requests
url = "https://invoiceprotocol.com/api/v1/getreceivedinvoiceslist"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99"
}
response = requests.get(url, headers=headers)
print(response.json())
Retrieves a list of users within the current company.
Example (Python):
import requests
url = "https://invoiceprotocol.com/api/v1/getuserlist"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99"
}
response = requests.get(url, headers=headers)
print(response.json())
Retrieves detailed information for a specific user by id.
Example (Python):
import requests
url = "https://invoiceprotocol.com/api/v1/getuser?id=USER_ID"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99"
}
response = requests.get(url, headers=headers)
print(response.json())
Retrieves a list of service product lines associated with invoices.
Example (Python):
import requests
url = "https://invoiceprotocol.com/api/v1/getinvoiceserviceproductlines"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99"
}
response = requests.get(url, headers=headers)
print(response.json())
Retrieves a list of recipients for invoices.
Example (Python):
import requests
url = "https://invoiceprotocol.com/api/v1/getrecepients"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99"
}
response = requests.get(url, headers=headers)
print(response.json())
Retrieves a list of companies that issue invoices.
Example (Python):
import requests
url = "https://invoiceprotocol.com/api/v1/getissuercompanies"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99"
}
response = requests.get(url, headers=headers)
print(response.json())
Creates a new invoice. Provide the invoice details as JSON in the request body.
Example (Python):
import requests
import json
url = "https://invoiceprotocol.com/api/v1/postinvoice"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99",
"Content-Type": "application/json"
}
payload = {
"invoice_number": "INV-001",
"date": "2025-03-05",
"amount": 100.00,
"customer": "Customer Name"
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.json())
Sends user invites. Provide invite details in JSON format.
Example (Python):
import requests
import json
url = "https://invoiceprotocol.com/api/v1/postuserinvites"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99",
"Content-Type": "application/json"
}
payload = {
"invite_email": "newuser@example.com",
"permissions": {"can_invite": 1, "can_issue": 1}
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.json())
Creates multiple invoices in one request. Provide an array of invoice objects in the JSON body.
Example (Python):
import requests
import json
url = "https://invoiceprotocol.com/api/v1/postbulkinvoices"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99",
"Content-Type": "application/json"
}
payload = [
{"invoice_number": "INV-002", "date": "2025-03-05", "amount": 150.00, "customer": "Customer A"},
{"invoice_number": "INV-003", "date": "2025-03-06", "amount": 200.00, "customer": "Customer B"}
]
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.json())
Adds one or more recipients. Include recipient details in the JSON body.
Example (Python):
import requests
import json
url = "https://invoiceprotocol.com/api/v1/postrecepients"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99",
"Content-Type": "application/json"
}
payload = {
"recipients": [
{"name": "Recipient One", "email": "rec1@example.com"},
{"name": "Recipient Two", "email": "rec2@example.com"}
]
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.json())
Adds or updates service product lines for invoices. Provide product line data in JSON format.
Example (Python):
import requests
import json
url = "https://invoiceprotocol.com/api/v1/postinvoiceserviceproductlines"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99",
"Content-Type": "application/json"
}
payload = {
"product_lines": [
{"id": "line1", "description": "Service A", "rate": 100},
{"id": "line2", "description": "Service B", "rate": 200}
]
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.json())
Updates the status of a received invoice to processed. Provide the invoice identifier and status in the JSON body.
Example (Python):
import requests
import json
url = "https://invoiceprotocol.com/api/v1/postreceivedinvoiceprocessed"
headers = {
"App-Name": "api_caller_invoices",
"App-Secret": "8050025c2064d46d5f2712af9422ad99",
"Content-Type": "application/json"
}
payload = {
"invoice_id": "invoice123",
"status": "processed"
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.json())