@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,225 @@
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
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ import * as runtime from '../runtime';
24
+ import { AssociatedCompanyFromJSON, CreateAssociatedCompany201ResponseFromJSON, } from '../models/index';
25
+ /**
26
+ *
27
+ */
28
+ export class AssociatedCompaniesApi extends runtime.BaseAPI {
29
+ /**
30
+ * Creates request options for createAssociatedCompany without sending the request
31
+ */
32
+ createAssociatedCompanyRequestOpts(requestParameters) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ if (requestParameters['xTenantId'] == null) {
35
+ throw new runtime.RequiredError('xTenantId', 'Required parameter "xTenantId" was null or undefined when calling createAssociatedCompany().');
36
+ }
37
+ if (requestParameters['email'] == null) {
38
+ throw new runtime.RequiredError('email', 'Required parameter "email" was null or undefined when calling createAssociatedCompany().');
39
+ }
40
+ if (requestParameters['password'] == null) {
41
+ throw new runtime.RequiredError('password', 'Required parameter "password" was null or undefined when calling createAssociatedCompany().');
42
+ }
43
+ if (requestParameters['name'] == null) {
44
+ throw new runtime.RequiredError('name', 'Required parameter "name" was null or undefined when calling createAssociatedCompany().');
45
+ }
46
+ if (requestParameters['rnc'] == null) {
47
+ throw new runtime.RequiredError('rnc', 'Required parameter "rnc" was null or undefined when calling createAssociatedCompany().');
48
+ }
49
+ if (requestParameters['phone'] == null) {
50
+ throw new runtime.RequiredError('phone', 'Required parameter "phone" was null or undefined when calling createAssociatedCompany().');
51
+ }
52
+ if (requestParameters['address'] == null) {
53
+ throw new runtime.RequiredError('address', 'Required parameter "address" was null or undefined when calling createAssociatedCompany().');
54
+ }
55
+ if (requestParameters['city'] == null) {
56
+ throw new runtime.RequiredError('city', 'Required parameter "city" was null or undefined when calling createAssociatedCompany().');
57
+ }
58
+ if (requestParameters['country'] == null) {
59
+ throw new runtime.RequiredError('country', 'Required parameter "country" was null or undefined when calling createAssociatedCompany().');
60
+ }
61
+ const queryParameters = {};
62
+ const headerParameters = {};
63
+ if (requestParameters['xTenantId'] != null) {
64
+ headerParameters['x-tenant-id'] = String(requestParameters['xTenantId']);
65
+ }
66
+ if (this.configuration && this.configuration.accessToken) {
67
+ // oauth required
68
+ headerParameters["Authorization"] = yield this.configuration.accessToken("oauth2", ["business:create"]);
69
+ }
70
+ if (this.configuration && this.configuration.accessToken) {
71
+ const token = this.configuration.accessToken;
72
+ const tokenString = yield token("bearerAuth", []);
73
+ if (tokenString) {
74
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
75
+ }
76
+ }
77
+ const consumes = [
78
+ { contentType: 'multipart/form-data' },
79
+ ];
80
+ // @ts-ignore: canConsumeForm may be unused
81
+ const canConsumeForm = runtime.canConsumeForm(consumes);
82
+ let formParams;
83
+ let useForm = false;
84
+ // use FormData to transmit files using content-type "multipart/form-data"
85
+ useForm = canConsumeForm;
86
+ if (useForm) {
87
+ formParams = new FormData();
88
+ }
89
+ else {
90
+ formParams = new URLSearchParams();
91
+ }
92
+ if (requestParameters['email'] != null) {
93
+ formParams.append('email', requestParameters['email']);
94
+ }
95
+ if (requestParameters['password'] != null) {
96
+ formParams.append('password', requestParameters['password']);
97
+ }
98
+ if (requestParameters['firstName'] != null) {
99
+ formParams.append('firstName', requestParameters['firstName']);
100
+ }
101
+ if (requestParameters['lastName'] != null) {
102
+ formParams.append('lastName', requestParameters['lastName']);
103
+ }
104
+ if (requestParameters['jobTitle'] != null) {
105
+ formParams.append('jobTitle', requestParameters['jobTitle']);
106
+ }
107
+ if (requestParameters['name'] != null) {
108
+ formParams.append('name', requestParameters['name']);
109
+ }
110
+ if (requestParameters['rnc'] != null) {
111
+ formParams.append('rnc', requestParameters['rnc']);
112
+ }
113
+ if (requestParameters['phone'] != null) {
114
+ formParams.append('phone', requestParameters['phone']);
115
+ }
116
+ if (requestParameters['address'] != null) {
117
+ formParams.append('address', requestParameters['address']);
118
+ }
119
+ if (requestParameters['city'] != null) {
120
+ formParams.append('city', requestParameters['city']);
121
+ }
122
+ if (requestParameters['country'] != null) {
123
+ formParams.append('country', requestParameters['country']);
124
+ }
125
+ if (requestParameters['website'] != null) {
126
+ formParams.append('website', requestParameters['website']);
127
+ }
128
+ if (requestParameters['category'] != null) {
129
+ formParams.append('category', requestParameters['category']);
130
+ }
131
+ if (requestParameters['monthlySalesRange'] != null) {
132
+ formParams.append('monthlySalesRange', requestParameters['monthlySalesRange']);
133
+ }
134
+ if (requestParameters['printerType'] != null) {
135
+ formParams.append('printerType', requestParameters['printerType']);
136
+ }
137
+ if (requestParameters['logo'] != null) {
138
+ formParams.append('logo', requestParameters['logo']);
139
+ }
140
+ let urlPath = `/associated-companies`;
141
+ return {
142
+ path: urlPath,
143
+ method: 'POST',
144
+ headers: headerParameters,
145
+ query: queryParameters,
146
+ body: formParams,
147
+ };
148
+ });
149
+ }
150
+ /**
151
+ * Registers a new branch or associated company under the current tenant account. Accepts multipart/form-data to support logo upload.
152
+ * Create new associated company
153
+ */
154
+ createAssociatedCompanyRaw(requestParameters, initOverrides) {
155
+ return __awaiter(this, void 0, void 0, function* () {
156
+ const requestOptions = yield this.createAssociatedCompanyRequestOpts(requestParameters);
157
+ const response = yield this.request(requestOptions, initOverrides);
158
+ return new runtime.JSONApiResponse(response, (jsonValue) => CreateAssociatedCompany201ResponseFromJSON(jsonValue));
159
+ });
160
+ }
161
+ /**
162
+ * Registers a new branch or associated company under the current tenant account. Accepts multipart/form-data to support logo upload.
163
+ * Create new associated company
164
+ */
165
+ createAssociatedCompany(requestParameters, initOverrides) {
166
+ return __awaiter(this, void 0, void 0, function* () {
167
+ const response = yield this.createAssociatedCompanyRaw(requestParameters, initOverrides);
168
+ return yield response.value();
169
+ });
170
+ }
171
+ /**
172
+ * Creates request options for listAssociatedCompanies without sending the request
173
+ */
174
+ listAssociatedCompaniesRequestOpts(requestParameters) {
175
+ return __awaiter(this, void 0, void 0, function* () {
176
+ if (requestParameters['xTenantId'] == null) {
177
+ throw new runtime.RequiredError('xTenantId', 'Required parameter "xTenantId" was null or undefined when calling listAssociatedCompanies().');
178
+ }
179
+ const queryParameters = {};
180
+ const headerParameters = {};
181
+ if (requestParameters['xTenantId'] != null) {
182
+ headerParameters['x-tenant-id'] = String(requestParameters['xTenantId']);
183
+ }
184
+ if (this.configuration && this.configuration.accessToken) {
185
+ // oauth required
186
+ headerParameters["Authorization"] = yield this.configuration.accessToken("oauth2", ["business:read"]);
187
+ }
188
+ if (this.configuration && this.configuration.accessToken) {
189
+ const token = this.configuration.accessToken;
190
+ const tokenString = yield token("bearerAuth", []);
191
+ if (tokenString) {
192
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
193
+ }
194
+ }
195
+ let urlPath = `/associated-companies`;
196
+ return {
197
+ path: urlPath,
198
+ method: 'GET',
199
+ headers: headerParameters,
200
+ query: queryParameters,
201
+ };
202
+ });
203
+ }
204
+ /**
205
+ * Returns all companies and branches linked to the current tenant.
206
+ * List associated companies / branches
207
+ */
208
+ listAssociatedCompaniesRaw(requestParameters, initOverrides) {
209
+ return __awaiter(this, void 0, void 0, function* () {
210
+ const requestOptions = yield this.listAssociatedCompaniesRequestOpts(requestParameters);
211
+ const response = yield this.request(requestOptions, initOverrides);
212
+ return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(AssociatedCompanyFromJSON));
213
+ });
214
+ }
215
+ /**
216
+ * Returns all companies and branches linked to the current tenant.
217
+ * List associated companies / branches
218
+ */
219
+ listAssociatedCompanies(requestParameters, initOverrides) {
220
+ return __awaiter(this, void 0, void 0, function* () {
221
+ const response = yield this.listAssociatedCompaniesRaw(requestParameters, initOverrides);
222
+ return yield response.value();
223
+ });
224
+ }
225
+ }
@@ -0,0 +1,64 @@
1
+ /**
2
+ * eCF-Pronesoft Integration API
3
+ * ## 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) |
4
+ *
5
+ * The version of the OpenAPI document: 0.0.1
6
+ * Contact: contacto@pronesoft.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import * as runtime from '../runtime';
13
+ import type { OAuthTokenRequest, OAuthTokenResponse } from '../models/index';
14
+ export interface GetAccessTokenRequest {
15
+ oAuthTokenRequest: OAuthTokenRequest;
16
+ }
17
+ /**
18
+ * AuthenticationApi - interface
19
+ *
20
+ * @export
21
+ * @interface AuthenticationApiInterface
22
+ */
23
+ export interface AuthenticationApiInterface {
24
+ /**
25
+ * Creates request options for getAccessToken without sending the request
26
+ * @param {OAuthTokenRequest} oAuthTokenRequest
27
+ * @throws {RequiredError}
28
+ * @memberof AuthenticationApiInterface
29
+ */
30
+ getAccessTokenRequestOpts(requestParameters: GetAccessTokenRequest): Promise<runtime.RequestOpts>;
31
+ /**
32
+ * Authenticates using OAuth 2.0 **Client Credentials** flow. Returns a Bearer token to use in subsequent requests. **This endpoint does NOT require an Authorization header.** ``` POST /oauth/token Content-Type: application/json { \"clientId\": \"your-client-id\", \"clientSecret\": \"your-client-secret\" } ``` Use the returned `accessToken` as: ``` Authorization: Bearer <accessToken> ```
33
+ * @summary Get access token
34
+ * @param {OAuthTokenRequest} oAuthTokenRequest
35
+ * @param {*} [options] Override http request option.
36
+ * @throws {RequiredError}
37
+ * @memberof AuthenticationApiInterface
38
+ */
39
+ getAccessTokenRaw(requestParameters: GetAccessTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<OAuthTokenResponse>>;
40
+ /**
41
+ * Authenticates using OAuth 2.0 **Client Credentials** flow. Returns a Bearer token to use in subsequent requests. **This endpoint does NOT require an Authorization header.** ``` POST /oauth/token Content-Type: application/json { \"clientId\": \"your-client-id\", \"clientSecret\": \"your-client-secret\" } ``` Use the returned `accessToken` as: ``` Authorization: Bearer <accessToken> ```
42
+ * Get access token
43
+ */
44
+ getAccessToken(requestParameters: GetAccessTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<OAuthTokenResponse>;
45
+ }
46
+ /**
47
+ *
48
+ */
49
+ export declare class AuthenticationApi extends runtime.BaseAPI implements AuthenticationApiInterface {
50
+ /**
51
+ * Creates request options for getAccessToken without sending the request
52
+ */
53
+ getAccessTokenRequestOpts(requestParameters: GetAccessTokenRequest): Promise<runtime.RequestOpts>;
54
+ /**
55
+ * Authenticates using OAuth 2.0 **Client Credentials** flow. Returns a Bearer token to use in subsequent requests. **This endpoint does NOT require an Authorization header.** ``` POST /oauth/token Content-Type: application/json { \"clientId\": \"your-client-id\", \"clientSecret\": \"your-client-secret\" } ``` Use the returned `accessToken` as: ``` Authorization: Bearer <accessToken> ```
56
+ * Get access token
57
+ */
58
+ getAccessTokenRaw(requestParameters: GetAccessTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<OAuthTokenResponse>>;
59
+ /**
60
+ * Authenticates using OAuth 2.0 **Client Credentials** flow. Returns a Bearer token to use in subsequent requests. **This endpoint does NOT require an Authorization header.** ``` POST /oauth/token Content-Type: application/json { \"clientId\": \"your-client-id\", \"clientSecret\": \"your-client-secret\" } ``` Use the returned `accessToken` as: ``` Authorization: Bearer <accessToken> ```
61
+ * Get access token
62
+ */
63
+ getAccessToken(requestParameters: GetAccessTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<OAuthTokenResponse>;
64
+ }
@@ -0,0 +1,71 @@
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
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ import * as runtime from '../runtime';
24
+ import { OAuthTokenRequestToJSON, OAuthTokenResponseFromJSON, } from '../models/index';
25
+ /**
26
+ *
27
+ */
28
+ export class AuthenticationApi extends runtime.BaseAPI {
29
+ /**
30
+ * Creates request options for getAccessToken without sending the request
31
+ */
32
+ getAccessTokenRequestOpts(requestParameters) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ if (requestParameters['oAuthTokenRequest'] == null) {
35
+ throw new runtime.RequiredError('oAuthTokenRequest', 'Required parameter "oAuthTokenRequest" was null or undefined when calling getAccessToken().');
36
+ }
37
+ const queryParameters = {};
38
+ const headerParameters = {};
39
+ headerParameters['Content-Type'] = 'application/json';
40
+ let urlPath = `/oauth/token`;
41
+ return {
42
+ path: urlPath,
43
+ method: 'POST',
44
+ headers: headerParameters,
45
+ query: queryParameters,
46
+ body: OAuthTokenRequestToJSON(requestParameters['oAuthTokenRequest']),
47
+ };
48
+ });
49
+ }
50
+ /**
51
+ * Authenticates using OAuth 2.0 **Client Credentials** flow. Returns a Bearer token to use in subsequent requests. **This endpoint does NOT require an Authorization header.** ``` POST /oauth/token Content-Type: application/json { \"clientId\": \"your-client-id\", \"clientSecret\": \"your-client-secret\" } ``` Use the returned `accessToken` as: ``` Authorization: Bearer <accessToken> ```
52
+ * Get access token
53
+ */
54
+ getAccessTokenRaw(requestParameters, initOverrides) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ const requestOptions = yield this.getAccessTokenRequestOpts(requestParameters);
57
+ const response = yield this.request(requestOptions, initOverrides);
58
+ return new runtime.JSONApiResponse(response, (jsonValue) => OAuthTokenResponseFromJSON(jsonValue));
59
+ });
60
+ }
61
+ /**
62
+ * Authenticates using OAuth 2.0 **Client Credentials** flow. Returns a Bearer token to use in subsequent requests. **This endpoint does NOT require an Authorization header.** ``` POST /oauth/token Content-Type: application/json { \"clientId\": \"your-client-id\", \"clientSecret\": \"your-client-secret\" } ``` Use the returned `accessToken` as: ``` Authorization: Bearer <accessToken> ```
63
+ * Get access token
64
+ */
65
+ getAccessToken(requestParameters, initOverrides) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ const response = yield this.getAccessTokenRaw(requestParameters, initOverrides);
68
+ return yield response.value();
69
+ });
70
+ }
71
+ }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * eCF-Pronesoft Integration API
3
+ * ## 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) |
4
+ *
5
+ * The version of the OpenAPI document: 0.0.1
6
+ * Contact: contacto@pronesoft.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import * as runtime from '../runtime';
13
+ import type { UploadCertificateResponse } from '../models/index';
14
+ export interface UploadCertificateRequest {
15
+ rnc: string;
16
+ file: Blob;
17
+ password: string;
18
+ }
19
+ /**
20
+ * DigitalCertificatesApi - interface
21
+ *
22
+ * @export
23
+ * @interface DigitalCertificatesApiInterface
24
+ */
25
+ export interface DigitalCertificatesApiInterface {
26
+ /**
27
+ * Creates request options for uploadCertificate without sending the request
28
+ * @param {string} rnc RNC (Registro Nacional del Contribuyente) of the company. Must be 9 digits (persona jurídica) or 11 digits (persona física).
29
+ * @param {Blob} file The P12/PFX certificate file.
30
+ * @param {string} password Password to unlock the P12 certificate.
31
+ * @throws {RequiredError}
32
+ * @memberof DigitalCertificatesApiInterface
33
+ */
34
+ uploadCertificateRequestOpts(requestParameters: UploadCertificateRequest): Promise<runtime.RequestOpts>;
35
+ /**
36
+ * Uploads the DGII-issued digital signing certificate for a company identified by its RNC. The certificate must be in P12/PFX format. This is required before submitting any e-CF documents.
37
+ * @summary Upload digital certificate (P12)
38
+ * @param {string} rnc RNC (Registro Nacional del Contribuyente) of the company. Must be 9 digits (persona jurídica) or 11 digits (persona física).
39
+ * @param {Blob} file The P12/PFX certificate file.
40
+ * @param {string} password Password to unlock the P12 certificate.
41
+ * @param {*} [options] Override http request option.
42
+ * @throws {RequiredError}
43
+ * @memberof DigitalCertificatesApiInterface
44
+ */
45
+ uploadCertificateRaw(requestParameters: UploadCertificateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UploadCertificateResponse>>;
46
+ /**
47
+ * Uploads the DGII-issued digital signing certificate for a company identified by its RNC. The certificate must be in P12/PFX format. This is required before submitting any e-CF documents.
48
+ * Upload digital certificate (P12)
49
+ */
50
+ uploadCertificate(requestParameters: UploadCertificateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UploadCertificateResponse>;
51
+ }
52
+ /**
53
+ *
54
+ */
55
+ export declare class DigitalCertificatesApi extends runtime.BaseAPI implements DigitalCertificatesApiInterface {
56
+ /**
57
+ * Creates request options for uploadCertificate without sending the request
58
+ */
59
+ uploadCertificateRequestOpts(requestParameters: UploadCertificateRequest): Promise<runtime.RequestOpts>;
60
+ /**
61
+ * Uploads the DGII-issued digital signing certificate for a company identified by its RNC. The certificate must be in P12/PFX format. This is required before submitting any e-CF documents.
62
+ * Upload digital certificate (P12)
63
+ */
64
+ uploadCertificateRaw(requestParameters: UploadCertificateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UploadCertificateResponse>>;
65
+ /**
66
+ * Uploads the DGII-issued digital signing certificate for a company identified by its RNC. The certificate must be in P12/PFX format. This is required before submitting any e-CF documents.
67
+ * Upload digital certificate (P12)
68
+ */
69
+ uploadCertificate(requestParameters: UploadCertificateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UploadCertificateResponse>;
70
+ }
@@ -0,0 +1,109 @@
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
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ import * as runtime from '../runtime';
24
+ import { UploadCertificateResponseFromJSON, } from '../models/index';
25
+ /**
26
+ *
27
+ */
28
+ export class DigitalCertificatesApi extends runtime.BaseAPI {
29
+ /**
30
+ * Creates request options for uploadCertificate without sending the request
31
+ */
32
+ uploadCertificateRequestOpts(requestParameters) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ if (requestParameters['rnc'] == null) {
35
+ throw new runtime.RequiredError('rnc', 'Required parameter "rnc" was null or undefined when calling uploadCertificate().');
36
+ }
37
+ if (requestParameters['file'] == null) {
38
+ throw new runtime.RequiredError('file', 'Required parameter "file" was null or undefined when calling uploadCertificate().');
39
+ }
40
+ if (requestParameters['password'] == null) {
41
+ throw new runtime.RequiredError('password', 'Required parameter "password" was null or undefined when calling uploadCertificate().');
42
+ }
43
+ const queryParameters = {};
44
+ const headerParameters = {};
45
+ if (this.configuration && this.configuration.accessToken) {
46
+ // oauth required
47
+ headerParameters["Authorization"] = yield this.configuration.accessToken("oauth2", ["certificates:upload"]);
48
+ }
49
+ if (this.configuration && this.configuration.accessToken) {
50
+ const token = this.configuration.accessToken;
51
+ const tokenString = yield token("bearerAuth", []);
52
+ if (tokenString) {
53
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
54
+ }
55
+ }
56
+ const consumes = [
57
+ { contentType: 'multipart/form-data' },
58
+ ];
59
+ // @ts-ignore: canConsumeForm may be unused
60
+ const canConsumeForm = runtime.canConsumeForm(consumes);
61
+ let formParams;
62
+ let useForm = false;
63
+ // use FormData to transmit files using content-type "multipart/form-data"
64
+ useForm = canConsumeForm;
65
+ if (useForm) {
66
+ formParams = new FormData();
67
+ }
68
+ else {
69
+ formParams = new URLSearchParams();
70
+ }
71
+ if (requestParameters['file'] != null) {
72
+ formParams.append('file', requestParameters['file']);
73
+ }
74
+ if (requestParameters['password'] != null) {
75
+ formParams.append('password', requestParameters['password']);
76
+ }
77
+ let urlPath = `/{rnc}/certificates`;
78
+ urlPath = urlPath.replace(`{${"rnc"}}`, encodeURIComponent(String(requestParameters['rnc'])));
79
+ return {
80
+ path: urlPath,
81
+ method: 'POST',
82
+ headers: headerParameters,
83
+ query: queryParameters,
84
+ body: formParams,
85
+ };
86
+ });
87
+ }
88
+ /**
89
+ * Uploads the DGII-issued digital signing certificate for a company identified by its RNC. The certificate must be in P12/PFX format. This is required before submitting any e-CF documents.
90
+ * Upload digital certificate (P12)
91
+ */
92
+ uploadCertificateRaw(requestParameters, initOverrides) {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ const requestOptions = yield this.uploadCertificateRequestOpts(requestParameters);
95
+ const response = yield this.request(requestOptions, initOverrides);
96
+ return new runtime.JSONApiResponse(response, (jsonValue) => UploadCertificateResponseFromJSON(jsonValue));
97
+ });
98
+ }
99
+ /**
100
+ * Uploads the DGII-issued digital signing certificate for a company identified by its RNC. The certificate must be in P12/PFX format. This is required before submitting any e-CF documents.
101
+ * Upload digital certificate (P12)
102
+ */
103
+ uploadCertificate(requestParameters, initOverrides) {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ const response = yield this.uploadCertificateRaw(requestParameters, initOverrides);
106
+ return yield response.value();
107
+ });
108
+ }
109
+ }