@facturino/node 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/dist/cjs/client.d.ts +24 -0
- package/dist/cjs/client.js +203 -0
- package/dist/cjs/errors.d.ts +76 -0
- package/dist/cjs/errors.js +128 -0
- package/dist/cjs/index.d.ts +59 -0
- package/dist/cjs/index.js +77 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/pagination.d.ts +24 -0
- package/dist/cjs/pagination.js +68 -0
- package/dist/cjs/resources/account.d.ts +58 -0
- package/dist/cjs/resources/account.js +48 -0
- package/dist/cjs/resources/archives.d.ts +16 -0
- package/dist/cjs/resources/archives.js +17 -0
- package/dist/cjs/resources/billing.d.ts +30 -0
- package/dist/cjs/resources/billing.js +45 -0
- package/dist/cjs/resources/companies.d.ts +47 -0
- package/dist/cjs/resources/companies.js +45 -0
- package/dist/cjs/resources/creditNotes.d.ts +64 -0
- package/dist/cjs/resources/creditNotes.js +62 -0
- package/dist/cjs/resources/customers.d.ts +17 -0
- package/dist/cjs/resources/customers.js +36 -0
- package/dist/cjs/resources/ereporting.d.ts +12 -0
- package/dist/cjs/resources/ereporting.js +23 -0
- package/dist/cjs/resources/events.d.ts +11 -0
- package/dist/cjs/resources/events.js +20 -0
- package/dist/cjs/resources/exports.d.ts +20 -0
- package/dist/cjs/resources/exports.js +31 -0
- package/dist/cjs/resources/health.d.ts +13 -0
- package/dist/cjs/resources/health.js +18 -0
- package/dist/cjs/resources/invoices.d.ts +112 -0
- package/dist/cjs/resources/invoices.js +141 -0
- package/dist/cjs/resources/jobs.d.ts +10 -0
- package/dist/cjs/resources/jobs.js +24 -0
- package/dist/cjs/resources/payments.d.ts +16 -0
- package/dist/cjs/resources/payments.js +25 -0
- package/dist/cjs/resources/products.d.ts +15 -0
- package/dist/cjs/resources/products.js +32 -0
- package/dist/cjs/resources/quotes.d.ts +44 -0
- package/dist/cjs/resources/quotes.js +58 -0
- package/dist/cjs/resources/received-invoices.d.ts +14 -0
- package/dist/cjs/resources/received-invoices.js +29 -0
- package/dist/cjs/resources/recurringInvoices.d.ts +15 -0
- package/dist/cjs/resources/recurringInvoices.js +32 -0
- package/dist/cjs/resources/reference.d.ts +45 -0
- package/dist/cjs/resources/reference.js +57 -0
- package/dist/cjs/resources/reporting.d.ts +11 -0
- package/dist/cjs/resources/reporting.js +30 -0
- package/dist/cjs/resources/sandbox.d.ts +12 -0
- package/dist/cjs/resources/sandbox.js +21 -0
- package/dist/cjs/resources/usage.d.ts +20 -0
- package/dist/cjs/resources/usage.js +25 -0
- package/dist/cjs/resources/validate.d.ts +18 -0
- package/dist/cjs/resources/validate.js +23 -0
- package/dist/cjs/resources/webhookEndpoints.d.ts +20 -0
- package/dist/cjs/resources/webhookEndpoints.js +31 -0
- package/dist/cjs/types.d.ts +1178 -0
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/webhooks.d.ts +14 -0
- package/dist/cjs/webhooks.js +63 -0
- package/dist/esm/client.d.ts +25 -0
- package/dist/esm/client.d.ts.map +1 -0
- package/dist/esm/client.js +200 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/errors.d.ts +77 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +114 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/index.d.ts +60 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +61 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/pagination.d.ts +25 -0
- package/dist/esm/pagination.d.ts.map +1 -0
- package/dist/esm/pagination.js +65 -0
- package/dist/esm/pagination.js.map +1 -0
- package/dist/esm/resources/account.d.ts +59 -0
- package/dist/esm/resources/account.d.ts.map +1 -0
- package/dist/esm/resources/account.js +45 -0
- package/dist/esm/resources/account.js.map +1 -0
- package/dist/esm/resources/archives.d.ts +17 -0
- package/dist/esm/resources/archives.d.ts.map +1 -0
- package/dist/esm/resources/archives.js +14 -0
- package/dist/esm/resources/archives.js.map +1 -0
- package/dist/esm/resources/billing.d.ts +31 -0
- package/dist/esm/resources/billing.d.ts.map +1 -0
- package/dist/esm/resources/billing.js +42 -0
- package/dist/esm/resources/billing.js.map +1 -0
- package/dist/esm/resources/companies.d.ts +48 -0
- package/dist/esm/resources/companies.d.ts.map +1 -0
- package/dist/esm/resources/companies.js +42 -0
- package/dist/esm/resources/companies.js.map +1 -0
- package/dist/esm/resources/creditNotes.d.ts +65 -0
- package/dist/esm/resources/creditNotes.d.ts.map +1 -0
- package/dist/esm/resources/creditNotes.js +59 -0
- package/dist/esm/resources/creditNotes.js.map +1 -0
- package/dist/esm/resources/customers.d.ts +18 -0
- package/dist/esm/resources/customers.d.ts.map +1 -0
- package/dist/esm/resources/customers.js +33 -0
- package/dist/esm/resources/customers.js.map +1 -0
- package/dist/esm/resources/ereporting.d.ts +13 -0
- package/dist/esm/resources/ereporting.d.ts.map +1 -0
- package/dist/esm/resources/ereporting.js +20 -0
- package/dist/esm/resources/ereporting.js.map +1 -0
- package/dist/esm/resources/events.d.ts +12 -0
- package/dist/esm/resources/events.d.ts.map +1 -0
- package/dist/esm/resources/events.js +17 -0
- package/dist/esm/resources/events.js.map +1 -0
- package/dist/esm/resources/exports.d.ts +21 -0
- package/dist/esm/resources/exports.d.ts.map +1 -0
- package/dist/esm/resources/exports.js +28 -0
- package/dist/esm/resources/exports.js.map +1 -0
- package/dist/esm/resources/health.d.ts +14 -0
- package/dist/esm/resources/health.d.ts.map +1 -0
- package/dist/esm/resources/health.js +15 -0
- package/dist/esm/resources/health.js.map +1 -0
- package/dist/esm/resources/invoices.d.ts +113 -0
- package/dist/esm/resources/invoices.d.ts.map +1 -0
- package/dist/esm/resources/invoices.js +138 -0
- package/dist/esm/resources/invoices.js.map +1 -0
- package/dist/esm/resources/jobs.d.ts +11 -0
- package/dist/esm/resources/jobs.d.ts.map +1 -0
- package/dist/esm/resources/jobs.js +21 -0
- package/dist/esm/resources/jobs.js.map +1 -0
- package/dist/esm/resources/payments.d.ts +17 -0
- package/dist/esm/resources/payments.d.ts.map +1 -0
- package/dist/esm/resources/payments.js +22 -0
- package/dist/esm/resources/payments.js.map +1 -0
- package/dist/esm/resources/products.d.ts +16 -0
- package/dist/esm/resources/products.d.ts.map +1 -0
- package/dist/esm/resources/products.js +29 -0
- package/dist/esm/resources/products.js.map +1 -0
- package/dist/esm/resources/quotes.d.ts +45 -0
- package/dist/esm/resources/quotes.d.ts.map +1 -0
- package/dist/esm/resources/quotes.js +55 -0
- package/dist/esm/resources/quotes.js.map +1 -0
- package/dist/esm/resources/received-invoices.d.ts +15 -0
- package/dist/esm/resources/received-invoices.d.ts.map +1 -0
- package/dist/esm/resources/received-invoices.js +26 -0
- package/dist/esm/resources/received-invoices.js.map +1 -0
- package/dist/esm/resources/recurringInvoices.d.ts +16 -0
- package/dist/esm/resources/recurringInvoices.d.ts.map +1 -0
- package/dist/esm/resources/recurringInvoices.js +29 -0
- package/dist/esm/resources/recurringInvoices.js.map +1 -0
- package/dist/esm/resources/reference.d.ts +46 -0
- package/dist/esm/resources/reference.d.ts.map +1 -0
- package/dist/esm/resources/reference.js +54 -0
- package/dist/esm/resources/reference.js.map +1 -0
- package/dist/esm/resources/reporting.d.ts +12 -0
- package/dist/esm/resources/reporting.d.ts.map +1 -0
- package/dist/esm/resources/reporting.js +27 -0
- package/dist/esm/resources/reporting.js.map +1 -0
- package/dist/esm/resources/sandbox.d.ts +13 -0
- package/dist/esm/resources/sandbox.d.ts.map +1 -0
- package/dist/esm/resources/sandbox.js +18 -0
- package/dist/esm/resources/sandbox.js.map +1 -0
- package/dist/esm/resources/usage.d.ts +21 -0
- package/dist/esm/resources/usage.d.ts.map +1 -0
- package/dist/esm/resources/usage.js +22 -0
- package/dist/esm/resources/usage.js.map +1 -0
- package/dist/esm/resources/validate.d.ts +19 -0
- package/dist/esm/resources/validate.d.ts.map +1 -0
- package/dist/esm/resources/validate.js +20 -0
- package/dist/esm/resources/validate.js.map +1 -0
- package/dist/esm/resources/webhookEndpoints.d.ts +21 -0
- package/dist/esm/resources/webhookEndpoints.d.ts.map +1 -0
- package/dist/esm/resources/webhookEndpoints.js +28 -0
- package/dist/esm/resources/webhookEndpoints.js.map +1 -0
- package/dist/esm/types.d.ts +1179 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +5 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/webhooks.d.ts +15 -0
- package/dist/esm/webhooks.d.ts.map +1 -0
- package/dist/esm/webhooks.js +60 -0
- package/dist/esm/webhooks.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { HttpClient } from './client.js';
|
|
2
|
+
import { Webhooks } from './webhooks.js';
|
|
3
|
+
import { Invoices } from './resources/invoices.js';
|
|
4
|
+
import { Payments } from './resources/payments.js';
|
|
5
|
+
import { Customers } from './resources/customers.js';
|
|
6
|
+
import { Products } from './resources/products.js';
|
|
7
|
+
import { Quotes } from './resources/quotes.js';
|
|
8
|
+
import { CreditNotes } from './resources/creditNotes.js';
|
|
9
|
+
import { Events } from './resources/events.js';
|
|
10
|
+
import { WebhookEndpoints } from './resources/webhookEndpoints.js';
|
|
11
|
+
import { RecurringInvoices } from './resources/recurringInvoices.js';
|
|
12
|
+
import { Companies } from './resources/companies.js';
|
|
13
|
+
import { Exports } from './resources/exports.js';
|
|
14
|
+
import { EReportingResource } from './resources/ereporting.js';
|
|
15
|
+
import { Jobs } from './resources/jobs.js';
|
|
16
|
+
import { Sandbox } from './resources/sandbox.js';
|
|
17
|
+
import { ReceivedInvoices } from './resources/received-invoices.js';
|
|
18
|
+
import { Reporting } from './resources/reporting.js';
|
|
19
|
+
import { AccountResource } from './resources/account.js';
|
|
20
|
+
import { Billing } from './resources/billing.js';
|
|
21
|
+
import { Usage } from './resources/usage.js';
|
|
22
|
+
import { Validate } from './resources/validate.js';
|
|
23
|
+
import { Reference } from './resources/reference.js';
|
|
24
|
+
import { Archives } from './resources/archives.js';
|
|
25
|
+
import { Health } from './resources/health.js';
|
|
26
|
+
/** Facturino API client for French e-invoicing — initialize with your API key to access all resources. */
|
|
27
|
+
class Facturino {
|
|
28
|
+
constructor(apiKey, config) {
|
|
29
|
+
const client = new HttpClient(apiKey, config);
|
|
30
|
+
this.account = new AccountResource(client);
|
|
31
|
+
this.billing = new Billing(client);
|
|
32
|
+
this.invoices = new Invoices(client);
|
|
33
|
+
this.payments = new Payments(client);
|
|
34
|
+
this.customers = new Customers(client);
|
|
35
|
+
this.products = new Products(client);
|
|
36
|
+
this.quotes = new Quotes(client);
|
|
37
|
+
this.creditNotes = new CreditNotes(client);
|
|
38
|
+
this.events = new Events(client);
|
|
39
|
+
this.webhookEndpoints = new WebhookEndpoints(client);
|
|
40
|
+
this.recurringInvoices = new RecurringInvoices(client);
|
|
41
|
+
this.companies = new Companies(client);
|
|
42
|
+
this.exports = new Exports(client);
|
|
43
|
+
this.ereporting = new EReportingResource(client);
|
|
44
|
+
this.jobs = new Jobs(client);
|
|
45
|
+
this.reference = new Reference(client);
|
|
46
|
+
this.sandbox = new Sandbox(client);
|
|
47
|
+
this.usage = new Usage(client);
|
|
48
|
+
this.validate = new Validate(client);
|
|
49
|
+
this.webhooks = new Webhooks();
|
|
50
|
+
this.receivedInvoices = new ReceivedInvoices(client);
|
|
51
|
+
this.reporting = new Reporting(client);
|
|
52
|
+
this.archives = new Archives(client);
|
|
53
|
+
this.health = new Health(client);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export default Facturino;
|
|
57
|
+
export { Facturino };
|
|
58
|
+
export { FacturinoError, ApiError, InvalidRequestError, ValidationError, AuthenticationError, PermissionError, NotFoundError, ConflictError, RateLimitError, PlanLimitError, ApiInternalError, ConnectionError, } from './errors.js';
|
|
59
|
+
export { Webhooks } from './webhooks.js';
|
|
60
|
+
export { AutoPaginatingList } from './pagination.js';
|
|
61
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { HttpClient } from './client.js';
|
|
2
|
+
import type { PaginatedResponse, PaginationParams } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Async-iterable list with auto-pagination.
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* for await (const inv of facturino.invoices.list()) { ... }
|
|
8
|
+
* // or: const page = await facturino.invoices.list()
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
export declare class AutoPaginatingList<T extends {
|
|
12
|
+
id: string;
|
|
13
|
+
}> implements AsyncIterable<T>, PromiseLike<PaginatedResponse<T>> {
|
|
14
|
+
private readonly client;
|
|
15
|
+
private readonly path;
|
|
16
|
+
private readonly params;
|
|
17
|
+
private firstPagePromise;
|
|
18
|
+
constructor(client: HttpClient, path: string, params?: PaginationParams);
|
|
19
|
+
/** Await resolves to the first page. */
|
|
20
|
+
then<TResult1 = PaginatedResponse<T>, TResult2 = never>(onfulfilled?: ((value: PaginatedResponse<T>) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
|
|
21
|
+
/** Yields items across all pages. */
|
|
22
|
+
[Symbol.asyncIterator](): AsyncIterator<T>;
|
|
23
|
+
private getFirstPage;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAErE;;;;;;;GAOG;AACH,qBAAa,kBAAkB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CACtD,YAAW,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAE9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,gBAAgB,CAA6C;gBAGnE,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,gBAAgB;IAO3B,wCAAwC;IACxC,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,EACpD,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,EACxF,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAC1E,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAI/B,qCAAqC;IAC9B,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;IAkCjD,OAAO,CAAC,YAAY;CAiBrB"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Async-iterable list with auto-pagination.
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* for await (const inv of facturino.invoices.list()) { ... }
|
|
6
|
+
* // or: const page = await facturino.invoices.list()
|
|
7
|
+
* ```
|
|
8
|
+
*/
|
|
9
|
+
export class AutoPaginatingList {
|
|
10
|
+
constructor(client, path, params) {
|
|
11
|
+
this.firstPagePromise = null;
|
|
12
|
+
this.client = client;
|
|
13
|
+
this.path = path;
|
|
14
|
+
this.params = { ...(params ?? {}) };
|
|
15
|
+
}
|
|
16
|
+
/** Await resolves to the first page. */
|
|
17
|
+
then(onfulfilled, onrejected) {
|
|
18
|
+
return this.getFirstPage().then(onfulfilled, onrejected);
|
|
19
|
+
}
|
|
20
|
+
/** Yields items across all pages. */
|
|
21
|
+
async *[Symbol.asyncIterator]() {
|
|
22
|
+
let cursor = this.params.starting_after;
|
|
23
|
+
const limit = this.params.limit ?? 25;
|
|
24
|
+
for (;;) {
|
|
25
|
+
const queryParams = {};
|
|
26
|
+
if (limit)
|
|
27
|
+
queryParams.limit = String(limit);
|
|
28
|
+
if (cursor)
|
|
29
|
+
queryParams.starting_after = cursor;
|
|
30
|
+
// Forward filter params (status, type, active, etc.)
|
|
31
|
+
for (const [key, value] of Object.entries(this.params)) {
|
|
32
|
+
if (key === 'limit' || key === 'starting_after')
|
|
33
|
+
continue;
|
|
34
|
+
if (value !== undefined && value !== null) {
|
|
35
|
+
queryParams[key] = String(value);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const qs = new URLSearchParams(queryParams).toString();
|
|
39
|
+
const url = qs ? `${this.path}?${qs}` : this.path;
|
|
40
|
+
const page = await this.client.get(url);
|
|
41
|
+
for (const item of page.data) {
|
|
42
|
+
yield item;
|
|
43
|
+
}
|
|
44
|
+
if (!page.has_more || page.data.length === 0) {
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
cursor = page.next_cursor ?? page.data[page.data.length - 1].id;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
getFirstPage() {
|
|
51
|
+
if (!this.firstPagePromise) {
|
|
52
|
+
const queryParams = {};
|
|
53
|
+
for (const [key, value] of Object.entries(this.params)) {
|
|
54
|
+
if (value !== undefined && value !== null) {
|
|
55
|
+
queryParams[key] = String(value);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const qs = new URLSearchParams(queryParams).toString();
|
|
59
|
+
const url = qs ? `${this.path}?${qs}` : this.path;
|
|
60
|
+
this.firstPagePromise = this.client.get(url);
|
|
61
|
+
}
|
|
62
|
+
return this.firstPagePromise;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/pagination.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { HttpClient } from '../client.js';
|
|
2
|
+
import type { Account } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Result of `POST /v1/account/export` (202 Accepted). The export runs
|
|
5
|
+
* asynchronously — poll `exports.getExportStatus(id)` until the job exposes
|
|
6
|
+
* `download_url`.
|
|
7
|
+
*/
|
|
8
|
+
export interface AccountExportResponse {
|
|
9
|
+
object: 'job';
|
|
10
|
+
/** Job id (`job_…`) — poll it via `exports.getExportStatus`. */
|
|
11
|
+
id: string;
|
|
12
|
+
type: 'rgpd_export';
|
|
13
|
+
status: string;
|
|
14
|
+
}
|
|
15
|
+
/** Short-lived (5 min) signed-URL response for a prepared RGPD export. */
|
|
16
|
+
export interface AccountExportDownloadResponse {
|
|
17
|
+
object: 'export_url';
|
|
18
|
+
url: string;
|
|
19
|
+
/** ISO 8601 expiry of the signed URL (5 minutes). */
|
|
20
|
+
expires_at: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Account introspection — returns the authenticated user, the active
|
|
24
|
+
* company, the current plan and the scopes attached to the API key in
|
|
25
|
+
* use. Every integration should expose this on a "Connected to
|
|
26
|
+
* Facturino" surface so users can confirm which company and which
|
|
27
|
+
* environment (`fac_test_` vs `fac_live_`) their requests target.
|
|
28
|
+
*
|
|
29
|
+
* Also exposes the RGPD data-export endpoints (article 20): request a
|
|
30
|
+
* full export and download it once prepared.
|
|
31
|
+
*/
|
|
32
|
+
export declare class AccountResource {
|
|
33
|
+
private readonly client;
|
|
34
|
+
constructor(client: HttpClient);
|
|
35
|
+
/**
|
|
36
|
+
* Return the account context (user, company, plan, livemode, scopes)
|
|
37
|
+
* associated with the API key used by this client. Equivalent to
|
|
38
|
+
* Stripe's `accounts.retrieve('me')` — no path parameter, the key
|
|
39
|
+
* implicitly identifies "self".
|
|
40
|
+
*/
|
|
41
|
+
retrieve(): Promise<Account>;
|
|
42
|
+
/**
|
|
43
|
+
* Request a full export of the account's data (RGPD article 20).
|
|
44
|
+
* Returns 202 with a job id; the file is prepared asynchronously.
|
|
45
|
+
* Poll `exports.getExportStatus(id)` until the job carries a
|
|
46
|
+
* `download_url` (the user also receives an in-app notification).
|
|
47
|
+
*/
|
|
48
|
+
requestExport(): Promise<AccountExportResponse>;
|
|
49
|
+
/**
|
|
50
|
+
* Return a short-lived (5 minutes) signed URL for a prepared RGPD
|
|
51
|
+
* export. Takes the `rgpdexp_…` export id delivered by the
|
|
52
|
+
* `export_ready` notification — NOT the `job_…` id returned by
|
|
53
|
+
* {@link requestExport} (poll that one via `exports.getExportStatus`).
|
|
54
|
+
* The export metadata is keyed under the authenticated user —
|
|
55
|
+
* cross-user access is impossible.
|
|
56
|
+
*/
|
|
57
|
+
downloadExport(exportId: string): Promise<AccountExportDownloadResponse>;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=account.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/resources/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,KAAK,CAAA;IACb,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,0EAA0E;AAC1E,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,YAAY,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC;;;;;OAKG;IACG,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAIrD;;;;;;;OAOG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;CAK/E"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Account introspection — returns the authenticated user, the active
|
|
3
|
+
* company, the current plan and the scopes attached to the API key in
|
|
4
|
+
* use. Every integration should expose this on a "Connected to
|
|
5
|
+
* Facturino" surface so users can confirm which company and which
|
|
6
|
+
* environment (`fac_test_` vs `fac_live_`) their requests target.
|
|
7
|
+
*
|
|
8
|
+
* Also exposes the RGPD data-export endpoints (article 20): request a
|
|
9
|
+
* full export and download it once prepared.
|
|
10
|
+
*/
|
|
11
|
+
export class AccountResource {
|
|
12
|
+
constructor(client) {
|
|
13
|
+
this.client = client;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Return the account context (user, company, plan, livemode, scopes)
|
|
17
|
+
* associated with the API key used by this client. Equivalent to
|
|
18
|
+
* Stripe's `accounts.retrieve('me')` — no path parameter, the key
|
|
19
|
+
* implicitly identifies "self".
|
|
20
|
+
*/
|
|
21
|
+
async retrieve() {
|
|
22
|
+
return this.client.get('/v1/account');
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Request a full export of the account's data (RGPD article 20).
|
|
26
|
+
* Returns 202 with a job id; the file is prepared asynchronously.
|
|
27
|
+
* Poll `exports.getExportStatus(id)` until the job carries a
|
|
28
|
+
* `download_url` (the user also receives an in-app notification).
|
|
29
|
+
*/
|
|
30
|
+
async requestExport() {
|
|
31
|
+
return this.client.post('/v1/account/export');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Return a short-lived (5 minutes) signed URL for a prepared RGPD
|
|
35
|
+
* export. Takes the `rgpdexp_…` export id delivered by the
|
|
36
|
+
* `export_ready` notification — NOT the `job_…` id returned by
|
|
37
|
+
* {@link requestExport} (poll that one via `exports.getExportStatus`).
|
|
38
|
+
* The export metadata is keyed under the authenticated user —
|
|
39
|
+
* cross-user access is impossible.
|
|
40
|
+
*/
|
|
41
|
+
async downloadExport(exportId) {
|
|
42
|
+
return this.client.get(`/v1/account/exports/${exportId}/download`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=account.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/resources/account.ts"],"names":[],"mappings":"AAwBA;;;;;;;;;GASG;AACH,MAAM,OAAO,eAAe;IAC1B,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD;;;;;OAKG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAU,aAAa,CAAC,CAAA;IAChD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAwB,oBAAoB,CAAC,CAAA;IACtE,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CACpB,uBAAuB,QAAQ,WAAW,CAC3C,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { HttpClient } from '../client.js';
|
|
2
|
+
import { AutoPaginatingList } from '../pagination.js';
|
|
3
|
+
import type { PaginationParams } from '../types.js';
|
|
4
|
+
/** Archive retrieval — access legally archived invoices and verify integrity. */
|
|
5
|
+
export declare class Archives {
|
|
6
|
+
private readonly client;
|
|
7
|
+
constructor(client: HttpClient);
|
|
8
|
+
list(params?: PaginationParams): AutoPaginatingList<{
|
|
9
|
+
id: string;
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
}>;
|
|
12
|
+
get(invoiceId: string): Promise<{
|
|
13
|
+
id: string;
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=archives.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archives.d.ts","sourceRoot":"","sources":["../../../src/resources/archives.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,aAAa,CAAA;AAEpB,iFAAiF;AACjF,qBAAa,QAAQ;IACP,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,kBAAkB,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAIrF,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAG9E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AutoPaginatingList } from '../pagination.js';
|
|
2
|
+
/** Archive retrieval — access legally archived invoices and verify integrity. */
|
|
3
|
+
export class Archives {
|
|
4
|
+
constructor(client) {
|
|
5
|
+
this.client = client;
|
|
6
|
+
}
|
|
7
|
+
list(params) {
|
|
8
|
+
return new AutoPaginatingList(this.client, '/v1/archives', params);
|
|
9
|
+
}
|
|
10
|
+
async get(invoiceId) {
|
|
11
|
+
return this.client.get(`/v1/archives/${invoiceId}`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=archives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archives.js","sourceRoot":"","sources":["../../../src/resources/archives.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAMrD,iFAAiF;AACjF,MAAM,OAAO,QAAQ;IACnB,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD,IAAI,CAAC,MAAyB;QAC5B,OAAO,IAAI,kBAAkB,CAAyC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;IAC5G,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAyC,gBAAgB,SAAS,EAAE,CAAC,CAAA;IAC7F,CAAC;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { HttpClient } from '../client.js';
|
|
2
|
+
import type { BillingSubscription, PaginatedResponse, PlatformInvoice } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Billing — read-only access to the current subscription and the
|
|
5
|
+
* Facturino → user platform-invoice history.
|
|
6
|
+
*
|
|
7
|
+
* Plan changes, checkout and the Stripe Customer Portal are handled
|
|
8
|
+
* through the Facturino dashboard, not the API.
|
|
9
|
+
*/
|
|
10
|
+
export declare class Billing {
|
|
11
|
+
private readonly client;
|
|
12
|
+
constructor(client: HttpClient);
|
|
13
|
+
/** Current subscription (plan, status, period). */
|
|
14
|
+
retrieveSubscription(): Promise<BillingSubscription>;
|
|
15
|
+
/** Paginated list of platform invoices (Facturino → user) for the current account. */
|
|
16
|
+
listInvoices(params?: {
|
|
17
|
+
limit?: number;
|
|
18
|
+
starting_after?: string;
|
|
19
|
+
}): Promise<PaginatedResponse<PlatformInvoice>>;
|
|
20
|
+
/**
|
|
21
|
+
* Short-lived signed URL for a platform-invoice PDF. The URL expires
|
|
22
|
+
* within minutes — fetch it just-in-time when the user clicks
|
|
23
|
+
* "Download", do not store it.
|
|
24
|
+
*/
|
|
25
|
+
getInvoicePdf(invoiceId: string): Promise<{
|
|
26
|
+
object: 'file_url';
|
|
27
|
+
url: string;
|
|
28
|
+
expires_in: number;
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=billing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../../src/resources/billing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EAChB,MAAM,aAAa,CAAA;AAapB;;;;;;GAMG;AACH,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,mDAAmD;IAC7C,oBAAoB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI1D,sFAAsF;IAChF,YAAY,CAAC,MAAM,CAAC,EAAE;QAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,cAAc,CAAC,EAAE,MAAM,CAAA;KACxB,GAAG,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAK/C;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAGzG"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Encode a flat object as a `?k=v&…` query string (skips undefined/null). */
|
|
2
|
+
function buildQuery(params) {
|
|
3
|
+
const entries = [];
|
|
4
|
+
for (const [k, v] of Object.entries(params)) {
|
|
5
|
+
if (v === undefined || v === null)
|
|
6
|
+
continue;
|
|
7
|
+
entries.push([k, String(v)]);
|
|
8
|
+
}
|
|
9
|
+
if (entries.length === 0)
|
|
10
|
+
return '';
|
|
11
|
+
return `?${new URLSearchParams(entries).toString()}`;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Billing — read-only access to the current subscription and the
|
|
15
|
+
* Facturino → user platform-invoice history.
|
|
16
|
+
*
|
|
17
|
+
* Plan changes, checkout and the Stripe Customer Portal are handled
|
|
18
|
+
* through the Facturino dashboard, not the API.
|
|
19
|
+
*/
|
|
20
|
+
export class Billing {
|
|
21
|
+
constructor(client) {
|
|
22
|
+
this.client = client;
|
|
23
|
+
}
|
|
24
|
+
/** Current subscription (plan, status, period). */
|
|
25
|
+
async retrieveSubscription() {
|
|
26
|
+
return this.client.get('/v1/billing/subscription');
|
|
27
|
+
}
|
|
28
|
+
/** Paginated list of platform invoices (Facturino → user) for the current account. */
|
|
29
|
+
async listInvoices(params) {
|
|
30
|
+
const qs = params ? buildQuery(params) : '';
|
|
31
|
+
return this.client.get(`/v1/billing/invoices${qs}`);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Short-lived signed URL for a platform-invoice PDF. The URL expires
|
|
35
|
+
* within minutes — fetch it just-in-time when the user clicks
|
|
36
|
+
* "Download", do not store it.
|
|
37
|
+
*/
|
|
38
|
+
async getInvoicePdf(invoiceId) {
|
|
39
|
+
return this.client.get(`/v1/billing/invoices/${invoiceId}/pdf`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=billing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../src/resources/billing.ts"],"names":[],"mappings":"AAOA,8EAA8E;AAC9E,SAAS,UAAU,CAAC,MAA+B;IACjD,MAAM,OAAO,GAAuB,EAAE,CAAA;IACtC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;YAAE,SAAQ;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9B,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACnC,OAAO,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAA;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,OAAO;IAClB,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD,mDAAmD;IACnD,KAAK,CAAC,oBAAoB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAsB,0BAA0B,CAAC,CAAA;IACzE,CAAC;IAED,sFAAsF;IACtF,KAAK,CAAC,YAAY,CAAC,MAGlB;QACC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAqC,uBAAuB,EAAE,EAAE,CAAC,CAAA;IACzF,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,SAAS,MAAM,CAAC,CAAA;IACjE,CAAC;CACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { HttpClient } from '../client.js';
|
|
2
|
+
import type { Address, BankDetails, Company, CompanyUpdateParams, CgvResponse, LegalFormInput, NafCodeInput, PaginatedResponse, RequestOptions } from '../types.js';
|
|
3
|
+
/** Body for `POST /v1/companies` — create a new company under the authenticated user. */
|
|
4
|
+
export interface CompanyCreateParams {
|
|
5
|
+
name: string;
|
|
6
|
+
siret: string;
|
|
7
|
+
address: Address;
|
|
8
|
+
vatNumber?: string;
|
|
9
|
+
legalForm?: LegalFormInput;
|
|
10
|
+
naf?: NafCodeInput;
|
|
11
|
+
tvaIntracom?: string;
|
|
12
|
+
rcs?: string;
|
|
13
|
+
capitalSocial?: string;
|
|
14
|
+
vatRegime?: 'normal' | 'franchise' | 'simplified' | 'debit';
|
|
15
|
+
email?: string;
|
|
16
|
+
phone?: string;
|
|
17
|
+
website?: string;
|
|
18
|
+
bankDetails?: BankDetails;
|
|
19
|
+
}
|
|
20
|
+
/** Company profile and settings — legal information, bank details, and CGV documents. */
|
|
21
|
+
export declare class Companies {
|
|
22
|
+
private readonly client;
|
|
23
|
+
constructor(client: HttpClient);
|
|
24
|
+
list(): Promise<PaginatedResponse<Company>>;
|
|
25
|
+
/**
|
|
26
|
+
* Create a new company under the authenticated user. Subject to the
|
|
27
|
+
* per-plan company quota (free: 1, essential: 1, pro: 3, cabinet_*: 50+);
|
|
28
|
+
* exceeding the quota returns a `402 plan_limit_error`.
|
|
29
|
+
*/
|
|
30
|
+
create(params: CompanyCreateParams, options?: RequestOptions): Promise<Company>;
|
|
31
|
+
get(id: string): Promise<Company>;
|
|
32
|
+
update(id: string, params: CompanyUpdateParams): Promise<Company>;
|
|
33
|
+
/**
|
|
34
|
+
* Mark an onboarding milestone as reached (e.g. `first_invoice_sent`,
|
|
35
|
+
* `pa_connected`, `bank_added`). Used by the dashboard to compute the
|
|
36
|
+
* onboarding progress and surface remaining steps.
|
|
37
|
+
*/
|
|
38
|
+
addMilestone(id: string, milestone: string): Promise<{
|
|
39
|
+
object: 'company_milestone';
|
|
40
|
+
milestone: string;
|
|
41
|
+
reachedAt: string;
|
|
42
|
+
}>;
|
|
43
|
+
/** Base64-encoded PDF, max 5 MB. */
|
|
44
|
+
uploadCgv(companyId: string, content: string, options?: RequestOptions): Promise<CgvResponse>;
|
|
45
|
+
getCgv(companyId: string): Promise<CgvResponse>;
|
|
46
|
+
deleteCgv(companyId: string): Promise<CgvResponse>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=companies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"companies.d.ts","sourceRoot":"","sources":["../../../src/resources/companies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,OAAO,EACP,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACf,MAAM,aAAa,CAAA;AAEpB,yFAAyF;AACzF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,cAAc,CAAA;IAC1B,GAAG,CAAC,EAAE,YAAY,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,CAAA;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,yFAAyF;AACzF,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEzC,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAIjD;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/E,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE;;;;OAIG;IACG,YAAY,CAChB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,MAAM,EAAE,mBAAmB,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAIjF,oCAAoC;IAC9B,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAI7F,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/C,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAGzD"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Company profile and settings — legal information, bank details, and CGV documents. */
|
|
2
|
+
export class Companies {
|
|
3
|
+
constructor(client) {
|
|
4
|
+
this.client = client;
|
|
5
|
+
}
|
|
6
|
+
async list() {
|
|
7
|
+
return this.client.get('/v1/companies');
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Create a new company under the authenticated user. Subject to the
|
|
11
|
+
* per-plan company quota (free: 1, essential: 1, pro: 3, cabinet_*: 50+);
|
|
12
|
+
* exceeding the quota returns a `402 plan_limit_error`.
|
|
13
|
+
*/
|
|
14
|
+
async create(params, options) {
|
|
15
|
+
return this.client.post('/v1/companies', params, options);
|
|
16
|
+
}
|
|
17
|
+
async get(id) {
|
|
18
|
+
return this.client.get(`/v1/companies/${id}`);
|
|
19
|
+
}
|
|
20
|
+
async update(id, params) {
|
|
21
|
+
return this.client.patch(`/v1/companies/${id}`, params);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Mark an onboarding milestone as reached (e.g. `first_invoice_sent`,
|
|
25
|
+
* `pa_connected`, `bank_added`). Used by the dashboard to compute the
|
|
26
|
+
* onboarding progress and surface remaining steps.
|
|
27
|
+
*/
|
|
28
|
+
async addMilestone(id, milestone) {
|
|
29
|
+
return this.client.post(`/v1/companies/${id}/milestones`, { milestone });
|
|
30
|
+
}
|
|
31
|
+
/** Base64-encoded PDF, max 5 MB. */
|
|
32
|
+
async uploadCgv(companyId, content, options) {
|
|
33
|
+
return this.client.post(`/v1/companies/${companyId}/cgv`, { content }, options);
|
|
34
|
+
}
|
|
35
|
+
async getCgv(companyId) {
|
|
36
|
+
return this.client.get(`/v1/companies/${companyId}/cgv`);
|
|
37
|
+
}
|
|
38
|
+
async deleteCgv(companyId) {
|
|
39
|
+
return this.client.del(`/v1/companies/${companyId}/cgv`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=companies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"companies.js","sourceRoot":"","sources":["../../../src/resources/companies.ts"],"names":[],"mappings":"AA+BA,yFAAyF;AACzF,MAAM,OAAO,SAAS;IACpB,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAA6B,eAAe,CAAC,CAAA;IACrE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,MAA2B,EAAE,OAAwB;QAChE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAU,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAU,iBAAiB,EAAE,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAA2B;QAClD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAU,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IAClE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAChB,EAAU,EACV,SAAiB;QAEjB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,OAAe,EAAE,OAAwB;QAC1E,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAc,iBAAiB,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;IAC9F,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAc,iBAAiB,SAAS,MAAM,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAc,iBAAiB,SAAS,MAAM,CAAC,CAAA;IACvE,CAAC;CACF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { HttpClient } from '../client.js';
|
|
2
|
+
import { AutoPaginatingList } from '../pagination.js';
|
|
3
|
+
import type { CreditNote, CreditNoteCreateParams, CreditNoteUpdateParams, CreditNoteListParams, DocumentUrlResponse, JobResponse, PaymentMethod, RequestOptions } from '../types.js';
|
|
4
|
+
/** Credit note operations — the legal way to correct or cancel a finalized invoice. */
|
|
5
|
+
export declare class CreditNotes {
|
|
6
|
+
private readonly client;
|
|
7
|
+
constructor(client: HttpClient);
|
|
8
|
+
create(params: CreditNoteCreateParams, options?: RequestOptions): Promise<CreditNote>;
|
|
9
|
+
list(params?: CreditNoteListParams): AutoPaginatingList<CreditNote>;
|
|
10
|
+
get(id: string): Promise<CreditNote>;
|
|
11
|
+
update(id: string, params: CreditNoteUpdateParams): Promise<CreditNote>;
|
|
12
|
+
del(id: string): Promise<void>;
|
|
13
|
+
/** Assign number and lock. Irreversible. */
|
|
14
|
+
finalize(id: string, options?: RequestOptions): Promise<CreditNote>;
|
|
15
|
+
/** Submit to PA. */
|
|
16
|
+
send(id: string, options?: RequestOptions): Promise<{
|
|
17
|
+
id: string;
|
|
18
|
+
object: 'credit_note';
|
|
19
|
+
status: string;
|
|
20
|
+
}>;
|
|
21
|
+
/**
|
|
22
|
+
* Send the credit note to its customer by email with the PDF (and optional
|
|
23
|
+
* Factur-X XML) attached. Returns `{status: 'sent'}` on success or
|
|
24
|
+
* `{status: 'pending'}` if the PDF is still being generated.
|
|
25
|
+
*/
|
|
26
|
+
email(id: string, params?: {
|
|
27
|
+
recipientEmail?: string;
|
|
28
|
+
customMessage?: string;
|
|
29
|
+
includeXml?: boolean;
|
|
30
|
+
customSubject?: string;
|
|
31
|
+
}, options?: RequestOptions): Promise<{
|
|
32
|
+
status: 'sent';
|
|
33
|
+
creditNoteId: string;
|
|
34
|
+
recipient: string;
|
|
35
|
+
sentAt: string;
|
|
36
|
+
} | {
|
|
37
|
+
status: 'pending';
|
|
38
|
+
creditNoteId: string;
|
|
39
|
+
jobId: string;
|
|
40
|
+
pollUrl: string;
|
|
41
|
+
reason: string;
|
|
42
|
+
}>;
|
|
43
|
+
/**
|
|
44
|
+
* Record the disbursement of a finalized credit note back to the customer.
|
|
45
|
+
* Writes a negative `refund` payment on the linked invoice (mirrors the app).
|
|
46
|
+
* `amount` is in integer centimes and defaults to the full credit-note total.
|
|
47
|
+
*/
|
|
48
|
+
refund(id: string, params?: {
|
|
49
|
+
amount?: number;
|
|
50
|
+
method?: PaymentMethod;
|
|
51
|
+
refundedAt?: string;
|
|
52
|
+
}, options?: RequestOptions): Promise<{
|
|
53
|
+
id: string;
|
|
54
|
+
object: 'refund';
|
|
55
|
+
creditNoteId: string;
|
|
56
|
+
invoiceId: string;
|
|
57
|
+
amount: number;
|
|
58
|
+
}>;
|
|
59
|
+
getPdf(id: string): Promise<DocumentUrlResponse | JobResponse>;
|
|
60
|
+
/** Factur-X PDF/A-3 with embedded XML. URL or async job. */
|
|
61
|
+
getFacturx(id: string): Promise<DocumentUrlResponse | JobResponse>;
|
|
62
|
+
/** Raw CII or UBL XML. */
|
|
63
|
+
getXml(id: string, format?: 'cii' | 'ubl'): Promise<string>;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=creditNotes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creditNotes.d.ts","sourceRoot":"","sources":["../../../src/resources/creditNotes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EACV,UAAU,EACV,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAA;AAEpB,uFAAuF;AACvF,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEzC,MAAM,CAAC,MAAM,EAAE,sBAAsB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAI3F,IAAI,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,kBAAkB,CAAC,UAAU,CAAC;IAI7D,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAIpC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIvE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC,4CAA4C;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAIzE,oBAAoB;IACd,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAIhH;;;;OAIG;IACG,KAAK,CACT,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE;QACP,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,aAAa,CAAC,EAAE,MAAM,CAAA;KACvB,EACD,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CACN;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAC3E;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAC9F;IAID;;;;OAIG;IACG,MAAM,CACV,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,aAAa,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,EACzE,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAI/F,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,WAAW,CAAC;IAIpE,4DAA4D;IACtD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,WAAW,CAAC;IAIxE,0BAA0B;IACpB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;CAIlE"}
|