If the order was imported from e.g. ebay, this is the unique identifier provided by the source
String
""
external_account_name
If the order was imported from e.g. ebay, this is the name of the ebay account
String
""
customer_ident Required
Identifier for the customer connected to the order
String
divergent_delivery_address
Indicates if the delivery address differs from the invoice address
0 No1 Yes
0
address_ident
Identifier of the delivery address which will be applied to the order if the field divergent_delivery_address is set to 1
String
""
date_created
Date of the order
Date as String
"2026-09-14 04:08:25"
date_paid
Date when the order was fully paid. If date is in the past, the order will be marked as paid
Date as String
NULL
invoice_nr
Invoice number which will be set when you generate the invoice. If you leave this empty and generate the invoice, a number will be created automatically
String
""
is_quotation
Indicates if the order is a quotation, it can be converted to an order by setting this value to 0
0 No1 Yes
0
is_canceled
Indicates if the order is canceled
0 No1 Yes
0
small_entrepreneur
Indicates if the small business regulation should be applied to the order
0 No1 Yes
0
reverse_charge
Indicates if the small business regulation should be applied to the order
0 No1 Yes
0
intracommunity
Indicates if the order is a tax free intracommunity delivery
0 No1 Yes
0
differential_taxation
Indicates if the order applies to the use of differential taxation according to § 25a UStG
0 No1 Yes
0
document_show_article_description
Indicates if the article description should appear on the invoice
0 No1 Yes
0
term_of_credit
The term of credit granted in days
Integer
The default term of credit defined in your billware configuration
user_note
Optional internal note about this order
String
""
date_delivered
Indicates period and type of performance
Array
Array
type
Indicates how the delivery date is defined for the order
0 Specific Date1 Equals date of invoice-1 Unknown2 From Date until Date3 Equals date of delivery note
1
start
The specific date or start of the date period
Date as String
NULL
end
The end of the date period
Date as String
NULL
discount
Holds discount fields to be applied to the order
Array
Array
title
The title of the discount, displayed on documents
String
""
calculation_type
Indicates if and how the discount should be applied
-1 None0 Value given is Percentage1 Value given is absolute
-1
price_type
if the calculation_type is 1 indicates if the discount should be applied to the net or gross price
0 Applied to net price1 Applied to gross price
0
value
The value of the discount as percentage or price indicated by the calculation_type
Float
0
payment
Holds payment method fields to be applied to the order
Array
Array
name
Indicates the name of the payment method
String
""
calculation_type
Indicates if and how the payment method should be applied
-1 None0 Value given is Percentage1 Value given is absolute2 Free, payment method indicated but not charged
-1
price_type
if the calculation_type is 1 indicates if the payment method charges should be applied to the net or gross price
0 Applied to net price1 Applied to gross price
0
value
The value of the payment method charges as percentage or price indicated by the calculation_type
Float
0
cashback_active
Indicates if cashback is active
0 No1 Yes
0
cashback
Cashback value applied to the order in percent
Integer
0
cashback_days
Number of days indicated on the invoice for which the cashback applies
Integer
0
shipping
Holds shipping method fields to be applied to the order
Array
Array
carrier
The name of the carrier
String
""
tracking
The tracking number of the shipment
String
""
calculation_type
Indicates if and how the shipping method should be applied
-1 None0 Value given is Percentage1 Value given is absolute2 Free, shipping method indicated but not charged
-1
price_type
if the calculation_type is 1 indicates if the shipping method charges should be applied to the net or gross price
0 Applied to net price1 Applied to gross price
0
value
The value of the payment method charges as percentage or price indicated by the calculation_type
Float
0
articles
Array of articles which will be added to the order
Array
Array
[KEYS]
Array Element holding article fields. The key can be a number or a string
Array Key
NULL
article_ident
Identifier of the article or random string if the article does not exist in the database
String
NULL
article_price
The net price of the article
Float
0.0000
article_purchase_price
The purchase price of the article
Float
0.0000
article_tax_rate
The tax rate of the article
Float
0.0000
article_quantity
Quantity of this position
Float
0.00
article_position
The position of this article in tables of documents
Integer
1
article_title
The title of this article
String
""
article_subtitle
The subtitle of this article
String
""
article_unit
Unit identifier of the article
"unit_ppu" Price per unit"unit_hour" Units are hours"unit_lump"
Lump"unit_kg" Units are kilograms
"unit_ppu"
article_sku
Article SKU
String
""
article_ean
Article EAN
String
""
article_nr
Article number
String
""
Code Examples
# Get your API credentials from your billware customer area
API_APPID="your-app-id"
API_SECRET="your-api-secret"
PAYLOAD='{"customer_ident":"46yq1898qmohrz57","order_date":"2025-07-16 10:00:00","due_date":"2025-07-30 00:00:00","is_paid":0,"invoice_number":null,"is_quotation":0,"small_entrepreneur":0,"reverse_charge":0,"intra_community":0,"term_of_credit":14,"user_note":"Bitte schnell liefern – Kaninchenstall wird dringend benötigt!","discount":{"title":"Sonderrabatt","calculation_type":0,"price_type":1,"value":10},"payment":{"name":"Vorkasse","calculation_type":1,"price_type":1,"value":0,"cashback_active":0,"cashback":0,"cashback_days":0},"shipping":{"name":"DHL Paket","tracking":"1234567890","calculation_type":1,"price_type":1,"value":5.99},"articles":[{"article_title":"Kaninchenstall XL","article_purchase_price":75,"article_price":129.99,"article_quantity":1,"article_country":"DE","article_tax_rate":19,"article_subtitle":"Wetterfest mit Auslauf","article_position":1,"article_unit":"unit_ppu","article_ean":"4012345678901","article_nr":"KAN-XL-2025"}]}'
# The HMAC is calculated over the exact request body that is sent
HMAC=$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$API_SECRET" -binary | base64)
curl -X POST "https://www.billware.de/api/v1" \
-H "X-Bw-Hmac: $API_APPID:$HMAC" \
-H "X-Bw-Method: order.create" \
-H "Content-Type: application/json" \
-d "$PAYLOAD"
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
// Get your API credentials from your billware customer area
const string apiAppId = "your-app-id";
const string apiSecret = "your-api-secret";
var payload = JsonSerializer.Serialize(new
{
customer_ident = "46yq1898qmohrz57",
order_date = "2025-07-16 10:00:00",
due_date = "2025-07-30 00:00:00",
is_paid = 0,
invoice_number = (string)null,
is_quotation = 0,
small_entrepreneur = 0,
reverse_charge = 0,
intra_community = 0,
term_of_credit = 14,
user_note = "Bitte schnell liefern – Kaninchenstall wird dringend benötigt!",
discount = new
{
title = "Sonderrabatt",
calculation_type = 0,
price_type = 1,
value = 10
},
payment = new
{
name = "Vorkasse",
calculation_type = 1,
price_type = 1,
value = 0,
cashback_active = 0,
cashback = 0,
cashback_days = 0
},
shipping = new
{
name = "DHL Paket",
tracking = "1234567890",
calculation_type = 1,
price_type = 1,
value = 5.99
},
articles = new[]
{
new
{
article_title = "Kaninchenstall XL",
article_purchase_price = 75,
article_price = 129.99,
article_quantity = 1,
article_country = "DE",
article_tax_rate = 19,
article_subtitle = "Wetterfest mit Auslauf",
article_position = 1,
article_unit = "unit_ppu",
article_ean = "4012345678901",
article_nr = "KAN-XL-2025"
}
}
});
// The HMAC is calculated over the exact request body that is sent
using var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(apiSecret));
var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(payload)));
using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://www.billware.de/api/v1")
{
Content = new StringContent(payload, Encoding.UTF8, "application/json")
};
request.Headers.Add("X-Bw-Hmac", $"{apiAppId}:{signature}");
request.Headers.Add("X-Bw-Method", "order.create");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
Return Values
Fields
Description
order_ident
Identifier of the created order
order.read
Get the details of an order.
Data
Fields
Description
Accepted Types
order_ident Required
Identifier of the order
String
Code Examples
# Get your API credentials from your billware customer area
API_APPID="your-app-id"
API_SECRET="your-api-secret"
PAYLOAD='{"order_ident":"aswm5o5i2v5hwlbp"}'
# The HMAC is calculated over the exact request body that is sent
HMAC=$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$API_SECRET" -binary | base64)
curl -X POST "https://www.billware.de/api/v1" \
-H "X-Bw-Hmac: $API_APPID:$HMAC" \
-H "X-Bw-Method: order.read" \
-H "Content-Type: application/json" \
-d "$PAYLOAD"
<?php
// Get your API credentials from your billware customer area
$apiAppId = 'your-app-id';
$apiSecret = 'your-api-secret';
$payload = json_encode([
'order_ident' => 'aswm5o5i2v5hwlbp',
]);
// The HMAC is calculated over the exact request body that is sent
$hmac = base64_encode(hash_hmac('sha256', $payload, $apiSecret, true));
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://www.billware.de/api/v1',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-Bw-Hmac: '.$apiAppId.':'.$hmac,
'X-Bw-Method: order.read',
'Content-Type: application/json',
],
]);
$response = curl_exec($curl);
curl_close($curl);
print_r(json_decode($response, true));
import crypto from 'node:crypto';
// Get your API credentials from your billware customer area
const apiAppId = 'your-app-id';
const apiSecret = 'your-api-secret';
const payload = JSON.stringify({
"order_ident": "aswm5o5i2v5hwlbp"
});
// The HMAC is calculated over the exact request body that is sent
const hmac = crypto.createHmac('sha256', apiSecret).update(payload).digest('base64');
const response = await fetch('https://www.billware.de/api/v1', {
method: 'POST',
headers: {
'X-Bw-Hmac': `${apiAppId}:${hmac}`,
'X-Bw-Method': 'order.read',
'Content-Type': 'application/json'
},
body: payload
});
console.log(await response.json());
import base64
import hashlib
import hmac
import json
import requests
# Get your API credentials from your billware customer area
api_appid = "your-app-id"
api_secret = "your-api-secret"
payload = json.dumps({
"order_ident": "aswm5o5i2v5hwlbp",
})
# The HMAC is calculated over the exact request body that is sent
signature = base64.b64encode(
hmac.new(api_secret.encode(), payload.encode(), hashlib.sha256).digest()
).decode()
response = requests.post(
"https://www.billware.de/api/v1",
data=payload,
headers={
"X-Bw-Hmac": f"{api_appid}:{signature}",
"X-Bw-Method": "order.read",
"Content-Type": "application/json",
},
)
print(response.json())
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
// Get your API credentials from your billware customer area
const string apiAppId = "your-app-id";
const string apiSecret = "your-api-secret";
var payload = JsonSerializer.Serialize(new
{
order_ident = "aswm5o5i2v5hwlbp"
});
// The HMAC is calculated over the exact request body that is sent
using var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(apiSecret));
var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(payload)));
using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://www.billware.de/api/v1")
{
Content = new StringContent(payload, Encoding.UTF8, "application/json")
};
request.Headers.Add("X-Bw-Hmac", $"{apiAppId}:{signature}");
request.Headers.Add("X-Bw-Method", "order.read");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
Return Values
Fields
Description
Type
order_ident
Identifier of the order
String
customer_ident
Identifier of the customer associated with the order
String
external_ident
If the order was imported from e.g. ebay, this is the unique identifier provided by the source
String
external_account_name
If the order was imported from e.g. ebay, this is the name of the ebay account
String
is_template
Indicates if the order is a recurring order serving as a template
0 No1 Yes
is_quotation
Indicates if the order is a quotation
0 No1 Yes
is_canceled
Indicates if the order is marked as canceled
0 No1 Yes
repeated
Indicates if this order was repeated / duplicated based on a recurring order
0 No1 Yes
document_show_article_description
Indicates if the article description should appear on the invoice
0 No1 Yes
date_created
Date and time when the order was created
Date as String
date_created_user
Date when the order was created in user format, e.g. "19.10.2018"
Date as String
date_updated
Date and time when the order was last updated
Date as String
date_updated_user
Date when the order was updated in user format, e.g. "19.10.2018"
Date as String
date_paid
Date and time when the order was fully paid
Date as String
date_paid_user
Date when the order was fully paid in user format, e.g. "19.10.2018"
Date as String
date_invoice
Date and time of the invoice
Date as String
date_invoice_user
Date of the invoice in user format, e.g. "19.10.2018"
Date as String
order_type
Source of the order, e.g. "amazon"
String
external_username
If the order was imported from e.g. ebay, this is the username of the customer
String
order_nr
The order number
String
customer_nr
The customer number
String
invoice_nr
The invoice number
String
delivery_note_nr
The delivery note number
String
quotation_nr
If the order is or was a quotation, this field holds the quotation number
String
is_business_client
Indicates if the customer is a business client
0 No1 Yes
bill_title
Invoice address: Title of the customer
-1 Company0 Mister1 Miss2 Diverse3 No title4 Family5 Couple6 Doctor7 Professor
-1
bill_firstname
Invoice address: Firstname
String
bill_lastname
Invoice address: Lastname
String
bill_company
Invoice address: Company name
String
bill_vat_nr
Invoice address: VAT number
String
bill_street
Invoice address: Street
String
bill_street2
Invoice address: Addition to the address
String
bill_zipcode
Invoice address: Zipcode
String
bill_city
Invoice address: City
String
bill_country
Invoice address: Country code (ISO 3166 ALPHA-2)
String
bill_email
Invoice address: E-mail address
String
bill_phone
Invoice address: Phone number
String
bill_phone_mobile
Invoice address: Mobile phone number
String
divergent_delivery_address
Indicates if the delivery address differs from the invoice address
0 No1 Yes
delivery_title
Delivery Address: Title of the customer
-1 Company0 Mister1 Miss2 Diverse3 No title4 Family5 Couple6 Doctor7 Professor
delivery_firstname
Delivery address: Firstname
String
delivery_lastname
Delivery address: Lastname
String
delivery_company
Delivery address: Company name
String
delivery_company
Delivery address: Company name
String
delivery_street
Delivery address: Street
String
delivery_street2
Delivery address: Addition to the address
String
delivery_zipcode
Delivery address: Zipcode
String
delivery_city
Delivery address: City
String
delivery_country
Delivery address: Country code (ISO 3166 ALPHA-2)
String
delivery_phone
Delivery address: Phone number
String
delivery_phone_mobile
Delivery address: Mobile phone number
String
account_bank
Name of the bank
String
account_bic
BIC of the bank
String
account_iban
IBAN of the customer's bank account
String
account_paypal
PayPal account of the customer
String
small_entrepreneur
Indicates if the small business regulation is applied to the order
0 No1 Yes
reverse_charge
Indicates if the small business regulation is applied to the order
0 No1 Yes
intracommunity
Indicates if the order is a tax free intracommunity delivery
0 No1 Yes
differential_taxation
Indicates if the order applies to the use of differential taxation according to § 25a UStG
0 No1 Yes
term_of_credit
The term of credit granted in days
Integer
sum_net
Net sum of the order
Float
sum_gross
Gross sum of the order
Float
sum_reminder1
Fee of the first reminder level
Float
sum_reminder2
Fee of the second reminder level
Float
sum_reminder3
Fee of the final reminder level
Float
user_note
Internal note about this order
String
credit_note
Array if the order has a credit note, else false
Array
credit_note_ident
Identifier of the credit note
String
sum_net
Net sum of the credit note
Float
sum_gross
Gross sum of the credit note
Float
date_delivered
Indicates period and type of performance
Array
type
Indicates how the delivery date is defined for the order
0 Specific Date1 Equals date of invoice-1 Unknown2 From Date until Date3 Equals date of delivery note
start
The specific date or start of the date period
Date as String
end
The end of the date period
Date as String
discount
Holds discount fields of the order
Array
title
The title of the discount, displayed on documents
String
calculation_type
Indicates if and how the discount should be applied
-1 None0 Value given is Percentage1 Value given is absolute
price_type
if the calculation_type is 1 indicates if the discount should be applied to the net or gross price
0 Applied to net price1 Applied to gross price
value
The value of the discount as percentage or price indicated by the calculation_type
Float
payment
Holds payment method fields of the order
Array
name
Indicates the name of the payment method
String
calculation_type
Indicates if and how the payment method should be applied
-1 None0 Value given is Percentage1 Value given is absolute2 Free, payment method indicated but not charged
price_type
if the calculation_type is 1 indicates if the payment method charges should be applied to the net or gross price
0 Applied to net price1 Applied to gross price
value
The value of the payment method charges as percentage or price indicated by the calculation_type
Float
cashback_active
Indicates if cashback is active
0 No1 Yes
cashback
Cashback value applied to the order in percent
Integer
cashback_days
Number of days indicated on the invoice for which the cashback applies
Integer
shipping
Holds shipping method fields of the order
Array
carrier
The name of the carrier
String
tracking
The tracking number of the shipment
String
calculation_type
Indicates if and how the shipping method should be applied
-1 None0 Value given is Percentage1 Value given is absolute2 Free, shipping method indicated but not charged
price_type
if the calculation_type is 1 indicates if the shipping method charges should be applied to the net or gross price
0 Applied to net price1 Applied to gross price
value
The value of the payment method charges as percentage or price indicated by the calculation_type
Float
order_articles
Array of articles / positions associated with this order
Array
[ORDER_ARTICLE_IDENT]
Array Element holding article fields. The key of the array element is the identifier of the article
Array Key
order_article_ident
Identifier of this article / position
String
article_ident
Identifier of the original article in the article database as a cross-reference. NULL if that article was deleted or this article was created differently, e.g. as a position
String
article_price
The net price of the article
Float
article_purchase_price
The purchase price of the article
Float
article_tax_rate
The tax rate of the article
Float
article_quantity
Quantity of this position
Float
article_position
The position of this article in tables of documents
Integer
article_title
The title of this article
String
article_subtitle
The subtitle of this article
String
article_unit
Unit identifier of the article
"unit_ppu" Price per unit"unit_hour" Units are hours"unit_lump"
Lump"unit_kg" Units are kilograms
article_sku
Article SKU
String
article_ean
Article EAN
String
article_nr
Article number
String
files
Array of files associated with this order
Array
[ORDER_FILE_IDENT]
Array Element holding file fields. The key of the array element is the identifier of the file
Array Key
order_file_ident
Identifier of this file
String
sile_source
Source of the file, e.g. "ebay"
String
href
Direct link to the file, only viewable when logged-in to billware
String
controller
Indicates which controller to use for file operations, e.g. "order"
String
reference_nr
Indicates the number of the owner of this file, e.g. the order_nr
String
parent_ident
Identifier of the owner of this file, e.g. the identifier of this order
String
file_name
Internal file name with extension
String
file_user_name
Original file name with extension
String
file_extension
Extension of the file, e.g. "pdf"
String
file_type
Indicates the type of this file
"invoice""contract_note""proforma_invoice""quotation""delivery_note""reversal_invoice""credit_note""reminder_1""reminder_2""reminder_3""user" File uploaded by user
date_updated
Date and time when the file was last updated
Date as String
date_updated_user
Date when the file was last updated in user format, e.g. "19.10.2018"
Date as String
date_sent
Date and time when the file was marked as sent
Date as String
date_sent_user
Date when the file was marked as sent in user format, e.g. "19.10.2018"
Start date of the period to list orders for.
Format: Y-m-d H:i:s (e.g. "2024-10-01 00:00:00")
String
end_date Required
End date of the period to list orders for.
Format: Y-m-d H:i:s (e.g. "2024-10-31 23:59:59")
String
date_type Required
Type of date to filter orders by.
Accepted values: date_created, date_updated, date_paid, date_invoice
String
page
Page number for pagination. Default is 1.
Integer
Code Examples
# Get your API credentials from your billware customer area
API_APPID="your-app-id"
API_SECRET="your-api-secret"
PAYLOAD='{"start_date":"2025-01-01 00:00:00","end_date":"2025-08-01 00:00:00","date_type":"date_updated","page":1}'
# The HMAC is calculated over the exact request body that is sent
HMAC=$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$API_SECRET" -binary | base64)
curl -X POST "https://www.billware.de/api/v1" \
-H "X-Bw-Hmac: $API_APPID:$HMAC" \
-H "X-Bw-Method: order.list" \
-H "Content-Type: application/json" \
-d "$PAYLOAD"
<?php
// Get your API credentials from your billware customer area
$apiAppId = 'your-app-id';
$apiSecret = 'your-api-secret';
$payload = json_encode([
'start_date' => '2025-01-01 00:00:00',
'end_date' => '2025-08-01 00:00:00',
'date_type' => 'date_updated',
'page' => 1,
]);
// The HMAC is calculated over the exact request body that is sent
$hmac = base64_encode(hash_hmac('sha256', $payload, $apiSecret, true));
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://www.billware.de/api/v1',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-Bw-Hmac: '.$apiAppId.':'.$hmac,
'X-Bw-Method: order.list',
'Content-Type: application/json',
],
]);
$response = curl_exec($curl);
curl_close($curl);
print_r(json_decode($response, true));
import crypto from 'node:crypto';
// Get your API credentials from your billware customer area
const apiAppId = 'your-app-id';
const apiSecret = 'your-api-secret';
const payload = JSON.stringify({
"start_date": "2025-01-01 00:00:00",
"end_date": "2025-08-01 00:00:00",
"date_type": "date_updated",
"page": 1
});
// The HMAC is calculated over the exact request body that is sent
const hmac = crypto.createHmac('sha256', apiSecret).update(payload).digest('base64');
const response = await fetch('https://www.billware.de/api/v1', {
method: 'POST',
headers: {
'X-Bw-Hmac': `${apiAppId}:${hmac}`,
'X-Bw-Method': 'order.list',
'Content-Type': 'application/json'
},
body: payload
});
console.log(await response.json());
import base64
import hashlib
import hmac
import json
import requests
# Get your API credentials from your billware customer area
api_appid = "your-app-id"
api_secret = "your-api-secret"
payload = json.dumps({
"start_date": "2025-01-01 00:00:00",
"end_date": "2025-08-01 00:00:00",
"date_type": "date_updated",
"page": 1,
})
# The HMAC is calculated over the exact request body that is sent
signature = base64.b64encode(
hmac.new(api_secret.encode(), payload.encode(), hashlib.sha256).digest()
).decode()
response = requests.post(
"https://www.billware.de/api/v1",
data=payload,
headers={
"X-Bw-Hmac": f"{api_appid}:{signature}",
"X-Bw-Method": "order.list",
"Content-Type": "application/json",
},
)
print(response.json())
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
// Get your API credentials from your billware customer area
const string apiAppId = "your-app-id";
const string apiSecret = "your-api-secret";
var payload = JsonSerializer.Serialize(new
{
start_date = "2025-01-01 00:00:00",
end_date = "2025-08-01 00:00:00",
date_type = "date_updated",
page = 1
});
// The HMAC is calculated over the exact request body that is sent
using var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(apiSecret));
var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(payload)));
using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://www.billware.de/api/v1")
{
Content = new StringContent(payload, Encoding.UTF8, "application/json")
};
request.Headers.Add("X-Bw-Hmac", $"{apiAppId}:{signature}");
request.Headers.Add("X-Bw-Method", "order.list");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
Return Values
The orders array contains entries identical to the response structure of
order.read.
Pagination
The response includes metadata to support pagination:
page: The current page number that was requested.
limit: The fixed number of orders returned per page (always 10).
total: The total number of orders found that match the filter criteria.
total_pages: The total number of pages available based on the result count and page size.
Use the page parameter in your request to navigate through the result pages. If not specified, page 1 is returned by default.
# Get your API credentials from your billware customer area
API_APPID="your-app-id"
API_SECRET="your-api-secret"
PAYLOAD='{"order_ident":"aswm5o5i2v5hwlbp","user_note":"An example Text"}'
# The HMAC is calculated over the exact request body that is sent
HMAC=$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$API_SECRET" -binary | base64)
curl -X POST "https://www.billware.de/api/v1" \
-H "X-Bw-Hmac: $API_APPID:$HMAC" \
-H "X-Bw-Method: order.update" \
-H "Content-Type: application/json" \
-d "$PAYLOAD"
<?php
// Get your API credentials from your billware customer area
$apiAppId = 'your-app-id';
$apiSecret = 'your-api-secret';
$payload = json_encode([
'order_ident' => 'aswm5o5i2v5hwlbp',
'user_note' => 'An example Text',
]);
// The HMAC is calculated over the exact request body that is sent
$hmac = base64_encode(hash_hmac('sha256', $payload, $apiSecret, true));
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://www.billware.de/api/v1',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-Bw-Hmac: '.$apiAppId.':'.$hmac,
'X-Bw-Method: order.update',
'Content-Type: application/json',
],
]);
$response = curl_exec($curl);
curl_close($curl);
print_r(json_decode($response, true));
import crypto from 'node:crypto';
// Get your API credentials from your billware customer area
const apiAppId = 'your-app-id';
const apiSecret = 'your-api-secret';
const payload = JSON.stringify({
"order_ident": "aswm5o5i2v5hwlbp",
"user_note": "An example Text"
});
// The HMAC is calculated over the exact request body that is sent
const hmac = crypto.createHmac('sha256', apiSecret).update(payload).digest('base64');
const response = await fetch('https://www.billware.de/api/v1', {
method: 'POST',
headers: {
'X-Bw-Hmac': `${apiAppId}:${hmac}`,
'X-Bw-Method': 'order.update',
'Content-Type': 'application/json'
},
body: payload
});
console.log(await response.json());
import base64
import hashlib
import hmac
import json
import requests
# Get your API credentials from your billware customer area
api_appid = "your-app-id"
api_secret = "your-api-secret"
payload = json.dumps({
"order_ident": "aswm5o5i2v5hwlbp",
"user_note": "An example Text",
})
# The HMAC is calculated over the exact request body that is sent
signature = base64.b64encode(
hmac.new(api_secret.encode(), payload.encode(), hashlib.sha256).digest()
).decode()
response = requests.post(
"https://www.billware.de/api/v1",
data=payload,
headers={
"X-Bw-Hmac": f"{api_appid}:{signature}",
"X-Bw-Method": "order.update",
"Content-Type": "application/json",
},
)
print(response.json())
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
// Get your API credentials from your billware customer area
const string apiAppId = "your-app-id";
const string apiSecret = "your-api-secret";
var payload = JsonSerializer.Serialize(new
{
order_ident = "aswm5o5i2v5hwlbp",
user_note = "An example Text"
});
// The HMAC is calculated over the exact request body that is sent
using var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(apiSecret));
var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(payload)));
using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://www.billware.de/api/v1")
{
Content = new StringContent(payload, Encoding.UTF8, "application/json")
};
request.Headers.Add("X-Bw-Hmac", $"{apiAppId}:{signature}");
request.Headers.Add("X-Bw-Method", "order.update");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
Response Data
Fields
Description
Type
response
Indicating if the action was successful
truefalse
data
Array with response data
Array
order_ident
The identifier of the updated order
String
[fields]
All the updated and sanitized fields
method
order.update
String
message
Additional information about the request
String
Example Response
// SUCCESS after updating the VAT number of the customer
{
"response": true,
"data":
{
"order_ident": "154xy0817679B1kJ",
"bill_vat_nr": "GB123456789"
},
"method": "order.update",
"message": "order updated"
}
order.delete
Delete an existing order.
Data
Fields
Description
Accepted Types
order_ident Required
Identifier of the order
String
Code Examples
# Get your API credentials from your billware customer area
API_APPID="your-app-id"
API_SECRET="your-api-secret"
PAYLOAD='{"order_ident":"aswm5o5i2v5hwlbp"}'
# The HMAC is calculated over the exact request body that is sent
HMAC=$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$API_SECRET" -binary | base64)
curl -X POST "https://www.billware.de/api/v1" \
-H "X-Bw-Hmac: $API_APPID:$HMAC" \
-H "X-Bw-Method: order.delete" \
-H "Content-Type: application/json" \
-d "$PAYLOAD"
<?php
// Get your API credentials from your billware customer area
$apiAppId = 'your-app-id';
$apiSecret = 'your-api-secret';
$payload = json_encode([
'order_ident' => 'aswm5o5i2v5hwlbp',
]);
// The HMAC is calculated over the exact request body that is sent
$hmac = base64_encode(hash_hmac('sha256', $payload, $apiSecret, true));
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://www.billware.de/api/v1',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-Bw-Hmac: '.$apiAppId.':'.$hmac,
'X-Bw-Method: order.delete',
'Content-Type: application/json',
],
]);
$response = curl_exec($curl);
curl_close($curl);
print_r(json_decode($response, true));
import crypto from 'node:crypto';
// Get your API credentials from your billware customer area
const apiAppId = 'your-app-id';
const apiSecret = 'your-api-secret';
const payload = JSON.stringify({
"order_ident": "aswm5o5i2v5hwlbp"
});
// The HMAC is calculated over the exact request body that is sent
const hmac = crypto.createHmac('sha256', apiSecret).update(payload).digest('base64');
const response = await fetch('https://www.billware.de/api/v1', {
method: 'POST',
headers: {
'X-Bw-Hmac': `${apiAppId}:${hmac}`,
'X-Bw-Method': 'order.delete',
'Content-Type': 'application/json'
},
body: payload
});
console.log(await response.json());
import base64
import hashlib
import hmac
import json
import requests
# Get your API credentials from your billware customer area
api_appid = "your-app-id"
api_secret = "your-api-secret"
payload = json.dumps({
"order_ident": "aswm5o5i2v5hwlbp",
})
# The HMAC is calculated over the exact request body that is sent
signature = base64.b64encode(
hmac.new(api_secret.encode(), payload.encode(), hashlib.sha256).digest()
).decode()
response = requests.post(
"https://www.billware.de/api/v1",
data=payload,
headers={
"X-Bw-Hmac": f"{api_appid}:{signature}",
"X-Bw-Method": "order.delete",
"Content-Type": "application/json",
},
)
print(response.json())
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
// Get your API credentials from your billware customer area
const string apiAppId = "your-app-id";
const string apiSecret = "your-api-secret";
var payload = JsonSerializer.Serialize(new
{
order_ident = "aswm5o5i2v5hwlbp"
});
// The HMAC is calculated over the exact request body that is sent
using var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(apiSecret));
var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(payload)));
using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://www.billware.de/api/v1")
{
Content = new StringContent(payload, Encoding.UTF8, "application/json")
};
request.Headers.Add("X-Bw-Hmac", $"{apiAppId}:{signature}");
request.Headers.Add("X-Bw-Method", "order.delete");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
# Get your API credentials from your billware customer area
API_APPID="your-app-id"
API_SECRET="your-api-secret"
PAYLOAD='{"order_ident":"aswm5o5i2v5hwlbp"}'
# The HMAC is calculated over the exact request body that is sent
HMAC=$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$API_SECRET" -binary | base64)
curl -X POST "https://www.billware.de/api/v1" \
-H "X-Bw-Hmac: $API_APPID:$HMAC" \
-H "X-Bw-Method: order.exists" \
-H "Content-Type: application/json" \
-d "$PAYLOAD"
<?php
// Get your API credentials from your billware customer area
$apiAppId = 'your-app-id';
$apiSecret = 'your-api-secret';
$payload = json_encode([
'order_ident' => 'aswm5o5i2v5hwlbp',
]);
// The HMAC is calculated over the exact request body that is sent
$hmac = base64_encode(hash_hmac('sha256', $payload, $apiSecret, true));
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://www.billware.de/api/v1',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-Bw-Hmac: '.$apiAppId.':'.$hmac,
'X-Bw-Method: order.exists',
'Content-Type: application/json',
],
]);
$response = curl_exec($curl);
curl_close($curl);
print_r(json_decode($response, true));
import crypto from 'node:crypto';
// Get your API credentials from your billware customer area
const apiAppId = 'your-app-id';
const apiSecret = 'your-api-secret';
const payload = JSON.stringify({
"order_ident": "aswm5o5i2v5hwlbp"
});
// The HMAC is calculated over the exact request body that is sent
const hmac = crypto.createHmac('sha256', apiSecret).update(payload).digest('base64');
const response = await fetch('https://www.billware.de/api/v1', {
method: 'POST',
headers: {
'X-Bw-Hmac': `${apiAppId}:${hmac}`,
'X-Bw-Method': 'order.exists',
'Content-Type': 'application/json'
},
body: payload
});
console.log(await response.json());
import base64
import hashlib
import hmac
import json
import requests
# Get your API credentials from your billware customer area
api_appid = "your-app-id"
api_secret = "your-api-secret"
payload = json.dumps({
"order_ident": "aswm5o5i2v5hwlbp",
})
# The HMAC is calculated over the exact request body that is sent
signature = base64.b64encode(
hmac.new(api_secret.encode(), payload.encode(), hashlib.sha256).digest()
).decode()
response = requests.post(
"https://www.billware.de/api/v1",
data=payload,
headers={
"X-Bw-Hmac": f"{api_appid}:{signature}",
"X-Bw-Method": "order.exists",
"Content-Type": "application/json",
},
)
print(response.json())
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
// Get your API credentials from your billware customer area
const string apiAppId = "your-app-id";
const string apiSecret = "your-api-secret";
var payload = JsonSerializer.Serialize(new
{
order_ident = "aswm5o5i2v5hwlbp"
});
// The HMAC is calculated over the exact request body that is sent
using var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(apiSecret));
var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(payload)));
using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://www.billware.de/api/v1")
{
Content = new StringContent(payload, Encoding.UTF8, "application/json")
};
request.Headers.Add("X-Bw-Hmac", $"{apiAppId}:{signature}");
request.Headers.Add("X-Bw-Method", "order.exists");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
Example Responses
// SUCCESS
{
"response":true,
"data": {
"order_ident" : "30Wp80787u99z2qv"
},
"method":"order.exists",
"message":"order does exist"
}
// ERROR
{
"response":false,
"data": null,
"method":"order.exists",
"message":"order does not exist"
}
order.createPayment
Creates a payment entry for an existing order. The order must already exist.
Data
Fields
Description
Accepted Types
order_ident Required
Identifier of the order the payment should be added to
String
amount
Amount of the payment (positive for payments, negative for refunds). If omitted, the open amount of the order will be used.
Float
fee
Transaction or processing fee related to the payment (optional, default: 0.0)
Float
payment_name / name
Name of the payment method (billware standard: payment_cash, payment_directdebit, payment_bankwire, payment_invoice,
payment_paypal)
String
date_paid
Date when the payment was made (required if not already set on the order)
String (YYYY-MM-DD HH:MM:SS)
external_ident
External identifier for the payment (e.g. PayPal transaction ID)
String
set_paid
Set to 1 if the order should be marked as paid after this payment
Integer (0 or 1)
Code Examples
# Get your API credentials from your billware customer area
API_APPID="your-app-id"
API_SECRET="your-api-secret"
PAYLOAD='{"order_ident":"aswm5o5i2v5hwlbp","amount":144.61,"fee":0,"payment_name":"payment_paypal","date_paid":"2025-07-16 12:30:00","external_ident":"TRANS123456","set_paid":1}'
# The HMAC is calculated over the exact request body that is sent
HMAC=$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$API_SECRET" -binary | base64)
curl -X POST "https://www.billware.de/api/v1" \
-H "X-Bw-Hmac: $API_APPID:$HMAC" \
-H "X-Bw-Method: order.createPayment" \
-H "Content-Type: application/json" \
-d "$PAYLOAD"
<?php
// Get your API credentials from your billware customer area
$apiAppId = 'your-app-id';
$apiSecret = 'your-api-secret';
$payload = json_encode([
'order_ident' => 'aswm5o5i2v5hwlbp',
'amount' => 144.61,
'fee' => 0,
'payment_name' => 'payment_paypal',
'date_paid' => '2025-07-16 12:30:00',
'external_ident' => 'TRANS123456',
'set_paid' => 1,
]);
// The HMAC is calculated over the exact request body that is sent
$hmac = base64_encode(hash_hmac('sha256', $payload, $apiSecret, true));
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://www.billware.de/api/v1',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-Bw-Hmac: '.$apiAppId.':'.$hmac,
'X-Bw-Method: order.createPayment',
'Content-Type: application/json',
],
]);
$response = curl_exec($curl);
curl_close($curl);
print_r(json_decode($response, true));
import crypto from 'node:crypto';
// Get your API credentials from your billware customer area
const apiAppId = 'your-app-id';
const apiSecret = 'your-api-secret';
const payload = JSON.stringify({
"order_ident": "aswm5o5i2v5hwlbp",
"amount": 144.61,
"fee": 0,
"payment_name": "payment_paypal",
"date_paid": "2025-07-16 12:30:00",
"external_ident": "TRANS123456",
"set_paid": 1
});
// The HMAC is calculated over the exact request body that is sent
const hmac = crypto.createHmac('sha256', apiSecret).update(payload).digest('base64');
const response = await fetch('https://www.billware.de/api/v1', {
method: 'POST',
headers: {
'X-Bw-Hmac': `${apiAppId}:${hmac}`,
'X-Bw-Method': 'order.createPayment',
'Content-Type': 'application/json'
},
body: payload
});
console.log(await response.json());
import base64
import hashlib
import hmac
import json
import requests
# Get your API credentials from your billware customer area
api_appid = "your-app-id"
api_secret = "your-api-secret"
payload = json.dumps({
"order_ident": "aswm5o5i2v5hwlbp",
"amount": 144.61,
"fee": 0,
"payment_name": "payment_paypal",
"date_paid": "2025-07-16 12:30:00",
"external_ident": "TRANS123456",
"set_paid": 1,
})
# The HMAC is calculated over the exact request body that is sent
signature = base64.b64encode(
hmac.new(api_secret.encode(), payload.encode(), hashlib.sha256).digest()
).decode()
response = requests.post(
"https://www.billware.de/api/v1",
data=payload,
headers={
"X-Bw-Hmac": f"{api_appid}:{signature}",
"X-Bw-Method": "order.createPayment",
"Content-Type": "application/json",
},
)
print(response.json())
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
// Get your API credentials from your billware customer area
const string apiAppId = "your-app-id";
const string apiSecret = "your-api-secret";
var payload = JsonSerializer.Serialize(new
{
order_ident = "aswm5o5i2v5hwlbp",
amount = 144.61,
fee = 0,
payment_name = "payment_paypal",
date_paid = "2025-07-16 12:30:00",
external_ident = "TRANS123456",
set_paid = 1
});
// The HMAC is calculated over the exact request body that is sent
using var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(apiSecret));
var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(payload)));
using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://www.billware.de/api/v1")
{
Content = new StringContent(payload, Encoding.UTF8, "application/json")
};
request.Headers.Add("X-Bw-Hmac", $"{apiAppId}:{signature}");
request.Headers.Add("X-Bw-Method", "order.createPayment");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
Creates or assigns an invoice number to an existing order. If a number is provided, it will be set manually. Otherwise, an invoice number will be generated automatically based on your configuration.
Data
Fields
Description
Accepted Types
order_ident Required
The internal identifier of the order
String
invoice_nr
(Optional) Custom invoice number to assign. If omitted, a number will be auto-generated
String
Code Examples
# Get your API credentials from your billware customer area
API_APPID="your-app-id"
API_SECRET="your-api-secret"
PAYLOAD='{"order_ident":"aswm5o5i2v5hwlbp"}'
# The HMAC is calculated over the exact request body that is sent
HMAC=$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$API_SECRET" -binary | base64)
curl -X POST "https://www.billware.de/api/v1" \
-H "X-Bw-Hmac: $API_APPID:$HMAC" \
-H "X-Bw-Method: order.createInvoiceNr" \
-H "Content-Type: application/json" \
-d "$PAYLOAD"
<?php
// Get your API credentials from your billware customer area
$apiAppId = 'your-app-id';
$apiSecret = 'your-api-secret';
$payload = json_encode([
'order_ident' => 'aswm5o5i2v5hwlbp',
]);
// The HMAC is calculated over the exact request body that is sent
$hmac = base64_encode(hash_hmac('sha256', $payload, $apiSecret, true));
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://www.billware.de/api/v1',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-Bw-Hmac: '.$apiAppId.':'.$hmac,
'X-Bw-Method: order.createInvoiceNr',
'Content-Type: application/json',
],
]);
$response = curl_exec($curl);
curl_close($curl);
print_r(json_decode($response, true));
import crypto from 'node:crypto';
// Get your API credentials from your billware customer area
const apiAppId = 'your-app-id';
const apiSecret = 'your-api-secret';
const payload = JSON.stringify({
"order_ident": "aswm5o5i2v5hwlbp"
});
// The HMAC is calculated over the exact request body that is sent
const hmac = crypto.createHmac('sha256', apiSecret).update(payload).digest('base64');
const response = await fetch('https://www.billware.de/api/v1', {
method: 'POST',
headers: {
'X-Bw-Hmac': `${apiAppId}:${hmac}`,
'X-Bw-Method': 'order.createInvoiceNr',
'Content-Type': 'application/json'
},
body: payload
});
console.log(await response.json());
import base64
import hashlib
import hmac
import json
import requests
# Get your API credentials from your billware customer area
api_appid = "your-app-id"
api_secret = "your-api-secret"
payload = json.dumps({
"order_ident": "aswm5o5i2v5hwlbp",
})
# The HMAC is calculated over the exact request body that is sent
signature = base64.b64encode(
hmac.new(api_secret.encode(), payload.encode(), hashlib.sha256).digest()
).decode()
response = requests.post(
"https://www.billware.de/api/v1",
data=payload,
headers={
"X-Bw-Hmac": f"{api_appid}:{signature}",
"X-Bw-Method": "order.createInvoiceNr",
"Content-Type": "application/json",
},
)
print(response.json())
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
// Get your API credentials from your billware customer area
const string apiAppId = "your-app-id";
const string apiSecret = "your-api-secret";
var payload = JsonSerializer.Serialize(new
{
order_ident = "aswm5o5i2v5hwlbp"
});
// The HMAC is calculated over the exact request body that is sent
using var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(apiSecret));
var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(payload)));
using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://www.billware.de/api/v1")
{
Content = new StringContent(payload, Encoding.UTF8, "application/json")
};
request.Headers.Add("X-Bw-Hmac", $"{apiAppId}:{signature}");
request.Headers.Add("X-Bw-Method", "order.createInvoiceNr");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());