This is a Billingo API v3 documentation. Our API based on REST software architectural style. API has resource-oriented URLs, accepts JSON-encoded request bodies and returns JSON-encoded responses.
Bring your own key. This API needs your own Billingo API v3 key - get one from the provider, add it once below, and the proxy injects it on every call. Your OmniStream plan covers the unified SDK, key storage, and proxy - the provider's own rate limits still apply to your key.
This is a community listing. If you own this API, you can request ownership.
npm install omnistream-sdkimport { OmniClient } from "omnistream-sdk";
const omni = new OmniClient({ token: process.env.OMNI_KEY! });
// One key reaches every API on the marketplace.
const data = await omni.call("billingo/ListBankAccount");One install, one key - the same client calls every API on the marketplace.
List all bank account
Create a bank account
Retrieve a bank account
Update a bank account
Delete a bank account
Get currencies exchange rate.
/**
* BillingoAPIv3 - generated by OmniStream from Billingo API v3's OpenAPI spec.
* One typed method per endpoint. A single Omni key reaches the API.
*/
const DEFAULT_BASE = "https://grid.skinvaults.online/v1/proxy/billingo";
export class BillingoAPIv3Error extends Error {
status: number;
code?: string;
constructor(status: number, code: string | undefined, message?: string) {
super(message || `BillingoAPIv3 error ${status}`);
this.name = "BillingoAPIv3Error";
this.status = status;
this.code = code;
}
}
export interface BillingoAPIv3Options {
baseUrl?: string;
fetch?: typeof fetch;
timeoutMs?: number;
}
export class BillingoAPIv3 {
/** @param token Your OmniStream key (one key for every API). */
constructor(private token: string, private opts: BillingoAPIv3Options = {}) {
if (!token) throw new Error("BillingoAPIv3: token is required");
}
rateLimit: { remainingMinute?: number; remainingDay?: number } | null = null;
private async _request(method: string, path: string, { params, body }: { params?: Record<string, unknown>; body?: unknown } = {}): Promise<any> {
const f = this.opts.fetch ?? globalThis.fetch;
const url = new URL((this.opts.baseUrl ?? DEFAULT_BASE).replace(/\/+$/, "") + path);
if (params) for (const [k, v] of Object.entries(params)) if (v != null) url.searchParams.set(k, String(v));
const headers: Record<string, string> = { "x-omni-key": this.token };
if (body !== undefined) headers["content-type"] = "application/json";
const res = await f(url, { method, headers, body: body !== undefined ? JSON.stringify(body) : undefined });
this.rateLimit = {
remainingMinute: Number(res.headers.get("x-ratelimit-remaining-minute")) || undefined,
remainingDay: Number(res.headers.get("x-ratelimit-remaining-day")) || undefined,
};
const data = await res.json().catch(() => ({}));
if (!res.ok) throw new BillingoAPIv3Error(res.status, data?.error?.code, data?.error?.message);
return data.data ?? data;
}
/** List all bank account */
listBankAccount(params: { "page"?: number; "per_page"?: number }): Promise<any> {
return this._request("GET", "/bank-accounts", { params });
}
/** Create a bank account */
createBankAccount(body: unknown): Promise<any> {
return this._request("POST", "/bank-accounts", { body });
}
/** Retrieve a bank account */
getBankAccount(params: { "id": number }): Promise<any> {
return this._request("GET", "/bank-accounts/{id}", { params });
}
/** Update a bank account */
updateBankAccount(body: unknown, params: { "id": number }): Promise<any> {
return this._request("PUT", "/bank-accounts/{id}", { body, params });
}
/** Delete a bank account */
deleteBankAccount(params: { "id": number }): Promise<any> {
return this._request("DELETE", "/bank-accounts/{id}", { params });
}
/** Get currencies exchange rate. */
getConversionRate(params: { "from": string; "to": string }): Promise<any> {
return this._request("GET", "/currencies", { params });
}
/** List all document blocks */
listDocumentBlock(params: { "page"?: number; "per_page"?: number }): Promise<any> {
return this._request("GET", "/document-blocks", { params });
}
/** List all documents */
listDocument(params: { "page"?: number; "per_page"?: number; "block_id"?: number; "partner_id"?: number; "payment_method"?: string; "payment_status"?: string; "start_date"?: string; "end_date"?: string; "start_number"?: number; "end_number"?: number; "start_year"?: number; "end_year"?: number }): Promise<any> {
return this._request("GET", "/documents", { params });
}
/** Create a document */
createDocument(body: unknown): Promise<any> {
return this._request("POST", "/documents", { body });
}
/** Retrieve a document */
getDocument(params: { "id": number }): Promise<any> {
return this._request("GET", "/documents/{id}", { params });
}
/** Cancel a document */
cancelDocument(params: { "id": number }): Promise<any> {
return this._request("POST", "/documents/{id}/cancel", { params });
}
/** Create a document from proforma. */
createDocumentFromProforma(params: { "id": number }): Promise<any> {
return this._request("POST", "/documents/{id}/create-from-proforma", { params });
}
/** Download a document in PDF format. */
downloadDocument(params: { "id": number }): Promise<any> {
return this._request("GET", "/documents/{id}/download", { params });
}
/** Retrieve a document Online Számla status */
getOnlineSzamlaStatus(params: { "id": number }): Promise<any> {
return this._request("GET", "/documents/{id}/online-szamla", { params });
}
/** Retrieve a payment histroy */
getPayment(params: { "id": number }): Promise<any> {
return this._request("GET", "/documents/{id}/payments", { params });
}
/** Update payment history */
updatePayment(body: unknown, params: { "id": number }): Promise<any> {
return this._request("PUT", "/documents/{id}/payments", { body, params });
}
/** Delete all payment history on document */
deletePayment(params: { "id": number }): Promise<any> {
return this._request("DELETE", "/documents/{id}/payments", { params });
}
/** Retrieve a document download public url. */
getPublicUrl(params: { "id": number }): Promise<any> {
return this._request("GET", "/documents/{id}/public-url", { params });
}
/** Send invoice to given email adresses. */
sendDocument(body: unknown, params: { "id": number }): Promise<any> {
return this._request("POST", "/documents/{id}/send", { body, params });
}
/** Retrieve a organization data. */
getOrganizationData(): Promise<any> {
return this._request("GET", "/organization", {});
}
/** List all partners */
listPartner(params: { "page"?: number; "per_page"?: number }): Promise<any> {
return this._request("GET", "/partners", { params });
}
/** Create a partner */
createPartner(body: unknown): Promise<any> {
return this._request("POST", "/partners", { body });
}
/** Retrieve a partner */
getPartner(params: { "id": number }): Promise<any> {
return this._request("GET", "/partners/{id}", { params });
}
/** Update a partner */
updatePartner(body: unknown, params: { "id": number }): Promise<any> {
return this._request("PUT", "/partners/{id}", { body, params });
}
/** Delete a partner */
deletePartner(params: { "id": number }): Promise<any> {
return this._request("DELETE", "/partners/{id}", { params });
}
/** List all product */
listProduct(params: { "page"?: number; "per_page"?: number }): Promise<any> {
return this._request("GET", "/products", { params });
}
/** Create a product */
createProduct(body: unknown): Promise<any> {
return this._request("POST", "/products", { body });
}
/** Retrieve a product */
getProduct(params: { "id": number }): Promise<any> {
return this._request("GET", "/products/{id}", { params });
}
/** Update a product */
updateProduct(body: unknown, params: { "id": number }): Promise<any> {
return this._request("PUT", "/products/{id}", { body, params });
}
/** Delete a product */
deleteProduct(params: { "id": number }): Promise<any> {
return this._request("DELETE", "/products/{id}", { params });
}
/** Convert legacy ID to v3 ID. */
getId(params: { "id": number }): Promise<any> {
return this._request("GET", "/utils/convert-legacy-id/{id}", { params });
}
}
export default BillingoAPIv3;
No reviews yet. Be the first to rate this API.
Yes. Billingo API v3 uses apiKey authentication, so you bring your own key from the provider. You store it once on OmniStream and the proxy injects it into every call, so your code only ever sends your Omni key.
This is a Billingo API v3 documentation. Our API based on REST software architectural style. API has resource-oriented URLs, accepts JSON-encoded request bodies and returns JSON-encoded responses. It exposes 31 endpoints over GET, POST, PUT, DELETE, including GET /bank-accounts, POST /bank-accounts, GET /bank-accounts/{id}.
Install the OmniStream SDK for your language and call Billingo API v3 through it. The client is generated from this API's OpenAPI spec, so parameters and responses are fully typed, and the same client also calls every other API in the marketplace.
You can start on the free plan. OmniStream charges for the unified SDK, key storage and proxy rather than for Billingo API v3 itself, and Billingo API v3's own rate limits still apply to your provider key.
ExchangeRate-API: Fetch the latest currency exchange rates via API. ExchangeRate-API is free and unlimited.
List all document blocks
List all documents
Create a document
Retrieve a document
Cancel a document
Create a document from proforma.
Download a document in PDF format.
Retrieve a document Online Számla status
Retrieve a payment histroy
Update payment history
Delete all payment history on document
Retrieve a document download public url.
Send invoice to given email adresses.
Retrieve a organization data.
List all partners
Create a partner
Retrieve a partner
Update a partner
Delete a partner
List all product
Create a product
Retrieve a product
Update a product
Delete a product
Convert legacy ID to v3 ID.