Skip to content

SDKs & Code Examples

Invoro doesn’t currently provide official SDK libraries, but the REST API is straightforward to use with any HTTP client.

use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://api.invoro.eu/invoice-api/',
'headers' => [
'X-Api-Key' => getenv('INVORO_API_KEY'),
'Accept' => 'application/json',
],
]);
// List invoices
$response = $client->get('invoices', [
'query' => ['direction' => 'outgoing', 'per_page' => 50],
]);
$data = json_decode($response->getBody(), true);
foreach ($data['data'] as $invoice) {
echo "{$invoice['invoice_number']}: {$invoice['state']}\n";
}
const API_KEY = process.env.INVORO_API_KEY;
const BASE_URL = 'https://api.invoro.eu/invoice-api';
async function listInvoices() {
const response = await fetch(`${BASE_URL}/invoices?direction=outgoing`, {
headers: {
'X-Api-Key': API_KEY,
'Accept': 'application/json',
},
});
const { data } = await response.json();
for (const invoice of data) {
console.log(`${invoice.invoice_number}: ${invoice.state}`);
}
}
import os
import requests
API_KEY = os.environ['INVORO_API_KEY']
BASE_URL = 'https://api.invoro.eu/invoice-api'
def list_invoices():
response = requests.get(
f'{BASE_URL}/invoices',
headers={
'X-Api-Key': API_KEY,
'Accept': 'application/json',
},
params={'direction': 'outgoing'},
)
response.raise_for_status()
data = response.json()
for invoice in data['data']:
print(f"{invoice['invoice_number']}: {invoice['state']}")
Terminal window
# List invoices
curl -s \
-H "X-Api-Key: $INVORO_API_KEY" \
-H "Accept: application/json" \
"https://api.invoro.eu/invoice-api/invoices?direction=outgoing" | jq
# Create an invoice
curl -s -X POST \
-H "X-Api-Key: $INVORO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"invoice_number": "INV-2026-001",
"issue_date": "2026-03-27",
"due_date": "2026-04-27",
"currency_code": "EUR",
"lines": [...]
}' \
"https://api.invoro.eu/invoice-api/invoices" | jq