New to Corsair? See API access, authentication, and error handling.
Currencies
list
currencies.list
List all currencies supported by Finmei
Risk: read
await corsair.finmei.api.currencies.list({});
| Name | Type | Required | Description |
|---|---|---|---|
data | object[] | Yes | — |
data full type
data full type
{
code: string,
title?: string
}[]
Expenses
create
expenses.create
Create a new expense record with its bill file (base64 PDF or image, required)
Risk: write
await corsair.finmei.api.expenses.create({});
| Name | Type | Required | Description |
|---|---|---|---|
seller | string | Yes | — |
total | number | Yes | — |
currency | string | Yes | — |
date | string | Yes | — |
file | string | Yes | — |
fileType | string | No | — |
fileName | string | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
data | object | Yes | — |
data full type
data full type
{
id: string,
date?: string | null,
total: number,
currency: string,
seller?: string | null,
created_at?: number | string | null,
updated_at?: number | string | null
}
delete
expenses.delete
Delete an expense record by ID
Risk: destructive
await corsair.finmei.api.expenses.delete({});
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | — |
object \| null
Output full type
Output full type
{
success?: boolean
} | null
download
expenses.download
Download expense receipt file as binary data
Risk: read
await corsair.finmei.api.expenses.download({});
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | — |
| Name | Type | Required | Description |
|---|---|---|---|
kind | binary | Yes | — |
contentType | string | Yes | — |
base64 | string | Yes | — |
size | number | No | — |
get
expenses.get
Retrieve an expense record by ID
Risk: read
await corsair.finmei.api.expenses.get({});
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | — |
| Name | Type | Required | Description |
|---|---|---|---|
data | object | Yes | — |
data full type
data full type
{
id: string,
date?: string | null,
total: number,
currency: string,
seller?: string | null,
created_at?: number | string | null,
updated_at?: number | string | null
}
list
expenses.list
List recorded expenses with optional pagination
Risk: read
await corsair.finmei.api.expenses.list({});
| Name | Type | Required | Description |
|---|---|---|---|
page | number | No | — |
per_page | number | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
data | object[] | Yes | — |
meta | object | No | — |
data full type
data full type
{
id: string,
date?: string | null,
total: number,
currency: string,
seller?: string | null,
created_at?: number | string | null,
updated_at?: number | string | null
}[]
meta full type
meta full type
{
current_page?: number | null,
from?: number | null,
last_page?: number | null,
path?: string | null,
per_page?: number | null,
to?: number | null,
total?: number | null
}
update
expenses.update
Update an existing expense record
Risk: write
await corsair.finmei.api.expenses.update({});
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | — |
seller | string | Yes | — |
total | number | Yes | — |
currency | string | Yes | — |
date | string | Yes | — |
| Name | Type | Required | Description |
|---|---|---|---|
data | object | Yes | — |
data full type
data full type
{
id: string,
date?: string | null,
total: number,
currency: string,
seller?: string | null,
created_at?: number | string | null,
updated_at?: number | string | null
}
updateFile
expenses.updateFile
Update or replace an expense receipt file
Risk: write
await corsair.finmei.api.expenses.updateFile({});
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | — |
file | string | Yes | — |
fileType | string | No | — |
fileName | string | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
data | object | Yes | — |
data full type
data full type
{
id: string,
date?: string | null,
total: number,
currency: string,
seller?: string | null,
created_at?: number | string | null,
updated_at?: number | string | null
}
Invoices
create
invoices.create
Create a new invoice with line items, buyer and seller information
Risk: write
await corsair.finmei.api.invoices.create({});
| Name | Type | Required | Description |
|---|---|---|---|
type | regular_invoice | vat_invoice | preliminary_invoice | preliminary_vat_invoice | credit_invoice | credit_vat_invoice | Yes | — |
invoice_date | string | Yes | — |
pay_until_date | string | No | — |
series | string | Yes | — |
invoice_number | string | number | No | — |
currency | string | Yes | — |
payment_status | paid | not_paid | No | — |
language | string | No | — |
notes | string | No | — |
use_default_seller_info | boolean | No | — |
seller | object | No | — |
buyer | object | Yes | — |
products | object[] | Yes | — |
payment_options | object[] | No | — |
seller full type
seller full type
{
company_name?: string,
company_code?: string,
first_name?: string,
last_name?: string,
individual_tax_id?: string,
vat_code?: string,
address?: string,
email?: string,
phone?: string,
custom_fields?: {
label: string,
value: string
}[]
}
buyer full type
buyer full type
{
type: company | individual,
first_name?: string,
last_name?: string,
company_name?: string,
company_code?: string,
individual_tax_id?: string,
vat_code?: string,
country?: string,
address?: string,
email?: string,
phone?: string,
custom_fields?: {
label: string,
value: string
}[]
}
products full type
products full type
{
name: string,
price: number,
quantity: number,
units: string,
vat_percentage?: number
}[]
payment_options full type
payment_options full type
{
type: string,
bank_account?: string,
bank_name?: string,
routing_or_sort_number?: string,
swift_bic_code?: string,
fields?: {
label: string,
value: string
}[]
}[]
| Name | Type | Required | Description |
|---|---|---|---|
data | object | Yes | — |
data full type
data full type
{
id: string,
business_id?: string | null,
invoice_type?: string | null,
series?: string | null,
invoice_number?: string | null,
invoice_date?: string | null,
pay_until_date?: string | null,
language?: string | null,
subtotal?: number | null,
vat?: number | null,
total_incl_vat?: number | null,
currency: string,
payment_status?: string | null,
notes?: string | null,
share_link?: string | null,
seller?: {
business_type?: string | null,
first_name?: string | null,
last_name?: string | null,
company_name?: string | null,
company_code?: string | null,
individual_tax_id?: string | null,
vat_code?: string | null,
address?: string | null,
email?: string | null,
phone?: string | null,
custom_fields?: {
label: string,
value: string
}[] | null
} | null,
buyer?: {
type?: string | null,
first_name?: string | null,
last_name?: string | null,
company_name?: string | null,
company_code?: string | null,
individual_tax_id?: string | null,
vat_code?: string | null,
address?: string | null,
email?: string | null,
phone?: string | null,
country?: string | null,
custom_fields?: {
label: string,
value: string
}[] | null
} | null,
items?: {
id?: string,
name: string,
price: number,
vat_percentage?: number | null,
quantity: number,
units?: string | null
}[],
payment_options?: {
type?: string,
bank_account?: string | null,
bank_name?: string | null,
routing_or_sort_number?: string | null,
swift_bic_code?: string | null,
fields?: {
label: string,
value: string
}[] | null
}[],
bank_accounts?: {
account?: string | null,
bank_name?: string | null
}[],
created_at?: number | string | null,
updated_at?: number | string | null
}
delete
invoices.delete
Delete an invoice by ID
Risk: destructive
await corsair.finmei.api.invoices.delete({});
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | — |
object \| null
Output full type
Output full type
{
success?: boolean
} | null
download
invoices.download
Download invoice PDF document as binary data
Risk: read
await corsair.finmei.api.invoices.download({});
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | — |
| Name | Type | Required | Description |
|---|---|---|---|
kind | binary | Yes | — |
contentType | string | Yes | — |
base64 | string | Yes | — |
size | number | No | — |
get
invoices.get
Retrieve an invoice by ID
Risk: read
await corsair.finmei.api.invoices.get({});
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | — |
| Name | Type | Required | Description |
|---|---|---|---|
data | object | Yes | — |
data full type
data full type
{
id: string,
business_id?: string | null,
invoice_type?: string | null,
series?: string | null,
invoice_number?: string | null,
invoice_date?: string | null,
pay_until_date?: string | null,
language?: string | null,
subtotal?: number | null,
vat?: number | null,
total_incl_vat?: number | null,
currency: string,
payment_status?: string | null,
notes?: string | null,
share_link?: string | null,
seller?: {
business_type?: string | null,
first_name?: string | null,
last_name?: string | null,
company_name?: string | null,
company_code?: string | null,
individual_tax_id?: string | null,
vat_code?: string | null,
address?: string | null,
email?: string | null,
phone?: string | null,
custom_fields?: {
label: string,
value: string
}[] | null
} | null,
buyer?: {
type?: string | null,
first_name?: string | null,
last_name?: string | null,
company_name?: string | null,
company_code?: string | null,
individual_tax_id?: string | null,
vat_code?: string | null,
address?: string | null,
email?: string | null,
phone?: string | null,
country?: string | null,
custom_fields?: {
label: string,
value: string
}[] | null
} | null,
items?: {
id?: string,
name: string,
price: number,
vat_percentage?: number | null,
quantity: number,
units?: string | null
}[],
payment_options?: {
type?: string,
bank_account?: string | null,
bank_name?: string | null,
routing_or_sort_number?: string | null,
swift_bic_code?: string | null,
fields?: {
label: string,
value: string
}[] | null
}[],
bank_accounts?: {
account?: string | null,
bank_name?: string | null
}[],
created_at?: number | string | null,
updated_at?: number | string | null
}
list
invoices.list
List invoices with optional pagination
Risk: read
await corsair.finmei.api.invoices.list({});
| Name | Type | Required | Description |
|---|---|---|---|
page | number | No | — |
per_page | number | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
data | object[] | Yes | — |
meta | object | No | — |
data full type
data full type
{
id: string,
business_id?: string | null,
invoice_type?: string | null,
series?: string | null,
invoice_number?: string | null,
invoice_date?: string | null,
pay_until_date?: string | null,
language?: string | null,
subtotal?: number | null,
vat?: number | null,
total_incl_vat?: number | null,
currency: string,
payment_status?: string | null,
notes?: string | null,
share_link?: string | null,
seller?: {
business_type?: string | null,
first_name?: string | null,
last_name?: string | null,
company_name?: string | null,
company_code?: string | null,
individual_tax_id?: string | null,
vat_code?: string | null,
address?: string | null,
email?: string | null,
phone?: string | null,
custom_fields?: {
label: string,
value: string
}[] | null
} | null,
buyer?: {
type?: string | null,
first_name?: string | null,
last_name?: string | null,
company_name?: string | null,
company_code?: string | null,
individual_tax_id?: string | null,
vat_code?: string | null,
address?: string | null,
email?: string | null,
phone?: string | null,
country?: string | null,
custom_fields?: {
label: string,
value: string
}[] | null
} | null,
items?: {
id?: string,
name: string,
price: number,
vat_percentage?: number | null,
quantity: number,
units?: string | null
}[],
payment_options?: {
type?: string,
bank_account?: string | null,
bank_name?: string | null,
routing_or_sort_number?: string | null,
swift_bic_code?: string | null,
fields?: {
label: string,
value: string
}[] | null
}[],
bank_accounts?: {
account?: string | null,
bank_name?: string | null
}[],
created_at?: number | string | null,
updated_at?: number | string | null
}[]
meta full type
meta full type
{
current_page?: number | null,
from?: number | null,
last_page?: number | null,
path?: string | null,
per_page?: number | null,
to?: number | null,
total?: number | null
}
update
invoices.update
Update an existing invoice
Risk: write
await corsair.finmei.api.invoices.update({});
| Name | Type | Required | Description |
|---|---|---|---|
type | regular_invoice | vat_invoice | preliminary_invoice | preliminary_vat_invoice | credit_invoice | credit_vat_invoice | Yes | — |
invoice_date | string | Yes | — |
pay_until_date | string | No | — |
series | string | Yes | — |
invoice_number | string | number | No | — |
currency | string | Yes | — |
payment_status | paid | not_paid | No | — |
language | string | No | — |
notes | string | No | — |
use_default_seller_info | boolean | No | — |
seller | object | No | — |
buyer | object | Yes | — |
products | object[] | Yes | — |
payment_options | object[] | No | — |
id | string | Yes | — |
seller full type
seller full type
{
company_name?: string,
company_code?: string,
first_name?: string,
last_name?: string,
individual_tax_id?: string,
vat_code?: string,
address?: string,
email?: string,
phone?: string,
custom_fields?: {
label: string,
value: string
}[]
}
buyer full type
buyer full type
{
type: company | individual,
first_name?: string,
last_name?: string,
company_name?: string,
company_code?: string,
individual_tax_id?: string,
vat_code?: string,
country?: string,
address?: string,
email?: string,
phone?: string,
custom_fields?: {
label: string,
value: string
}[]
}
products full type
products full type
{
name: string,
price: number,
quantity: number,
units: string,
vat_percentage?: number
}[]
payment_options full type
payment_options full type
{
type: string,
bank_account?: string,
bank_name?: string,
routing_or_sort_number?: string,
swift_bic_code?: string,
fields?: {
label: string,
value: string
}[]
}[]
| Name | Type | Required | Description |
|---|---|---|---|
data | object | Yes | — |
data full type
data full type
{
id: string,
business_id?: string | null,
invoice_type?: string | null,
series?: string | null,
invoice_number?: string | null,
invoice_date?: string | null,
pay_until_date?: string | null,
language?: string | null,
subtotal?: number | null,
vat?: number | null,
total_incl_vat?: number | null,
currency: string,
payment_status?: string | null,
notes?: string | null,
share_link?: string | null,
seller?: {
business_type?: string | null,
first_name?: string | null,
last_name?: string | null,
company_name?: string | null,
company_code?: string | null,
individual_tax_id?: string | null,
vat_code?: string | null,
address?: string | null,
email?: string | null,
phone?: string | null,
custom_fields?: {
label: string,
value: string
}[] | null
} | null,
buyer?: {
type?: string | null,
first_name?: string | null,
last_name?: string | null,
company_name?: string | null,
company_code?: string | null,
individual_tax_id?: string | null,
vat_code?: string | null,
address?: string | null,
email?: string | null,
phone?: string | null,
country?: string | null,
custom_fields?: {
label: string,
value: string
}[] | null
} | null,
items?: {
id?: string,
name: string,
price: number,
vat_percentage?: number | null,
quantity: number,
units?: string | null
}[],
payment_options?: {
type?: string,
bank_account?: string | null,
bank_name?: string | null,
routing_or_sort_number?: string | null,
swift_bic_code?: string | null,
fields?: {
label: string,
value: string
}[] | null
}[],
bank_accounts?: {
account?: string | null,
bank_name?: string | null
}[],
created_at?: number | string | null,
updated_at?: number | string | null
}
Profile
get
profile.get
Get profile information for the authenticated business
Risk: read
await corsair.finmei.api.profile.get({});
| Name | Type | Required | Description |
|---|---|---|---|
data | object | Yes | — |
data full type
data full type
{
business_id: string,
business_title?: string | null,
business_type?: string | null,
address?: string | null,
vat_code?: string | null,
company_name?: string | null,
company_code?: string | null,
individual_tax_id?: string | null,
first_name?: string | null,
last_name?: string | null
}