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

GET https://invoiceprotocol.com/api/v1/getinvoiceslist

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

GET https://invoiceprotocol.com/api/v1/getinvoice

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

GET https://invoiceprotocol.com/api/v1/getissuedinvoiceslist

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

GET https://invoiceprotocol.com/api/v1/getreceivedinvoiceslist

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())
    
GET https://invoiceprotocol.com/api/v1/getuserlist

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())
    
GET https://invoiceprotocol.com/api/v1/getuser

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())
    
GET https://invoiceprotocol.com/api/v1/getinvoiceserviceproductlines

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())
    
GET https://invoiceprotocol.com/api/v1/getrecepients

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())
    
GET https://invoiceprotocol.com/api/v1/getissuercompanies

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())
    
POST https://invoiceprotocol.com/api/v1/postinvoice

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())
    
POST https://invoiceprotocol.com/api/v1/postuserinvites

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())
    
POST https://invoiceprotocol.com/api/v1/postbulkinvoices

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())
    
POST https://invoiceprotocol.com/api/v1/postrecepients

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())
    
POST https://invoiceprotocol.com/api/v1/postinvoiceserviceproductlines

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())
    
POST https://invoiceprotocol.com/api/v1/postreceivedinvoiceprocessed

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())