@pronesoft-rd/ecf-sdk 0.0.1

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.
Files changed (291) hide show
  1. package/.openapi-generator/FILES +96 -0
  2. package/.openapi-generator/VERSION +1 -0
  3. package/.openapi-generator-ignore +23 -0
  4. package/README.md +234 -0
  5. package/dist/apis/AssociatedCompaniesApi.d.ts +150 -0
  6. package/dist/apis/AssociatedCompaniesApi.js +229 -0
  7. package/dist/apis/AuthenticationApi.d.ts +64 -0
  8. package/dist/apis/AuthenticationApi.js +75 -0
  9. package/dist/apis/DigitalCertificatesApi.d.ts +70 -0
  10. package/dist/apis/DigitalCertificatesApi.js +113 -0
  11. package/dist/apis/ECFSubmissionApi.d.ts +70 -0
  12. package/dist/apis/ECFSubmissionApi.js +96 -0
  13. package/dist/apis/TaxSequencesApi.d.ts +152 -0
  14. package/dist/apis/TaxSequencesApi.js +214 -0
  15. package/dist/apis/WebhookConfigurationApi.d.ts +146 -0
  16. package/dist/apis/WebhookConfigurationApi.js +197 -0
  17. package/dist/apis/index.d.ts +6 -0
  18. package/dist/apis/index.js +24 -0
  19. package/dist/esm/apis/AssociatedCompaniesApi.d.ts +150 -0
  20. package/dist/esm/apis/AssociatedCompaniesApi.js +225 -0
  21. package/dist/esm/apis/AuthenticationApi.d.ts +64 -0
  22. package/dist/esm/apis/AuthenticationApi.js +71 -0
  23. package/dist/esm/apis/DigitalCertificatesApi.d.ts +70 -0
  24. package/dist/esm/apis/DigitalCertificatesApi.js +109 -0
  25. package/dist/esm/apis/ECFSubmissionApi.d.ts +70 -0
  26. package/dist/esm/apis/ECFSubmissionApi.js +92 -0
  27. package/dist/esm/apis/TaxSequencesApi.d.ts +152 -0
  28. package/dist/esm/apis/TaxSequencesApi.js +210 -0
  29. package/dist/esm/apis/WebhookConfigurationApi.d.ts +146 -0
  30. package/dist/esm/apis/WebhookConfigurationApi.js +193 -0
  31. package/dist/esm/apis/index.d.ts +6 -0
  32. package/dist/esm/apis/index.js +8 -0
  33. package/dist/esm/index.d.ts +3 -0
  34. package/dist/esm/index.js +5 -0
  35. package/dist/esm/models/AccountType.d.ts +30 -0
  36. package/dist/esm/models/AccountType.js +48 -0
  37. package/dist/esm/models/AdditionalInfo.d.ts +50 -0
  38. package/dist/esm/models/AdditionalInfo.js +47 -0
  39. package/dist/esm/models/AlternativeCurrency.d.ts +46 -0
  40. package/dist/esm/models/AlternativeCurrency.js +49 -0
  41. package/dist/esm/models/AssociatedCompany.d.ts +125 -0
  42. package/dist/esm/models/AssociatedCompany.js +77 -0
  43. package/dist/esm/models/AssociatedCompanySubscription.d.ts +45 -0
  44. package/dist/esm/models/AssociatedCompanySubscription.js +46 -0
  45. package/dist/esm/models/AssociatedCompanySubscriptionPlan.d.ts +38 -0
  46. package/dist/esm/models/AssociatedCompanySubscriptionPlan.js +43 -0
  47. package/dist/esm/models/BillingIndicator.d.ts +34 -0
  48. package/dist/esm/models/BillingIndicator.js +52 -0
  49. package/dist/esm/models/Buyer.d.ts +68 -0
  50. package/dist/esm/models/Buyer.js +55 -0
  51. package/dist/esm/models/CreateAssociatedCompany201Response.d.ts +39 -0
  52. package/dist/esm/models/CreateAssociatedCompany201Response.js +44 -0
  53. package/dist/esm/models/CreateTaxSequenceRequest.d.ts +47 -0
  54. package/dist/esm/models/CreateTaxSequenceRequest.js +52 -0
  55. package/dist/esm/models/CreateWebhookConfig.d.ts +53 -0
  56. package/dist/esm/models/CreateWebhookConfig.js +52 -0
  57. package/dist/esm/models/DiscountOrSurcharge.d.ts +93 -0
  58. package/dist/esm/models/DiscountOrSurcharge.js +78 -0
  59. package/dist/esm/models/EcfSubmissionResponse.d.ts +56 -0
  60. package/dist/esm/models/EcfSubmissionResponse.js +53 -0
  61. package/dist/esm/models/ElectronicDocument.d.ts +252 -0
  62. package/dist/esm/models/ElectronicDocument.js +143 -0
  63. package/dist/esm/models/Environment.d.ts +30 -0
  64. package/dist/esm/models/Environment.js +48 -0
  65. package/dist/esm/models/ErrorResponse.d.ts +44 -0
  66. package/dist/esm/models/ErrorResponse.js +45 -0
  67. package/dist/esm/models/GetNextNumber200Response.d.ts +39 -0
  68. package/dist/esm/models/GetNextNumber200Response.js +44 -0
  69. package/dist/esm/models/GetNextNumber200ResponseData.d.ts +38 -0
  70. package/dist/esm/models/GetNextNumber200ResponseData.js +43 -0
  71. package/dist/esm/models/InvoiceType.d.ts +44 -0
  72. package/dist/esm/models/InvoiceType.js +62 -0
  73. package/dist/esm/models/Item.d.ts +106 -0
  74. package/dist/esm/models/Item.js +83 -0
  75. package/dist/esm/models/ItemAdditionalTax.d.ts +38 -0
  76. package/dist/esm/models/ItemAdditionalTax.js +47 -0
  77. package/dist/esm/models/ListTaxSequences200Response.d.ts +39 -0
  78. package/dist/esm/models/ListTaxSequences200Response.js +44 -0
  79. package/dist/esm/models/OAuthTokenRequest.d.ts +43 -0
  80. package/dist/esm/models/OAuthTokenRequest.js +47 -0
  81. package/dist/esm/models/OAuthTokenResponse.d.ts +46 -0
  82. package/dist/esm/models/OAuthTokenResponse.js +45 -0
  83. package/dist/esm/models/Page.d.ts +116 -0
  84. package/dist/esm/models/Page.js +75 -0
  85. package/dist/esm/models/PaymentMethod.d.ts +40 -0
  86. package/dist/esm/models/PaymentMethod.js +58 -0
  87. package/dist/esm/models/PrintFormat.d.ts +30 -0
  88. package/dist/esm/models/PrintFormat.js +48 -0
  89. package/dist/esm/models/ReferenceInfo.d.ts +76 -0
  90. package/dist/esm/models/ReferenceInfo.js +63 -0
  91. package/dist/esm/models/Subquantity.d.ts +38 -0
  92. package/dist/esm/models/Subquantity.js +47 -0
  93. package/dist/esm/models/Subtotal.d.ts +110 -0
  94. package/dist/esm/models/Subtotal.js +71 -0
  95. package/dist/esm/models/TaxSequence.d.ts +45 -0
  96. package/dist/esm/models/TaxSequence.js +46 -0
  97. package/dist/esm/models/Totals.d.ts +173 -0
  98. package/dist/esm/models/Totals.js +90 -0
  99. package/dist/esm/models/Transport.d.ts +62 -0
  100. package/dist/esm/models/Transport.js +51 -0
  101. package/dist/esm/models/UploadCertificate201Response.d.ts +44 -0
  102. package/dist/esm/models/UploadCertificate201Response.js +45 -0
  103. package/dist/esm/models/UploadCertificateResponse.d.ts +44 -0
  104. package/dist/esm/models/UploadCertificateResponse.js +45 -0
  105. package/dist/esm/models/WebhookConfigResponse.d.ts +63 -0
  106. package/dist/esm/models/WebhookConfigResponse.js +52 -0
  107. package/dist/esm/models/WebhookEventType.d.ts +40 -0
  108. package/dist/esm/models/WebhookEventType.js +58 -0
  109. package/dist/esm/models/WebhookNotificationPayload.d.ts +59 -0
  110. package/dist/esm/models/WebhookNotificationPayload.js +60 -0
  111. package/dist/esm/models/index.d.ts +37 -0
  112. package/dist/esm/models/index.js +39 -0
  113. package/dist/esm/runtime.d.ts +184 -0
  114. package/dist/esm/runtime.js +349 -0
  115. package/dist/index.d.ts +3 -0
  116. package/dist/index.js +21 -0
  117. package/dist/models/AccountType.d.ts +30 -0
  118. package/dist/models/AccountType.js +56 -0
  119. package/dist/models/AdditionalInfo.d.ts +50 -0
  120. package/dist/models/AdditionalInfo.js +54 -0
  121. package/dist/models/AlternativeCurrency.d.ts +46 -0
  122. package/dist/models/AlternativeCurrency.js +56 -0
  123. package/dist/models/AssociatedCompany.d.ts +125 -0
  124. package/dist/models/AssociatedCompany.js +85 -0
  125. package/dist/models/AssociatedCompanySubscription.d.ts +45 -0
  126. package/dist/models/AssociatedCompanySubscription.js +53 -0
  127. package/dist/models/AssociatedCompanySubscriptionPlan.d.ts +38 -0
  128. package/dist/models/AssociatedCompanySubscriptionPlan.js +50 -0
  129. package/dist/models/BillingIndicator.d.ts +34 -0
  130. package/dist/models/BillingIndicator.js +60 -0
  131. package/dist/models/Buyer.d.ts +68 -0
  132. package/dist/models/Buyer.js +62 -0
  133. package/dist/models/CreateAssociatedCompany201Response.d.ts +39 -0
  134. package/dist/models/CreateAssociatedCompany201Response.js +51 -0
  135. package/dist/models/CreateTaxSequenceRequest.d.ts +47 -0
  136. package/dist/models/CreateTaxSequenceRequest.js +59 -0
  137. package/dist/models/CreateWebhookConfig.d.ts +53 -0
  138. package/dist/models/CreateWebhookConfig.js +59 -0
  139. package/dist/models/DiscountOrSurcharge.d.ts +93 -0
  140. package/dist/models/DiscountOrSurcharge.js +86 -0
  141. package/dist/models/EcfSubmissionResponse.d.ts +56 -0
  142. package/dist/models/EcfSubmissionResponse.js +60 -0
  143. package/dist/models/ElectronicDocument.d.ts +252 -0
  144. package/dist/models/ElectronicDocument.js +151 -0
  145. package/dist/models/Environment.d.ts +30 -0
  146. package/dist/models/Environment.js +56 -0
  147. package/dist/models/ErrorResponse.d.ts +44 -0
  148. package/dist/models/ErrorResponse.js +52 -0
  149. package/dist/models/GetNextNumber200Response.d.ts +39 -0
  150. package/dist/models/GetNextNumber200Response.js +51 -0
  151. package/dist/models/GetNextNumber200ResponseData.d.ts +38 -0
  152. package/dist/models/GetNextNumber200ResponseData.js +50 -0
  153. package/dist/models/InvoiceType.d.ts +44 -0
  154. package/dist/models/InvoiceType.js +70 -0
  155. package/dist/models/Item.d.ts +106 -0
  156. package/dist/models/Item.js +91 -0
  157. package/dist/models/ItemAdditionalTax.d.ts +38 -0
  158. package/dist/models/ItemAdditionalTax.js +54 -0
  159. package/dist/models/ListTaxSequences200Response.d.ts +39 -0
  160. package/dist/models/ListTaxSequences200Response.js +51 -0
  161. package/dist/models/OAuthTokenRequest.d.ts +43 -0
  162. package/dist/models/OAuthTokenRequest.js +54 -0
  163. package/dist/models/OAuthTokenResponse.d.ts +46 -0
  164. package/dist/models/OAuthTokenResponse.js +52 -0
  165. package/dist/models/Page.d.ts +116 -0
  166. package/dist/models/Page.js +82 -0
  167. package/dist/models/PaymentMethod.d.ts +40 -0
  168. package/dist/models/PaymentMethod.js +66 -0
  169. package/dist/models/PrintFormat.d.ts +30 -0
  170. package/dist/models/PrintFormat.js +56 -0
  171. package/dist/models/ReferenceInfo.d.ts +76 -0
  172. package/dist/models/ReferenceInfo.js +71 -0
  173. package/dist/models/Subquantity.d.ts +38 -0
  174. package/dist/models/Subquantity.js +54 -0
  175. package/dist/models/Subtotal.d.ts +110 -0
  176. package/dist/models/Subtotal.js +78 -0
  177. package/dist/models/TaxSequence.d.ts +45 -0
  178. package/dist/models/TaxSequence.js +53 -0
  179. package/dist/models/Totals.d.ts +173 -0
  180. package/dist/models/Totals.js +97 -0
  181. package/dist/models/Transport.d.ts +62 -0
  182. package/dist/models/Transport.js +58 -0
  183. package/dist/models/UploadCertificate201Response.d.ts +44 -0
  184. package/dist/models/UploadCertificate201Response.js +52 -0
  185. package/dist/models/UploadCertificateResponse.d.ts +44 -0
  186. package/dist/models/UploadCertificateResponse.js +52 -0
  187. package/dist/models/WebhookConfigResponse.d.ts +63 -0
  188. package/dist/models/WebhookConfigResponse.js +59 -0
  189. package/dist/models/WebhookEventType.d.ts +40 -0
  190. package/dist/models/WebhookEventType.js +66 -0
  191. package/dist/models/WebhookNotificationPayload.d.ts +59 -0
  192. package/dist/models/WebhookNotificationPayload.js +67 -0
  193. package/dist/models/index.d.ts +37 -0
  194. package/dist/models/index.js +55 -0
  195. package/dist/runtime.d.ts +184 -0
  196. package/dist/runtime.js +365 -0
  197. package/docs/AccountType.md +33 -0
  198. package/docs/AdditionalInfo.md +41 -0
  199. package/docs/AlternativeCurrency.md +39 -0
  200. package/docs/AssociatedCompaniesApi.md +207 -0
  201. package/docs/AssociatedCompany.md +63 -0
  202. package/docs/AssociatedCompanySubscription.md +38 -0
  203. package/docs/AssociatedCompanySubscriptionPlan.md +36 -0
  204. package/docs/AuthenticationApi.md +77 -0
  205. package/docs/BillingIndicator.md +33 -0
  206. package/docs/Buyer.md +47 -0
  207. package/docs/CreateAssociatedCompany201Response.md +36 -0
  208. package/docs/CreateTaxSequenceRequest.md +39 -0
  209. package/docs/CreateWebhookConfig.md +41 -0
  210. package/docs/DigitalCertificatesApi.md +90 -0
  211. package/docs/DiscountOrSurcharge.md +49 -0
  212. package/docs/ECFSubmissionApi.md +90 -0
  213. package/docs/EcfSubmissionResponse.md +43 -0
  214. package/docs/ElectronicDocument.md +87 -0
  215. package/docs/Environment.md +33 -0
  216. package/docs/ErrorResponse.md +39 -0
  217. package/docs/GetNextNumber200Response.md +36 -0
  218. package/docs/GetNextNumber200ResponseData.md +36 -0
  219. package/docs/InvoiceType.md +33 -0
  220. package/docs/Item.md +55 -0
  221. package/docs/ItemAdditionalTax.md +37 -0
  222. package/docs/ListTaxSequences200Response.md +36 -0
  223. package/docs/OAuthTokenRequest.md +37 -0
  224. package/docs/OAuthTokenResponse.md +39 -0
  225. package/docs/Page.md +63 -0
  226. package/docs/PaymentMethod.md +33 -0
  227. package/docs/PrintFormat.md +33 -0
  228. package/docs/ReferenceInfo.md +43 -0
  229. package/docs/Subquantity.md +37 -0
  230. package/docs/Subtotal.md +61 -0
  231. package/docs/TaxSequence.md +39 -0
  232. package/docs/TaxSequencesApi.md +246 -0
  233. package/docs/Totals.md +81 -0
  234. package/docs/Transport.md +45 -0
  235. package/docs/UploadCertificate201Response.md +38 -0
  236. package/docs/UploadCertificateResponse.md +39 -0
  237. package/docs/WebhookConfigResponse.md +45 -0
  238. package/docs/WebhookConfigurationApi.md +241 -0
  239. package/docs/WebhookEventType.md +33 -0
  240. package/docs/WebhookNotificationPayload.md +43 -0
  241. package/package.json +21 -0
  242. package/src/apis/AssociatedCompaniesApi.ts +415 -0
  243. package/src/apis/AuthenticationApi.ts +122 -0
  244. package/src/apis/DigitalCertificatesApi.ts +175 -0
  245. package/src/apis/ECFSubmissionApi.ts +163 -0
  246. package/src/apis/TaxSequencesApi.ts +374 -0
  247. package/src/apis/WebhookConfigurationApi.ts +332 -0
  248. package/src/apis/index.ts +8 -0
  249. package/src/index.ts +5 -0
  250. package/src/models/AccountType.ts +58 -0
  251. package/src/models/AdditionalInfo.ts +89 -0
  252. package/src/models/AlternativeCurrency.ts +85 -0
  253. package/src/models/AssociatedCompany.ts +196 -0
  254. package/src/models/AssociatedCompanySubscription.ts +89 -0
  255. package/src/models/AssociatedCompanySubscriptionPlan.ts +73 -0
  256. package/src/models/BillingIndicator.ts +62 -0
  257. package/src/models/Buyer.ts +114 -0
  258. package/src/models/CreateAssociatedCompany201Response.ts +81 -0
  259. package/src/models/CreateTaxSequenceRequest.ts +96 -0
  260. package/src/models/CreateWebhookConfig.ts +101 -0
  261. package/src/models/DiscountOrSurcharge.ts +155 -0
  262. package/src/models/EcfSubmissionResponse.ts +99 -0
  263. package/src/models/ElectronicDocument.ts +421 -0
  264. package/src/models/Environment.ts +58 -0
  265. package/src/models/ErrorResponse.ts +81 -0
  266. package/src/models/GetNextNumber200Response.ts +81 -0
  267. package/src/models/GetNextNumber200ResponseData.ts +73 -0
  268. package/src/models/InvoiceType.ts +72 -0
  269. package/src/models/Item.ts +187 -0
  270. package/src/models/ItemAdditionalTax.ts +75 -0
  271. package/src/models/ListTaxSequences200Response.ts +81 -0
  272. package/src/models/OAuthTokenRequest.ts +80 -0
  273. package/src/models/OAuthTokenResponse.ts +83 -0
  274. package/src/models/Page.ts +180 -0
  275. package/src/models/PaymentMethod.ts +68 -0
  276. package/src/models/PrintFormat.ts +58 -0
  277. package/src/models/ReferenceInfo.ts +122 -0
  278. package/src/models/Subquantity.ts +75 -0
  279. package/src/models/Subtotal.ts +171 -0
  280. package/src/models/TaxSequence.ts +91 -0
  281. package/src/models/Totals.ts +260 -0
  282. package/src/models/Transport.ts +105 -0
  283. package/src/models/UploadCertificate201Response.ts +81 -0
  284. package/src/models/UploadCertificateResponse.ts +81 -0
  285. package/src/models/WebhookConfigResponse.ts +113 -0
  286. package/src/models/WebhookEventType.ts +68 -0
  287. package/src/models/WebhookNotificationPayload.ts +114 -0
  288. package/src/models/index.ts +39 -0
  289. package/src/runtime.ts +450 -0
  290. package/tsconfig.esm.json +7 -0
  291. package/tsconfig.json +16 -0
@@ -0,0 +1,171 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * eCF-Pronesoft Integration API
5
+ * ## Overview Production-grade API for issuing Electronic Tax Receipts (e-CF) in the Dominican Republic through the Pronesoft platform, which handles all communication with the DGII on your behalf. ## Authentication — OAuth 2.0 Client Credentials This API uses the **OAuth 2.0 Client Credentials** flow. There is no user login — authentication is machine-to-machine using a `clientId` and `clientSecret` issued by the Pronesoft portal. ### Step-by-step 1. **Get credentials**: - Sandbox: https://ecf.sandbox.pronesoft.com - Production: https://ecf.pronesoft.com 2. **Request a token** — call `POST /oauth/token` with your credentials. The server returns an `accessToken` valid for `expiresIn` seconds. 3. **Authorize requests** — include the token in every subsequent request: ``` Authorization: Bearer <accessToken> ``` 4. **Identify your tenant** — include your company/branch UUID in every protected request: ``` x-tenant-id: <your-tenant-uuid> ``` 5. **Refresh** — when the token expires, simply call `POST /oauth/token` again. ### Scopes | Category | Scope | Description | |---|---|---| | **Business** | `business:read` | Read company data | | | `business:create` | Create a new company | | | `business:update` | Update company data | | **Members** | `members:read` | View team members | | | `members:invite` | Invite new members | | | `members:revoke` | Revoke member access | | **Certificates** | `certificates:read` | View digital certificates | | | `certificates:upload` | Upload new certificates | | | `certificates:update` | Update existing certificates | | **Documents** | `documents:read` | List and view documents | | | `documents:create` | Create drafts or internal documents | | | `documents:send` | Submit e-CF to DGII | | | `documents:receive` | Receive e-CF from third parties | | | `documents:update` | Modify document metadata | | **Approvals** | `approvals:read` | View approval statuses | | | `approvals:commercial` | Perform commercial approvals/rejections | | **Sequences** | `sequences:read` | View NCF/e-NCF ranges | | | `sequences:create` | Request new sequences | | | `sequences:update` | Modify sequence configurations | | | `sequences:cancel` | Cancel unused sequences | | **Dashboard** | `business_info:read` | Access dashboard stats and metrics | | **Certification** | `certification:read` | View certification progress | | | `certification:write` | Run automated DGII certification tests | | **Reports** | `reports:read` | Generate and export reports (e.g. 606) | ## Environments | Environment | Portal | API Host | Purpose | |---|---|---|---| | Sandbox | https://ecf.sandbox.pronesoft.com | `api.ecf.sandbox.pronesoft.com` | Development & testing | | Production | https://ecf.pronesoft.com | `api.ecf.pronesoft.com` | Live e-CF issuance | ## Invoice Types (e-NCF) | Code | Name | |---|---| | `31` | Tax Credit Invoice (Factura de Crédito Fiscal) | | `32` | Consumer Invoice (Factura de Consumo) | | `33` | Debit Note (Nota de Débito) | | `34` | Credit Note (Nota de Crédito) | | `41` | Purchases (Compras) | | `43` | Minor Expenses (Gastos Menores) | | `44` | Special Regimes (Regímenes Especiales) | | `45` | Governmental (Gubernamentales) | | `46` | Exports (Exportaciones) | | `47` | Overseas Payments (Pagos al Exterior) |
6
+ *
7
+ * The version of the OpenAPI document: 0.0.1
8
+ * Contact: contacto@pronesoft.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ /**
17
+ * Subtotal for a page or section within a multi-page document.
18
+ * @export
19
+ * @interface Subtotal
20
+ */
21
+ export interface Subtotal {
22
+ /**
23
+ * Page or section number.
24
+ * @type {number}
25
+ * @memberof Subtotal
26
+ */
27
+ number: number;
28
+ /**
29
+ * Subtotal amount for this section.
30
+ * @type {number}
31
+ * @memberof Subtotal
32
+ */
33
+ amount: number;
34
+ /**
35
+ *
36
+ * @type {string}
37
+ * @memberof Subtotal
38
+ */
39
+ description?: string;
40
+ /**
41
+ *
42
+ * @type {number}
43
+ * @memberof Subtotal
44
+ */
45
+ taxableAmount?: number;
46
+ /**
47
+ *
48
+ * @type {number}
49
+ * @memberof Subtotal
50
+ */
51
+ taxableAmount1?: number;
52
+ /**
53
+ *
54
+ * @type {number}
55
+ * @memberof Subtotal
56
+ */
57
+ taxableAmount2?: number;
58
+ /**
59
+ *
60
+ * @type {number}
61
+ * @memberof Subtotal
62
+ */
63
+ taxableAmount3?: number;
64
+ /**
65
+ *
66
+ * @type {number}
67
+ * @memberof Subtotal
68
+ */
69
+ totalITBIS?: number;
70
+ /**
71
+ *
72
+ * @type {number}
73
+ * @memberof Subtotal
74
+ */
75
+ itbis1?: number;
76
+ /**
77
+ *
78
+ * @type {number}
79
+ * @memberof Subtotal
80
+ */
81
+ itbis2?: number;
82
+ /**
83
+ *
84
+ * @type {number}
85
+ * @memberof Subtotal
86
+ */
87
+ itbis3?: number;
88
+ /**
89
+ *
90
+ * @type {number}
91
+ * @memberof Subtotal
92
+ */
93
+ additionalTaxes?: number;
94
+ /**
95
+ *
96
+ * @type {number}
97
+ * @memberof Subtotal
98
+ */
99
+ exemptAmount?: number;
100
+ /**
101
+ * Number of line items included in this subtotal.
102
+ * @type {number}
103
+ * @memberof Subtotal
104
+ */
105
+ lines?: number;
106
+ }
107
+
108
+ /**
109
+ * Check if a given object implements the Subtotal interface.
110
+ */
111
+ export function instanceOfSubtotal(value: object): value is Subtotal {
112
+ if (!('number' in value) || value['number'] === undefined) return false;
113
+ if (!('amount' in value) || value['amount'] === undefined) return false;
114
+ return true;
115
+ }
116
+
117
+ export function SubtotalFromJSON(json: any): Subtotal {
118
+ return SubtotalFromJSONTyped(json, false);
119
+ }
120
+
121
+ export function SubtotalFromJSONTyped(json: any, ignoreDiscriminator: boolean): Subtotal {
122
+ if (json == null) {
123
+ return json;
124
+ }
125
+ return {
126
+
127
+ 'number': json['number'],
128
+ 'amount': json['amount'],
129
+ 'description': json['description'] == null ? undefined : json['description'],
130
+ 'taxableAmount': json['taxableAmount'] == null ? undefined : json['taxableAmount'],
131
+ 'taxableAmount1': json['taxableAmount1'] == null ? undefined : json['taxableAmount1'],
132
+ 'taxableAmount2': json['taxableAmount2'] == null ? undefined : json['taxableAmount2'],
133
+ 'taxableAmount3': json['taxableAmount3'] == null ? undefined : json['taxableAmount3'],
134
+ 'totalITBIS': json['totalITBIS'] == null ? undefined : json['totalITBIS'],
135
+ 'itbis1': json['itbis1'] == null ? undefined : json['itbis1'],
136
+ 'itbis2': json['itbis2'] == null ? undefined : json['itbis2'],
137
+ 'itbis3': json['itbis3'] == null ? undefined : json['itbis3'],
138
+ 'additionalTaxes': json['additionalTaxes'] == null ? undefined : json['additionalTaxes'],
139
+ 'exemptAmount': json['exemptAmount'] == null ? undefined : json['exemptAmount'],
140
+ 'lines': json['lines'] == null ? undefined : json['lines'],
141
+ };
142
+ }
143
+
144
+ export function SubtotalToJSON(json: any): Subtotal {
145
+ return SubtotalToJSONTyped(json, false);
146
+ }
147
+
148
+ export function SubtotalToJSONTyped(value?: Subtotal | null, ignoreDiscriminator: boolean = false): any {
149
+ if (value == null) {
150
+ return value;
151
+ }
152
+
153
+ return {
154
+
155
+ 'number': value['number'],
156
+ 'amount': value['amount'],
157
+ 'description': value['description'],
158
+ 'taxableAmount': value['taxableAmount'],
159
+ 'taxableAmount1': value['taxableAmount1'],
160
+ 'taxableAmount2': value['taxableAmount2'],
161
+ 'taxableAmount3': value['taxableAmount3'],
162
+ 'totalITBIS': value['totalITBIS'],
163
+ 'itbis1': value['itbis1'],
164
+ 'itbis2': value['itbis2'],
165
+ 'itbis3': value['itbis3'],
166
+ 'additionalTaxes': value['additionalTaxes'],
167
+ 'exemptAmount': value['exemptAmount'],
168
+ 'lines': value['lines'],
169
+ };
170
+ }
171
+
@@ -0,0 +1,91 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * eCF-Pronesoft Integration API
5
+ * ## Overview Production-grade API for issuing Electronic Tax Receipts (e-CF) in the Dominican Republic through the Pronesoft platform, which handles all communication with the DGII on your behalf. ## Authentication — OAuth 2.0 Client Credentials This API uses the **OAuth 2.0 Client Credentials** flow. There is no user login — authentication is machine-to-machine using a `clientId` and `clientSecret` issued by the Pronesoft portal. ### Step-by-step 1. **Get credentials**: - Sandbox: https://ecf.sandbox.pronesoft.com - Production: https://ecf.pronesoft.com 2. **Request a token** — call `POST /oauth/token` with your credentials. The server returns an `accessToken` valid for `expiresIn` seconds. 3. **Authorize requests** — include the token in every subsequent request: ``` Authorization: Bearer <accessToken> ``` 4. **Identify your tenant** — include your company/branch UUID in every protected request: ``` x-tenant-id: <your-tenant-uuid> ``` 5. **Refresh** — when the token expires, simply call `POST /oauth/token` again. ### Scopes | Category | Scope | Description | |---|---|---| | **Business** | `business:read` | Read company data | | | `business:create` | Create a new company | | | `business:update` | Update company data | | **Members** | `members:read` | View team members | | | `members:invite` | Invite new members | | | `members:revoke` | Revoke member access | | **Certificates** | `certificates:read` | View digital certificates | | | `certificates:upload` | Upload new certificates | | | `certificates:update` | Update existing certificates | | **Documents** | `documents:read` | List and view documents | | | `documents:create` | Create drafts or internal documents | | | `documents:send` | Submit e-CF to DGII | | | `documents:receive` | Receive e-CF from third parties | | | `documents:update` | Modify document metadata | | **Approvals** | `approvals:read` | View approval statuses | | | `approvals:commercial` | Perform commercial approvals/rejections | | **Sequences** | `sequences:read` | View NCF/e-NCF ranges | | | `sequences:create` | Request new sequences | | | `sequences:update` | Modify sequence configurations | | | `sequences:cancel` | Cancel unused sequences | | **Dashboard** | `business_info:read` | Access dashboard stats and metrics | | **Certification** | `certification:read` | View certification progress | | | `certification:write` | Run automated DGII certification tests | | **Reports** | `reports:read` | Generate and export reports (e.g. 606) | ## Environments | Environment | Portal | API Host | Purpose | |---|---|---|---| | Sandbox | https://ecf.sandbox.pronesoft.com | `api.ecf.sandbox.pronesoft.com` | Development & testing | | Production | https://ecf.pronesoft.com | `api.ecf.pronesoft.com` | Live e-CF issuance | ## Invoice Types (e-NCF) | Code | Name | |---|---| | `31` | Tax Credit Invoice (Factura de Crédito Fiscal) | | `32` | Consumer Invoice (Factura de Consumo) | | `33` | Debit Note (Nota de Débito) | | `34` | Credit Note (Nota de Crédito) | | `41` | Purchases (Compras) | | `43` | Minor Expenses (Gastos Menores) | | `44` | Special Regimes (Regímenes Especiales) | | `45` | Governmental (Gubernamentales) | | `46` | Exports (Exportaciones) | | `47` | Overseas Payments (Pagos al Exterior) |
6
+ *
7
+ * The version of the OpenAPI document: 0.0.1
8
+ * Contact: contacto@pronesoft.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ import type { InvoiceType } from './InvoiceType';
17
+ import {
18
+ InvoiceTypeFromJSON,
19
+ InvoiceTypeFromJSONTyped,
20
+ InvoiceTypeToJSON,
21
+ InvoiceTypeToJSONTyped,
22
+ } from './InvoiceType';
23
+
24
+ /**
25
+ * A registered fiscal number sequence for a given invoice type.
26
+ * @export
27
+ * @interface TaxSequence
28
+ */
29
+ export interface TaxSequence {
30
+ /**
31
+ * Internal sequence identifier.
32
+ * @type {string}
33
+ * @memberof TaxSequence
34
+ */
35
+ id?: string;
36
+ /**
37
+ *
38
+ * @type {InvoiceType}
39
+ * @memberof TaxSequence
40
+ */
41
+ type?: InvoiceType;
42
+ /**
43
+ * Next available e-NCF number in this sequence.
44
+ * @type {string}
45
+ * @memberof TaxSequence
46
+ */
47
+ nextNumber?: string;
48
+ }
49
+
50
+
51
+
52
+ /**
53
+ * Check if a given object implements the TaxSequence interface.
54
+ */
55
+ export function instanceOfTaxSequence(value: object): value is TaxSequence {
56
+ return true;
57
+ }
58
+
59
+ export function TaxSequenceFromJSON(json: any): TaxSequence {
60
+ return TaxSequenceFromJSONTyped(json, false);
61
+ }
62
+
63
+ export function TaxSequenceFromJSONTyped(json: any, ignoreDiscriminator: boolean): TaxSequence {
64
+ if (json == null) {
65
+ return json;
66
+ }
67
+ return {
68
+
69
+ 'id': json['id'] == null ? undefined : json['id'],
70
+ 'type': json['type'] == null ? undefined : InvoiceTypeFromJSON(json['type']),
71
+ 'nextNumber': json['nextNumber'] == null ? undefined : json['nextNumber'],
72
+ };
73
+ }
74
+
75
+ export function TaxSequenceToJSON(json: any): TaxSequence {
76
+ return TaxSequenceToJSONTyped(json, false);
77
+ }
78
+
79
+ export function TaxSequenceToJSONTyped(value?: TaxSequence | null, ignoreDiscriminator: boolean = false): any {
80
+ if (value == null) {
81
+ return value;
82
+ }
83
+
84
+ return {
85
+
86
+ 'id': value['id'],
87
+ 'type': InvoiceTypeToJSON(value['type']),
88
+ 'nextNumber': value['nextNumber'],
89
+ };
90
+ }
91
+
@@ -0,0 +1,260 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * eCF-Pronesoft Integration API
5
+ * ## Overview Production-grade API for issuing Electronic Tax Receipts (e-CF) in the Dominican Republic through the Pronesoft platform, which handles all communication with the DGII on your behalf. ## Authentication — OAuth 2.0 Client Credentials This API uses the **OAuth 2.0 Client Credentials** flow. There is no user login — authentication is machine-to-machine using a `clientId` and `clientSecret` issued by the Pronesoft portal. ### Step-by-step 1. **Get credentials**: - Sandbox: https://ecf.sandbox.pronesoft.com - Production: https://ecf.pronesoft.com 2. **Request a token** — call `POST /oauth/token` with your credentials. The server returns an `accessToken` valid for `expiresIn` seconds. 3. **Authorize requests** — include the token in every subsequent request: ``` Authorization: Bearer <accessToken> ``` 4. **Identify your tenant** — include your company/branch UUID in every protected request: ``` x-tenant-id: <your-tenant-uuid> ``` 5. **Refresh** — when the token expires, simply call `POST /oauth/token` again. ### Scopes | Category | Scope | Description | |---|---|---| | **Business** | `business:read` | Read company data | | | `business:create` | Create a new company | | | `business:update` | Update company data | | **Members** | `members:read` | View team members | | | `members:invite` | Invite new members | | | `members:revoke` | Revoke member access | | **Certificates** | `certificates:read` | View digital certificates | | | `certificates:upload` | Upload new certificates | | | `certificates:update` | Update existing certificates | | **Documents** | `documents:read` | List and view documents | | | `documents:create` | Create drafts or internal documents | | | `documents:send` | Submit e-CF to DGII | | | `documents:receive` | Receive e-CF from third parties | | | `documents:update` | Modify document metadata | | **Approvals** | `approvals:read` | View approval statuses | | | `approvals:commercial` | Perform commercial approvals/rejections | | **Sequences** | `sequences:read` | View NCF/e-NCF ranges | | | `sequences:create` | Request new sequences | | | `sequences:update` | Modify sequence configurations | | | `sequences:cancel` | Cancel unused sequences | | **Dashboard** | `business_info:read` | Access dashboard stats and metrics | | **Certification** | `certification:read` | View certification progress | | | `certification:write` | Run automated DGII certification tests | | **Reports** | `reports:read` | Generate and export reports (e.g. 606) | ## Environments | Environment | Portal | API Host | Purpose | |---|---|---|---| | Sandbox | https://ecf.sandbox.pronesoft.com | `api.ecf.sandbox.pronesoft.com` | Development & testing | | Production | https://ecf.pronesoft.com | `api.ecf.pronesoft.com` | Live e-CF issuance | ## Invoice Types (e-NCF) | Code | Name | |---|---| | `31` | Tax Credit Invoice (Factura de Crédito Fiscal) | | `32` | Consumer Invoice (Factura de Consumo) | | `33` | Debit Note (Nota de Débito) | | `34` | Credit Note (Nota de Crédito) | | `41` | Purchases (Compras) | | `43` | Minor Expenses (Gastos Menores) | | `44` | Special Regimes (Regímenes Especiales) | | `45` | Governmental (Gubernamentales) | | `46` | Exports (Exportaciones) | | `47` | Overseas Payments (Pagos al Exterior) |
6
+ *
7
+ * The version of the OpenAPI document: 0.0.1
8
+ * Contact: contacto@pronesoft.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ import type { ItemAdditionalTax } from './ItemAdditionalTax';
17
+ import {
18
+ ItemAdditionalTaxFromJSON,
19
+ ItemAdditionalTaxFromJSONTyped,
20
+ ItemAdditionalTaxToJSON,
21
+ ItemAdditionalTaxToJSONTyped,
22
+ } from './ItemAdditionalTax';
23
+
24
+ /**
25
+ * Document totals. `totalAmount` is required.
26
+ * Provide ITBIS breakdowns by rate when applicable.
27
+ *
28
+ * @export
29
+ * @interface Totals
30
+ */
31
+ export interface Totals {
32
+ /**
33
+ * Total taxable base amount (all ITBIS rates combined).
34
+ * @type {number}
35
+ * @memberof Totals
36
+ */
37
+ taxableAmount?: number;
38
+ /**
39
+ * Taxable base for 18% ITBIS rate.
40
+ * @type {number}
41
+ * @memberof Totals
42
+ */
43
+ taxableAmount1?: number;
44
+ /**
45
+ * Taxable base for 16% ITBIS rate.
46
+ * @type {number}
47
+ * @memberof Totals
48
+ */
49
+ taxableAmount2?: number;
50
+ /**
51
+ * Taxable base for 0% ITBIS rate.
52
+ * @type {number}
53
+ * @memberof Totals
54
+ */
55
+ taxableAmount3?: number;
56
+ /**
57
+ * Total amount exempt from ITBIS.
58
+ * @type {number}
59
+ * @memberof Totals
60
+ */
61
+ exemptAmount?: number;
62
+ /**
63
+ * ITBIS rate 1 (typically 0.18).
64
+ * @type {number}
65
+ * @memberof Totals
66
+ */
67
+ itbisRate1?: number;
68
+ /**
69
+ * ITBIS rate 2 (typically 0.16).
70
+ * @type {number}
71
+ * @memberof Totals
72
+ */
73
+ itbisRate2?: number;
74
+ /**
75
+ * ITBIS rate 3 (typically 0.00).
76
+ * @type {number}
77
+ * @memberof Totals
78
+ */
79
+ itbisRate3?: number;
80
+ /**
81
+ * Total ITBIS tax (all rates combined).
82
+ * @type {number}
83
+ * @memberof Totals
84
+ */
85
+ totalITBIS?: number;
86
+ /**
87
+ * ITBIS amount at rate 1.
88
+ * @type {number}
89
+ * @memberof Totals
90
+ */
91
+ itbis1?: number;
92
+ /**
93
+ * ITBIS amount at rate 2.
94
+ * @type {number}
95
+ * @memberof Totals
96
+ */
97
+ itbis2?: number;
98
+ /**
99
+ * ITBIS amount at rate 3.
100
+ * @type {number}
101
+ * @memberof Totals
102
+ */
103
+ itbis3?: number;
104
+ /**
105
+ * Total of all additional taxes (ISC, IECS, etc.).
106
+ * @type {number}
107
+ * @memberof Totals
108
+ */
109
+ additionalTaxAmount?: number;
110
+ /**
111
+ * Breakdown of additional taxes at document level.
112
+ * @type {Array<ItemAdditionalTax>}
113
+ * @memberof Totals
114
+ */
115
+ additionalTaxes?: Array<ItemAdditionalTax>;
116
+ /**
117
+ * Grand total of the document (required).
118
+ * @type {number}
119
+ * @memberof Totals
120
+ */
121
+ totalAmount: number;
122
+ /**
123
+ * Amount not subject to billing.
124
+ * @type {number}
125
+ * @memberof Totals
126
+ */
127
+ nonBillableAmount?: number;
128
+ /**
129
+ * Amount for the current billing period.
130
+ * @type {number}
131
+ * @memberof Totals
132
+ */
133
+ periodAmount?: number;
134
+ /**
135
+ * Previous balance (for billing statements).
136
+ * @type {number}
137
+ * @memberof Totals
138
+ */
139
+ previousBalance?: number;
140
+ /**
141
+ * Advance payment amount already received.
142
+ * @type {number}
143
+ * @memberof Totals
144
+ */
145
+ advancePaymentAmount?: number;
146
+ /**
147
+ * Net amount due after advance payments and previous balance.
148
+ * @type {number}
149
+ * @memberof Totals
150
+ */
151
+ amountToPay?: number;
152
+ /**
153
+ * Total ITBIS withheld at source.
154
+ * @type {number}
155
+ * @memberof Totals
156
+ */
157
+ totalWithheldITBIS?: number;
158
+ /**
159
+ * Total income tax (ISR) withheld at source.
160
+ * @type {number}
161
+ * @memberof Totals
162
+ */
163
+ totalIncomeTaxWithholding?: number;
164
+ /**
165
+ * Total ITBIS perception collected.
166
+ * @type {number}
167
+ * @memberof Totals
168
+ */
169
+ totalITBISPerception?: number;
170
+ /**
171
+ * Total ISR perception collected.
172
+ * @type {number}
173
+ * @memberof Totals
174
+ */
175
+ totalISRPerception?: number;
176
+ }
177
+
178
+ /**
179
+ * Check if a given object implements the Totals interface.
180
+ */
181
+ export function instanceOfTotals(value: object): value is Totals {
182
+ if (!('totalAmount' in value) || value['totalAmount'] === undefined) return false;
183
+ return true;
184
+ }
185
+
186
+ export function TotalsFromJSON(json: any): Totals {
187
+ return TotalsFromJSONTyped(json, false);
188
+ }
189
+
190
+ export function TotalsFromJSONTyped(json: any, ignoreDiscriminator: boolean): Totals {
191
+ if (json == null) {
192
+ return json;
193
+ }
194
+ return {
195
+
196
+ 'taxableAmount': json['taxableAmount'] == null ? undefined : json['taxableAmount'],
197
+ 'taxableAmount1': json['taxableAmount1'] == null ? undefined : json['taxableAmount1'],
198
+ 'taxableAmount2': json['taxableAmount2'] == null ? undefined : json['taxableAmount2'],
199
+ 'taxableAmount3': json['taxableAmount3'] == null ? undefined : json['taxableAmount3'],
200
+ 'exemptAmount': json['exemptAmount'] == null ? undefined : json['exemptAmount'],
201
+ 'itbisRate1': json['itbisRate1'] == null ? undefined : json['itbisRate1'],
202
+ 'itbisRate2': json['itbisRate2'] == null ? undefined : json['itbisRate2'],
203
+ 'itbisRate3': json['itbisRate3'] == null ? undefined : json['itbisRate3'],
204
+ 'totalITBIS': json['totalITBIS'] == null ? undefined : json['totalITBIS'],
205
+ 'itbis1': json['itbis1'] == null ? undefined : json['itbis1'],
206
+ 'itbis2': json['itbis2'] == null ? undefined : json['itbis2'],
207
+ 'itbis3': json['itbis3'] == null ? undefined : json['itbis3'],
208
+ 'additionalTaxAmount': json['additionalTaxAmount'] == null ? undefined : json['additionalTaxAmount'],
209
+ 'additionalTaxes': json['additionalTaxes'] == null ? undefined : ((json['additionalTaxes'] as Array<any>).map(ItemAdditionalTaxFromJSON)),
210
+ 'totalAmount': json['totalAmount'],
211
+ 'nonBillableAmount': json['nonBillableAmount'] == null ? undefined : json['nonBillableAmount'],
212
+ 'periodAmount': json['periodAmount'] == null ? undefined : json['periodAmount'],
213
+ 'previousBalance': json['previousBalance'] == null ? undefined : json['previousBalance'],
214
+ 'advancePaymentAmount': json['advancePaymentAmount'] == null ? undefined : json['advancePaymentAmount'],
215
+ 'amountToPay': json['amountToPay'] == null ? undefined : json['amountToPay'],
216
+ 'totalWithheldITBIS': json['totalWithheldITBIS'] == null ? undefined : json['totalWithheldITBIS'],
217
+ 'totalIncomeTaxWithholding': json['totalIncomeTaxWithholding'] == null ? undefined : json['totalIncomeTaxWithholding'],
218
+ 'totalITBISPerception': json['totalITBISPerception'] == null ? undefined : json['totalITBISPerception'],
219
+ 'totalISRPerception': json['totalISRPerception'] == null ? undefined : json['totalISRPerception'],
220
+ };
221
+ }
222
+
223
+ export function TotalsToJSON(json: any): Totals {
224
+ return TotalsToJSONTyped(json, false);
225
+ }
226
+
227
+ export function TotalsToJSONTyped(value?: Totals | null, ignoreDiscriminator: boolean = false): any {
228
+ if (value == null) {
229
+ return value;
230
+ }
231
+
232
+ return {
233
+
234
+ 'taxableAmount': value['taxableAmount'],
235
+ 'taxableAmount1': value['taxableAmount1'],
236
+ 'taxableAmount2': value['taxableAmount2'],
237
+ 'taxableAmount3': value['taxableAmount3'],
238
+ 'exemptAmount': value['exemptAmount'],
239
+ 'itbisRate1': value['itbisRate1'],
240
+ 'itbisRate2': value['itbisRate2'],
241
+ 'itbisRate3': value['itbisRate3'],
242
+ 'totalITBIS': value['totalITBIS'],
243
+ 'itbis1': value['itbis1'],
244
+ 'itbis2': value['itbis2'],
245
+ 'itbis3': value['itbis3'],
246
+ 'additionalTaxAmount': value['additionalTaxAmount'],
247
+ 'additionalTaxes': value['additionalTaxes'] == null ? undefined : ((value['additionalTaxes'] as Array<any>).map(ItemAdditionalTaxToJSON)),
248
+ 'totalAmount': value['totalAmount'],
249
+ 'nonBillableAmount': value['nonBillableAmount'],
250
+ 'periodAmount': value['periodAmount'],
251
+ 'previousBalance': value['previousBalance'],
252
+ 'advancePaymentAmount': value['advancePaymentAmount'],
253
+ 'amountToPay': value['amountToPay'],
254
+ 'totalWithheldITBIS': value['totalWithheldITBIS'],
255
+ 'totalIncomeTaxWithholding': value['totalIncomeTaxWithholding'],
256
+ 'totalITBISPerception': value['totalITBISPerception'],
257
+ 'totalISRPerception': value['totalISRPerception'],
258
+ };
259
+ }
260
+
@@ -0,0 +1,105 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * eCF-Pronesoft Integration API
5
+ * ## Overview Production-grade API for issuing Electronic Tax Receipts (e-CF) in the Dominican Republic through the Pronesoft platform, which handles all communication with the DGII on your behalf. ## Authentication — OAuth 2.0 Client Credentials This API uses the **OAuth 2.0 Client Credentials** flow. There is no user login — authentication is machine-to-machine using a `clientId` and `clientSecret` issued by the Pronesoft portal. ### Step-by-step 1. **Get credentials**: - Sandbox: https://ecf.sandbox.pronesoft.com - Production: https://ecf.pronesoft.com 2. **Request a token** — call `POST /oauth/token` with your credentials. The server returns an `accessToken` valid for `expiresIn` seconds. 3. **Authorize requests** — include the token in every subsequent request: ``` Authorization: Bearer <accessToken> ``` 4. **Identify your tenant** — include your company/branch UUID in every protected request: ``` x-tenant-id: <your-tenant-uuid> ``` 5. **Refresh** — when the token expires, simply call `POST /oauth/token` again. ### Scopes | Category | Scope | Description | |---|---|---| | **Business** | `business:read` | Read company data | | | `business:create` | Create a new company | | | `business:update` | Update company data | | **Members** | `members:read` | View team members | | | `members:invite` | Invite new members | | | `members:revoke` | Revoke member access | | **Certificates** | `certificates:read` | View digital certificates | | | `certificates:upload` | Upload new certificates | | | `certificates:update` | Update existing certificates | | **Documents** | `documents:read` | List and view documents | | | `documents:create` | Create drafts or internal documents | | | `documents:send` | Submit e-CF to DGII | | | `documents:receive` | Receive e-CF from third parties | | | `documents:update` | Modify document metadata | | **Approvals** | `approvals:read` | View approval statuses | | | `approvals:commercial` | Perform commercial approvals/rejections | | **Sequences** | `sequences:read` | View NCF/e-NCF ranges | | | `sequences:create` | Request new sequences | | | `sequences:update` | Modify sequence configurations | | | `sequences:cancel` | Cancel unused sequences | | **Dashboard** | `business_info:read` | Access dashboard stats and metrics | | **Certification** | `certification:read` | View certification progress | | | `certification:write` | Run automated DGII certification tests | | **Reports** | `reports:read` | Generate and export reports (e.g. 606) | ## Environments | Environment | Portal | API Host | Purpose | |---|---|---|---| | Sandbox | https://ecf.sandbox.pronesoft.com | `api.ecf.sandbox.pronesoft.com` | Development & testing | | Production | https://ecf.pronesoft.com | `api.ecf.pronesoft.com` | Live e-CF issuance | ## Invoice Types (e-NCF) | Code | Name | |---|---| | `31` | Tax Credit Invoice (Factura de Crédito Fiscal) | | `32` | Consumer Invoice (Factura de Consumo) | | `33` | Debit Note (Nota de Débito) | | `34` | Credit Note (Nota de Crédito) | | `41` | Purchases (Compras) | | `43` | Minor Expenses (Gastos Menores) | | `44` | Special Regimes (Regímenes Especiales) | | `45` | Governmental (Gubernamentales) | | `46` | Exports (Exportaciones) | | `47` | Overseas Payments (Pagos al Exterior) |
6
+ *
7
+ * The version of the OpenAPI document: 0.0.1
8
+ * Contact: contacto@pronesoft.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ /**
17
+ * Transport/delivery information (required for certain invoice types).
18
+ * @export
19
+ * @interface Transport
20
+ */
21
+ export interface Transport {
22
+ /**
23
+ * Driver's full name.
24
+ * @type {string}
25
+ * @memberof Transport
26
+ */
27
+ driver?: string;
28
+ /**
29
+ * Vehicle identification number.
30
+ * @type {string}
31
+ * @memberof Transport
32
+ */
33
+ vehicleId?: string;
34
+ /**
35
+ * Vehicle license plate.
36
+ * @type {string}
37
+ * @memberof Transport
38
+ */
39
+ licensePlate?: string;
40
+ /**
41
+ * Delivery route description.
42
+ * @type {string}
43
+ * @memberof Transport
44
+ */
45
+ route?: string;
46
+ /**
47
+ * Departure date and time.
48
+ * @type {Date}
49
+ * @memberof Transport
50
+ */
51
+ departureDate?: Date;
52
+ /**
53
+ * Estimated arrival date and time.
54
+ * @type {Date}
55
+ * @memberof Transport
56
+ */
57
+ arrivalDate?: Date;
58
+ }
59
+
60
+ /**
61
+ * Check if a given object implements the Transport interface.
62
+ */
63
+ export function instanceOfTransport(value: object): value is Transport {
64
+ return true;
65
+ }
66
+
67
+ export function TransportFromJSON(json: any): Transport {
68
+ return TransportFromJSONTyped(json, false);
69
+ }
70
+
71
+ export function TransportFromJSONTyped(json: any, ignoreDiscriminator: boolean): Transport {
72
+ if (json == null) {
73
+ return json;
74
+ }
75
+ return {
76
+
77
+ 'driver': json['driver'] == null ? undefined : json['driver'],
78
+ 'vehicleId': json['vehicleId'] == null ? undefined : json['vehicleId'],
79
+ 'licensePlate': json['licensePlate'] == null ? undefined : json['licensePlate'],
80
+ 'route': json['route'] == null ? undefined : json['route'],
81
+ 'departureDate': json['departureDate'] == null ? undefined : (new Date(json['departureDate'])),
82
+ 'arrivalDate': json['arrivalDate'] == null ? undefined : (new Date(json['arrivalDate'])),
83
+ };
84
+ }
85
+
86
+ export function TransportToJSON(json: any): Transport {
87
+ return TransportToJSONTyped(json, false);
88
+ }
89
+
90
+ export function TransportToJSONTyped(value?: Transport | null, ignoreDiscriminator: boolean = false): any {
91
+ if (value == null) {
92
+ return value;
93
+ }
94
+
95
+ return {
96
+
97
+ 'driver': value['driver'],
98
+ 'vehicleId': value['vehicleId'],
99
+ 'licensePlate': value['licensePlate'],
100
+ 'route': value['route'],
101
+ 'departureDate': value['departureDate'] == null ? value['departureDate'] : value['departureDate'].toISOString(),
102
+ 'arrivalDate': value['arrivalDate'] == null ? value['arrivalDate'] : value['arrivalDate'].toISOString(),
103
+ };
104
+ }
105
+