> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://beta-docs.payabli.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://beta-docs.payabli.com/_mcp/server.

# Get invoice

GET https://api-sandbox.payabli.com/api/Invoice/{idInvoice}

Retrieves a single invoice by ID.

Reference: https://beta-docs.payabli.com/api-reference/invoice/get-invoice

## Authentication

- `requestToken` header (required) — API Key authentication via header

## Servers

- `https://api-sandbox.payabli.com/api` (Sandbox, default)
- `https://api.payabli.com/api` (Production)

## Request

### Path parameters

- `idInvoice` (integer, required) — Invoice ID

## Response

### 200

Success

- `AdditionalData` (string, optional) — Custom dictionary of key:value pairs. You can use this field to store any data related to the object or for your system. Example usage: ```json { "additionalData": { "key1": "value1", "key2": "value2", "key3": "value3" } } ```
- `billEvents` (list of GeneralEvents, optional) — Array of event objects with information related to events associated to the invoice.
- `company` (string, optional) — Company name of the recipient of the invoice
- `createdAt` (datetime, optional) — Timestamp of when invoice was created, in UTC.
- `customer` (QueryTransactionPayorData, optional) — Customer object associated to the invoice
- `customerId` (long, optional) — Identifier of customer associated to the invoice
- `discount` (double, optional) — Discount applied to the invoice.
- `documentsRef` (DocumentsRef, optional) — Object containing attachments associated to the invoice.
- `dutyAmount` (double, optional) — Duty amount.
- `firstName` (string, optional) — First name of the recipient of the invoice
- `freightAmount` (double, optional) — Freight/shipping amount.
- `frequency` (string, optional) — Frequency of scheduled invoice.
- `invoiceAmount` (double, optional) — Invoice total amount.
- `invoiceDate` (date, optional) — Invoice date in any of the accepted formats: YYYY-MM-DD, MM/DD/YYYY
- `invoiceDueDate` (date, optional) — Invoice due date in any of the accepted formats: YYYY-MM-DD, MM/DD/YYYY
- `invoiceEndDate` (date, optional) — The end date for a scheduled invoice cycle (`invoiceType` = 1).
- `invoiceId` (long, optional) — Identifier of invoice.
- `invoiceNumber` (string, optional) — Custom number identifying the bill or invoice. Must be unique in paypoint.
- `invoicePaidAmount` (double, optional) — Amount partially paid to the invoice.
- `invoiceSentDate` (datetime, optional) — Timestamp of when invoice was sent, in UTC.
- `invoiceStatus` (integer, optional) — Status for invoice. The accepted status values are: - 0 draft - 1 active - 2 partially paid - 4 paid/complete - 99 cancelled
- `invoiceType` (integer, optional) — Type of invoice. Only `0` for one-time invoices is currently supported.
- `items` (list of BillItem, optional) — Array of line items included in the invoice
- `lastName` (string, optional) — Last name of the recipient of the invoice
- `lastPaymentDate` (datetime, optional) — Timestamp of last payment, in UTC.
- `notes` (string, optional) — Notes included in the invoice.
- `parentOrgName` (string, optional) — Name of paypoint's parent organization
- `paylinkId` (string, optional) — Identifier of paymentlink associated to the invoice.
- `paymentTerms` (string, optional) — The payment terms for the invoice. If no terms were defined initially, then reponse data for this field will default to `N30`.
- `paypointDbaname` (string, optional) — Paypoint DBA name
- `paypointEntryname` (string, optional) — Paypoint entry name
- `paypointId` (long, optional) — Internal identifier of paypoint associated to the invoice.
- `paypointLegalname` (string, optional) — Paypoint legal name
- `purchaseOrder` (string, optional) — Purchase order number.
- `scheduledOptions` (BillOptions, optional) — Options to be applied for scheduled invoices
- `shippingAddress1` (string, optional) — The shipping address.
- `shippingAddress2` (string, optional) — Additional line for shipping address.
- `shippingCity` (string, optional) — Shipping city.
- `shippingCountry` (string, optional) — Shipping address country.
- `shippingEmail` (string, optional) — Shipping recipient's contact email address.
- `shippingFromZip` (string, optional) — Sender shipping ZIP code.
- `shippingPhone` (string, optional) — Recipient phone number
- `shippingState` (string, optional) — Shipping state or province.
- `shippingZip` (string, optional) — Shipping ZIP code. For Pay In functions, this field supports 5-digit and 9-digit ZIP codes and alphanumeric Canadian postal codes. For example: "37615-1234" or "37615".
- `summaryCommodityCode` (string, optional) — Commodity code.
- `tax` (double, optional) — Tax rate in percent applied to the invoice.
- `termsConditions` (string, optional) — Custom terms and conditions included in the invoice.

## Errors

### 400 Bad Request Error

Bad request/ invalid data

- `any`

### 401 Unauthorized Error

Unauthorized request.

- `any`

### 500 Internal Server Error

Internal API Error

- `any`

### 503 Service Unavailable Error

Database connection error

- `isSuccess` (boolean, optional) — Boolean indicating whether the operation was successful. A `true` value indicates success. A `false` value indicates failure.
- `responseData` (map from string to any, optional) — The object containing the response data.
- `responseText` (string, optional) — Response text for operation: 'Success' or 'Declined'.

## Types

### GeneralEvents

- `description` (string, optional) — Event description.
- `eventTime` (datetime, optional) — Event timestamp, in UTC.
- `extraData` (map from string to any, optional) — Extra data.
- `refData` (string, optional) — Reference data.
- `source` (string, optional) — The event source.

### QueryTransactionPayorData

- `AdditionalData` (string, optional) — Custom dictionary of key:value pairs. You can use this field to store any data related to the object or for your system. Example usage: ```json { "additionalData": { "key1": "value1", "key2": "value2", "key3": "value3" } } ```
- `BillingAddress1` (string, optional) — Customer's billing address.
- `BillingAddress2` (string, optional) — Additional line for Customer's billing address.
- `BillingCity` (string, optional) — Customer's billing city.
- `BillingCountry` (string, optional) — Customer's billing country.
- `BillingEmail` (string, optional) — Customer's email address.
- `BillingPhone` (string, optional) — Customer's phone number.
- `BillingState` (string, optional) — Customer's billing state. Must be 2-letter state code for address in US.
- `BillingZip` (string, optional) — Customer's billing ZIP code.
- `CompanyName` (string, optional) — Customer's company name.
- `CreatedAt` (datetime, optional) — Timestamp of when record was created, in UTC.
- `customerId` (long, optional) — The Payabli-generated unique ID for the customer.
- `CustomerId` (long, optional) — The Payabli-generated unique ID for the customer.
- `CustomerNumber` (string, optional) — User-provided unique identifier for the customer. This is typically the customer ID from your own system.
- `customerStatus` (integer, optional) — Customer Status. Possible values: - `-99` Deleted - `0` Inactive - `1` Active - `85` Locked (typically due to multiple failed login attempts)
- `FirstName` (string, optional) — Customer/Payor first name.
- `Identifiers` (list of any, optional) — Array of field names to be used as identifiers.
- `LastName` (string, optional) — Customer/Payor last name.
- `ShippingAddress1` (string, optional) — The shipping address.
- `ShippingAddress2` (string, optional) — Additional line for shipping address.
- `ShippingCity` (string, optional) — Shipping city.
- `ShippingCountry` (string, optional) — Shipping address country.
- `ShippingState` (string, optional) — Shipping state or province.
- `ShippingZip` (string, optional) — Shipping ZIP code. For Pay In functions, this field supports 5-digit and 9-digit ZIP codes and alphanumeric Canadian postal codes. For example: "37615-1234" or "37615".

### DocumentsRef

- `filelist` (list of PairFiles, optional) — Array of objects describing files contained in zip file.
- `zipfile` (string, optional) — Zip file containing attachments.

### BillItem

- `itemCost` (double, required) — Item or product price per unit.
- `itemCategories` (list of string, optional) — Array of tags classifying item or product.
- `itemCommodityCode` (string, optional) — Item or product commodity code. Max length of 250 characters.
- `itemDescription` (string, optional) — Item or product description. Max length of 250 characters.
- `itemMode` (integer, optional) — Internal class of item or product: value '0' is only for invoices , '1' for bills and, '2' common for both.
- `itemProductCode` (string, optional) — Item or product code. Max length of 250 characters.
- `itemProductName` (string, optional) — Item or product name. Max length of 250 characters.
- `itemQty` (integer, optional) — Quantity of item or product.
- `itemTaxAmount` (double, optional) — Tax amount applied to item or product.
- `itemTaxRate` (double, optional) — Tax rate applied to item or product.
- `itemTotalAmount` (double, optional) — Total amount in item or product.
- `itemUnitOfMeasure` (string, optional) — Unit of measurement. Max length of 100 characters.

### BillOptions

- `includePaylink` (boolean, optional) — Flag to indicate if the scheduled invoice would include a paymentlink
- `includePdf` (boolean, optional) — Flag to indicate if the scheduled invoice would include a PDF version of invoice

### PairFiles

- `originalName` (string, optional) — Original filename
- `zipName` (string, optional) — Filename assigned to zipped file. This is the name to use for reference in the API functions to get files in attachments.

## Examples

**Response**

```json
{
  "AdditionalData": "AdditionalData",
  "billEvents": [
    {
      "description": "TransferCreated",
      "eventTime": "2023-07-05T22:31:06Z",
      "extraData": {
        "key": "value"
      },
      "refData": "refData",
      "source": "api"
    }
  ],
  "company": "company",
  "createdAt": "2022-07-01T15:00:01Z",
  "customer": {
    "AdditionalData": "AdditionalData",
    "BillingAddress1": "1111 West 1st Street",
    "BillingAddress2": "Suite 200",
    "BillingCity": "Miami",
    "BillingCountry": "US",
    "BillingEmail": "example@email.com",
    "BillingPhone": "5555555555",
    "BillingState": "FL",
    "BillingZip": "45567",
    "CompanyName": "Sunshine LLC",
    "CreatedAt": "2022-07-01T15:00:01Z",
    "customerId": 4440,
    "CustomerId": 4440,
    "CustomerNumber": "3456-7645A",
    "customerStatus": 1,
    "FirstName": "John",
    "Identifiers": [
      "\\\"firstname\\\"",
      "\\\"lastname\\\"",
      "\\\"email\\\"",
      "\\\"customId\\\""
    ],
    "LastName": "Doe",
    "ShippingAddress1": "123 Walnut St",
    "ShippingAddress2": "STE 900",
    "ShippingCity": "Johnson City",
    "ShippingCountry": "US",
    "ShippingState": "TN",
    "ShippingZip": "37619"
  },
  "customerId": 4440,
  "discount": 10,
  "documentsRef": {
    "filelist": [
      {}
    ],
    "zipfile": "zx45.zip"
  },
  "dutyAmount": 0,
  "firstName": "firstName",
  "freightAmount": 10,
  "frequency": "frequency",
  "invoiceAmount": 105,
  "invoiceDate": "2025-07-01",
  "invoiceDueDate": "2025-07-01",
  "invoiceEndDate": "2025-07-01",
  "invoiceId": 236,
  "invoiceNumber": "INV-2345",
  "invoicePaidAmount": 0,
  "invoiceSentDate": "2025-10-19T00:00:00Z",
  "invoiceStatus": 1,
  "invoiceType": 0,
  "items": [
    {
      "itemCost": 5,
      "itemCommodityCode": "010",
      "itemDescription": "Deposit for materials.",
      "itemMode": 0,
      "itemProductCode": "M-DEPOSIT",
      "itemProductName": "Materials deposit",
      "itemQty": 1,
      "itemTaxAmount": 7,
      "itemTaxRate": 0.075,
      "itemTotalAmount": 1.1,
      "itemUnitOfMeasure": "SqFt"
    }
  ],
  "lastName": "lastName",
  "lastPaymentDate": "2025-10-19T00:00:00Z",
  "notes": "notes",
  "parentOrgName": "parentOrgName",
  "paylinkId": "paylinkId",
  "paymentTerms": "NET30",
  "paypointDbaname": "paypointDbaname",
  "paypointEntryname": "paypointEntryname",
  "paypointId": 56,
  "paypointLegalname": "paypointLegalname",
  "purchaseOrder": "PO-345",
  "scheduledOptions": {
    "includePaylink": true,
    "includePdf": true
  },
  "shippingAddress1": "123 Walnut St",
  "shippingAddress2": "STE 900",
  "shippingCity": "Johnson City",
  "shippingCountry": "US",
  "shippingEmail": "example@email.com",
  "shippingFromZip": "30040",
  "shippingPhone": "shippingPhone",
  "shippingState": "TN",
  "shippingZip": "37619",
  "summaryCommodityCode": "501718",
  "tax": 2.05,
  "termsConditions": "termsConditions"
}
```

**SDK Code**

```python GetDetails
import requests

url = "https://api-sandbox.payabli.com/api/Invoice/23548884"

headers = {"requestToken": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript GetDetails
const url = 'https://api-sandbox.payabli.com/api/Invoice/23548884';
const options = {method: 'GET', headers: {requestToken: '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go GetDetails
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api-sandbox.payabli.com/api/Invoice/23548884"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("requestToken", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby GetDetails
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/Invoice/23548884")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["requestToken"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java GetDetails
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api-sandbox.payabli.com/api/Invoice/23548884")
  .header("requestToken", "<apiKey>")
  .asString();
```

```php GetDetails
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api-sandbox.payabli.com/api/Invoice/23548884', [
  'headers' => [
    'requestToken' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp GetDetails
using RestSharp;

var client = new RestClient("https://api-sandbox.payabli.com/api/Invoice/23548884");
var request = new RestRequest(Method.GET);
request.AddHeader("requestToken", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift GetDetails
import Foundation

let headers = ["requestToken": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/Invoice/23548884")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```