Metadata-Version: 2.4
Name: pronesoft_ecf
Version: 0.0.3
Summary: eCF-Pronesoft Integration API
Home-page: 
Author: Pronesoft SRL Support
Author-email: Pronesoft SRL Support <support@pronesoft.com>
License: Proprietary
Project-URL: Repository, https://github.com/ProneSoftSRL/pronesoft-ecf-sdks
Keywords: OpenAPI,OpenAPI-Generator,eCF-Pronesoft Integration API
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: urllib3<3.0.0,>=2.1.0
Requires-Dist: python-dateutil>=2.8.2
Requires-Dist: pydantic>=2.11
Requires-Dist: typing-extensions>=4.7.1
Dynamic: author

# pronesoft-ecf
## Descripción general
API de nivel productivo para emitir Comprobantes Fiscales Electrónicos (e-CF) en la
República Dominicana a través de la plataforma Pronesoft.

## Autenticación — OAuth 2.0 Client Credentials

### Pasos
1. Obtén tus credenciales desde el portal:
   - Sandbox: https://ecf.sandbox.pronesoft.com → Apps → Default Sandbox App
   - Producción: https://ecf.pronesoft.com → Integraciones → Apps → Crear App
2. Solicita un token via POST /oauth/token — válido por 24 horas (86400s).
3. Usa: Authorization: Bearer <accessToken> en cada request.
4. Renueva al recibir HTTP 401. Buena práctica: renovar 5 minutos antes del vencimiento.

### Delegación multi-empresa
Para actuar en nombre de una empresa asociada (sucursal), agrega:
  x-tenant-id: <business-uuid>
NO envíes x-tenant-id cuando actúes como la empresa principal.

### Detalles del Sandbox
- Usa cualquier RNC que comience con SBX (ej. SBX123456) — no se requiere certificado real.
- Las secuencias son automáticas — no es necesario crearlas manualmente.
- El campo environment en el cuerpo del documento DEBE ser TesteCF.

### Scopes disponibles
business:read, business:create, business:update,
members:read, members:invite, members:revoke,
certificates:read, certificates:upload, certificates:update,
documents:read, documents:create, documents:send, documents:receive, documents:update,
approvals:read, approvals:commercial,
sequences:read, sequences:create, sequences:update, sequences:cancel,
business_info:read, certification:read, certification:write, reports:read


This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 1.2.0
- Package version: 0.0.3
- Generator version: 7.21.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visit [https://pronesoft.com](https://pronesoft.com)

## Requirements.

Python 3.9+

## Installation & Usage
### pip install

If the python package is hosted on a repository, you can install directly using:

```sh
pip install git+https://github.com/ProneSoftSRL/pronesoft-ecf-sdks.git
```
(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/ProneSoftSRL/pronesoft-ecf-sdks.git`)

Then import the package:
```python
import pronesoft_ecf
```

### Setuptools

Install via [Setuptools](http://pypi.python.org/pypi/setuptools).

```sh
python setup.py install --user
```
(or `sudo python setup.py install` to install the package for all users)

Then import the package:
```python
import pronesoft_ecf
```

### Tests

Execute `pytest` to run the tests.

## Getting Started

Please follow the [installation procedure](#installation--usage) and then run the following:

```python

import pronesoft_ecf
from pronesoft_ecf.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to https://api.ecf.sandbox.pronesoft.com/api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = pronesoft_ecf.Configuration(
    host = "https://api.ecf.sandbox.pronesoft.com/api/v1"
)

# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.

configuration.access_token = os.environ["ACCESS_TOKEN"]


# Enter a context with an instance of the API client
with pronesoft_ecf.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = pronesoft_ecf.AssociatedCompaniesApi(api_client)
    email = 'email_example' # str | 
    password = 'password_example' # str | 
    name = 'name_example' # str | 
    rnc = 'rnc_example' # str | 
    phone = 'phone_example' # str | 
    address = 'address_example' # str | 
    city = 'city_example' # str | 
    country = 'country_example' # str | 
    printer_type = pronesoft_ecf.PrintFormat() # PrintFormat | 
    first_name = 'first_name_example' # str |  (optional)
    last_name = 'last_name_example' # str |  (optional)
    job_title = 'job_title_example' # str |  (optional)
    website = 'website_example' # str |  (optional)
    category = 'category_example' # str |  (optional)
    monthly_sales_range = 'monthly_sales_range_example' # str |  (optional)
    logo = None # bytes |  (optional)

    try:
        # Crear empresa asociada / sucursal
        api_response = api_instance.create_associated_company(email, password, name, rnc, phone, address, city, country, printer_type, first_name=first_name, last_name=last_name, job_title=job_title, website=website, category=category, monthly_sales_range=monthly_sales_range, logo=logo)
        print("The response of AssociatedCompaniesApi->create_associated_company:\n")
        pprint(api_response)
    except ApiException as e:
        print("Exception when calling AssociatedCompaniesApi->create_associated_company: %s\n" % e)

```

## Documentation for API Endpoints

All URIs are relative to *https://api.ecf.sandbox.pronesoft.com/api/v1*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*AssociatedCompaniesApi* | [**create_associated_company**](docs/AssociatedCompaniesApi.md#create_associated_company) | **POST** /associated-companies | Crear empresa asociada / sucursal
*AssociatedCompaniesApi* | [**delete_associated_company**](docs/AssociatedCompaniesApi.md#delete_associated_company) | **DELETE** /associated-companies/{companyId} | Eliminar empresa asociada
*AssociatedCompaniesApi* | [**get_company_document_metrics**](docs/AssociatedCompaniesApi.md#get_company_document_metrics) | **GET** /associated-companies/{companyId}/documents-metrics | Métricas de documentos de la empresa
*AssociatedCompaniesApi* | [**get_company_metrics**](docs/AssociatedCompaniesApi.md#get_company_metrics) | **GET** /associated-companies/{companyId}/metrics | Métricas de la empresa
*AssociatedCompaniesApi* | [**list_associated_companies**](docs/AssociatedCompaniesApi.md#list_associated_companies) | **GET** /associated-companies | Listar empresas asociadas / sucursales
*AssociatedCompaniesApi* | [**update_associated_company**](docs/AssociatedCompaniesApi.md#update_associated_company) | **PUT** /associated-companies/{companyId} | Actualizar empresa asociada
*AuthenticationApi* | [**get_access_token**](docs/AuthenticationApi.md#get_access_token) | **POST** /oauth/token | Obtener token de acceso (OAuth 2.0)
*AutomatedCertificationApi* | [**download_certification**](docs/AutomatedCertificationApi.md#download_certification) | **GET** /dgii-ecf/automated-certification/{id}/download | Descargar ZIP de certificación
*AutomatedCertificationApi* | [**get_certification_status**](docs/AutomatedCertificationApi.md#get_certification_status) | **GET** /dgii-ecf/automated-certification/{id}/status | Estado del proceso de certificación
*AutomatedCertificationApi* | [**list_certification_niches**](docs/AutomatedCertificationApi.md#list_certification_niches) | **GET** /dgii-ecf/automated-certification/niches | Listar nichos de certificación
*AutomatedCertificationApi* | [**start_certification**](docs/AutomatedCertificationApi.md#start_certification) | **POST** /dgii-ecf/automated-certification/start | Iniciar proceso de certificación
*CommercialApprovalsApi* | [**get_commercial_approval_by_id**](docs/CommercialApprovalsApi.md#get_commercial_approval_by_id) | **GET** /documents/approvals/{id} | Obtener aprobación comercial por ID
*CommercialApprovalsApi* | [**list_commercial_approvals**](docs/CommercialApprovalsApi.md#list_commercial_approvals) | **GET** /documents/approvals | Listar aprobaciones comerciales
*DigitalCertificatesApi* | [**upload_certificate**](docs/DigitalCertificatesApi.md#upload_certificate) | **POST** /{rnc}/certificates | Subir certificado digital (P12/PFX)
*DocumentsReceivedApi* | [**get_received_document_by_id**](docs/DocumentsReceivedApi.md#get_received_document_by_id) | **GET** /documents/received/{id} | Obtener documento recibido por ID
*DocumentsReceivedApi* | [**get_received_document_stats_by_supplier**](docs/DocumentsReceivedApi.md#get_received_document_stats_by_supplier) | **GET** /documents/received/stats/by-supplier | Top 10 proveedores por volumen de documentos recibidos
*DocumentsReceivedApi* | [**get_received_document_stats_summary**](docs/DocumentsReceivedApi.md#get_received_document_stats_summary) | **GET** /documents/received/stats/summary | Estadísticas de documentos recibidos
*DocumentsReceivedApi* | [**list_received_documents**](docs/DocumentsReceivedApi.md#list_received_documents) | **GET** /documents/received | Listar documentos recibidos
*DocumentsSentApi* | [**download_sent_document_xml**](docs/DocumentsSentApi.md#download_sent_document_xml) | **GET** /documents/download | Descargar XML del documento
*DocumentsSentApi* | [**get_sent_document_by_id**](docs/DocumentsSentApi.md#get_sent_document_by_id) | **GET** /documents/{id} | Obtener detalle del documento
*DocumentsSentApi* | [**get_sent_document_logs**](docs/DocumentsSentApi.md#get_sent_document_logs) | **GET** /documents/logs/{id} | Logs de procesamiento del documento
*DocumentsSentApi* | [**get_sent_document_stats**](docs/DocumentsSentApi.md#get_sent_document_stats) | **GET** /documents/stats/summary | Estadísticas de documentos enviados
*DocumentsSentApi* | [**get_sent_document_stats_by_environment**](docs/DocumentsSentApi.md#get_sent_document_stats_by_environment) | **GET** /documents/stats/by-environment | Estadísticas agrupadas por ambiente y estado
*DocumentsSentApi* | [**get_sent_document_status_options**](docs/DocumentsSentApi.md#get_sent_document_status_options) | **GET** /documents/status-options | Opciones de filtro de estado disponibles
*DocumentsSentApi* | [**list_sent_documents**](docs/DocumentsSentApi.md#list_sent_documents) | **GET** /documents/sent | Listar documentos enviados
*ReportsApi* | [**export606**](docs/ReportsApi.md#export606) | **GET** /dgii/606/export | Exportar Formato 606 (Compras)
*ReportsApi* | [**export_sent_documents**](docs/ReportsApi.md#export_sent_documents) | **GET** /dgii/sent/export | Exportar reporte de documentos enviados
*TaxSequencesApi* | [**create_tax_sequence**](docs/TaxSequencesApi.md#create_tax_sequence) | **POST** /tax-sequences/create | Crear nueva secuencia de NCF
*TaxSequencesApi* | [**get_next_number**](docs/TaxSequencesApi.md#get_next_number) | **GET** /tax-sequences/next | Obtener siguiente número fiscal disponible
*TaxSequencesApi* | [**list_tax_sequences**](docs/TaxSequencesApi.md#list_tax_sequences) | **GET** /tax-sequences | Listar secuencias de NCF
*TaxSequencesApi* | [**update_tax_sequence**](docs/TaxSequencesApi.md#update_tax_sequence) | **PATCH** /tax-sequences/update | Actualizar secuencia de NCF
*TaxSequencesApi* | [**void_tax_sequence**](docs/TaxSequencesApi.md#void_tax_sequence) | **POST** /tax-sequences/void | Anular rango de números fiscales
*WebhookConfigurationApi* | [**get_webhook**](docs/WebhookConfigurationApi.md#get_webhook) | **GET** /{rnc}/webhooks/{webhookId} | Detalle de un webhook
*WebhookConfigurationApi* | [**get_webhook_stats**](docs/WebhookConfigurationApi.md#get_webhook_stats) | **GET** /{rnc}/webhooks/{webhookId}/stats | Estadísticas de entregas del webhook
*WebhookConfigurationApi* | [**list_webhooks**](docs/WebhookConfigurationApi.md#list_webhooks) | **GET** /{rnc}/webhooks | Listar configuraciones de webhooks
*ECFSubmissionApi* | [**get_ecf_stats**](docs/ECFSubmissionApi.md#get_ecf_stats) | **GET** /{environment}/ecf/responses/stats | Obtener estadísticas de envíos (últimos 30 días)
*ECFSubmissionApi* | [**get_ecf_status**](docs/ECFSubmissionApi.md#get_ecf_status) | **GET** /{environment}/ecf/status/{id} | Consultar estado del documento por ID interno
*ECFSubmissionApi* | [**get_ecf_submission_history**](docs/ECFSubmissionApi.md#get_ecf_submission_history) | **GET** /{environment}/ecf/responses/history | Historial de envíos (paginado)
*ECFSubmissionApi* | [**submit_ecf**](docs/ECFSubmissionApi.md#submit_ecf) | **POST** /{environment}/ecf/submit | Enviar documento e-CF a la DGII


## Documentation For Models

 - [AccountType](docs/AccountType.md)
 - [AdditionalInfo](docs/AdditionalInfo.md)
 - [AdditionalTax](docs/AdditionalTax.md)
 - [AlternativeCurrency](docs/AlternativeCurrency.md)
 - [ApprovalItem](docs/ApprovalItem.md)
 - [ApprovalListResponse](docs/ApprovalListResponse.md)
 - [AssociatedCompany](docs/AssociatedCompany.md)
 - [AssociatedCompanySubscription](docs/AssociatedCompanySubscription.md)
 - [AssociatedCompanySubscriptionPlan](docs/AssociatedCompanySubscriptionPlan.md)
 - [BillingIndicator](docs/BillingIndicator.md)
 - [BillingInvoiceReadyPayload](docs/BillingInvoiceReadyPayload.md)
 - [BranchCreatedPayload](docs/BranchCreatedPayload.md)
 - [BranchStatusChangedPayload](docs/BranchStatusChangedPayload.md)
 - [Buyer](docs/Buyer.md)
 - [CertificateExpiringPayload](docs/CertificateExpiringPayload.md)
 - [CertificationCompletedPayload](docs/CertificationCompletedPayload.md)
 - [CertificationNiche](docs/CertificationNiche.md)
 - [CertificationNicheNicheItemsInner](docs/CertificationNicheNicheItemsInner.md)
 - [CertificationStatus](docs/CertificationStatus.md)
 - [CommercialApprovalPayload](docs/CommercialApprovalPayload.md)
 - [CompanyDocumentMetrics](docs/CompanyDocumentMetrics.md)
 - [CompanyDocumentMetricsGroupByStatusInner](docs/CompanyDocumentMetricsGroupByStatusInner.md)
 - [CompanyDocumentMetricsGroupByStatusInnerCount](docs/CompanyDocumentMetricsGroupByStatusInnerCount.md)
 - [CompanyDocumentMetricsMainBusiness](docs/CompanyDocumentMetricsMainBusiness.md)
 - [CompanyDocumentMetricsTotals](docs/CompanyDocumentMetricsTotals.md)
 - [CompanyMetrics](docs/CompanyMetrics.md)
 - [CompanyMetricsDocumentsStatus](docs/CompanyMetricsDocumentsStatus.md)
 - [ContingencyActivatedPayload](docs/ContingencyActivatedPayload.md)
 - [CreateAssociatedCompany201Response](docs/CreateAssociatedCompany201Response.md)
 - [CreateTaxSequence201Response](docs/CreateTaxSequence201Response.md)
 - [CreateTaxSequenceRequest](docs/CreateTaxSequenceRequest.md)
 - [DeleteAssociatedCompany200Response](docs/DeleteAssociatedCompany200Response.md)
 - [DgiiMessage](docs/DgiiMessage.md)
 - [DiscountOrSurcharge](docs/DiscountOrSurcharge.md)
 - [DocumentReceivedPayload](docs/DocumentReceivedPayload.md)
 - [DocumentStatsResponse](docs/DocumentStatsResponse.md)
 - [DocumentStatsResponseByStatusValue](docs/DocumentStatsResponseByStatusValue.md)
 - [DocumentStatus](docs/DocumentStatus.md)
 - [DocumentStatusChangedPayload](docs/DocumentStatusChangedPayload.md)
 - [DocumentValidationErrorPayload](docs/DocumentValidationErrorPayload.md)
 - [EcfHistoryItem](docs/EcfHistoryItem.md)
 - [EcfStatsResponse](docs/EcfStatsResponse.md)
 - [EcfStatusResponse](docs/EcfStatusResponse.md)
 - [EcfSubmitResponse](docs/EcfSubmitResponse.md)
 - [EcfSubmitResponseCompanyIdentification](docs/EcfSubmitResponseCompanyIdentification.md)
 - [ElectronicDocument](docs/ElectronicDocument.md)
 - [Environment](docs/Environment.md)
 - [ErrorResponse](docs/ErrorResponse.md)
 - [GetEcfSubmissionHistory200Response](docs/GetEcfSubmissionHistory200Response.md)
 - [GetNextNumber200Response](docs/GetNextNumber200Response.md)
 - [GetNextNumber200ResponseData](docs/GetNextNumber200ResponseData.md)
 - [GetReceivedDocumentStatsBySupplier200ResponseInner](docs/GetReceivedDocumentStatsBySupplier200ResponseInner.md)
 - [GetSentDocumentLogs200ResponseInner](docs/GetSentDocumentLogs200ResponseInner.md)
 - [GetSentDocumentStatusOptions200ResponseInner](docs/GetSentDocumentStatusOptions200ResponseInner.md)
 - [InvoiceType](docs/InvoiceType.md)
 - [InvoiceTypeSequence](docs/InvoiceTypeSequence.md)
 - [Item](docs/Item.md)
 - [ItemAdditionalTax](docs/ItemAdditionalTax.md)
 - [ItemAlternativeCurrency](docs/ItemAlternativeCurrency.md)
 - [ItemAmount](docs/ItemAmount.md)
 - [ItemCodesInner](docs/ItemCodesInner.md)
 - [ItemDiscountInner](docs/ItemDiscountInner.md)
 - [ItemMiningInfo](docs/ItemMiningInfo.md)
 - [ItemQuantity](docs/ItemQuantity.md)
 - [ItemSurchargeInner](docs/ItemSurchargeInner.md)
 - [ItemUnitPrice](docs/ItemUnitPrice.md)
 - [ItemWithheldITBISAmount](docs/ItemWithheldITBISAmount.md)
 - [LegalStatus](docs/LegalStatus.md)
 - [ListTaxSequences200Response](docs/ListTaxSequences200Response.md)
 - [MemberInvitedPayload](docs/MemberInvitedPayload.md)
 - [MemberJoinedPayload](docs/MemberJoinedPayload.md)
 - [MemberRemovedPayload](docs/MemberRemovedPayload.md)
 - [OAuthTokenRequest](docs/OAuthTokenRequest.md)
 - [OAuthTokenResponse](docs/OAuthTokenResponse.md)
 - [Page](docs/Page.md)
 - [PaginationMeta](docs/PaginationMeta.md)
 - [PaymentForm](docs/PaymentForm.md)
 - [PaymentMethod](docs/PaymentMethod.md)
 - [PlanPaymentFailedPayload](docs/PlanPaymentFailedPayload.md)
 - [PlanUsageAlertPayload](docs/PlanUsageAlertPayload.md)
 - [PrintFormat](docs/PrintFormat.md)
 - [ProcessingLog](docs/ProcessingLog.md)
 - [PublicDocumentStatus](docs/PublicDocumentStatus.md)
 - [RateLimitErrorResponse](docs/RateLimitErrorResponse.md)
 - [ReceivedDocument](docs/ReceivedDocument.md)
 - [ReceivedDocumentListResponse](docs/ReceivedDocumentListResponse.md)
 - [ReceivedDocumentStatsResponse](docs/ReceivedDocumentStatsResponse.md)
 - [ReferenceInfo](docs/ReferenceInfo.md)
 - [SecurityApiKeyRotatedPayload](docs/SecurityApiKeyRotatedPayload.md)
 - [SecurityNewLoginPayload](docs/SecurityNewLoginPayload.md)
 - [SentDocumentDetail](docs/SentDocumentDetail.md)
 - [SentDocumentListResponse](docs/SentDocumentListResponse.md)
 - [SentDocumentSummary](docs/SentDocumentSummary.md)
 - [SentDocumentSummaryBusiness](docs/SentDocumentSummaryBusiness.md)
 - [SequenceDepletedPayload](docs/SequenceDepletedPayload.md)
 - [SequenceVoidedPayload](docs/SequenceVoidedPayload.md)
 - [StartCertification200Response](docs/StartCertification200Response.md)
 - [StartCertificationRequest](docs/StartCertificationRequest.md)
 - [Subquantity](docs/Subquantity.md)
 - [Subtotal](docs/Subtotal.md)
 - [TaxSequence](docs/TaxSequence.md)
 - [TaxSequenceCreated](docs/TaxSequenceCreated.md)
 - [Totals](docs/Totals.md)
 - [TotalsItbisRate1](docs/TotalsItbisRate1.md)
 - [TotalsItbisRate2](docs/TotalsItbisRate2.md)
 - [TotalsItbisRate3](docs/TotalsItbisRate3.md)
 - [TotalsTotalAmount](docs/TotalsTotalAmount.md)
 - [Transport](docs/Transport.md)
 - [UpdateTaxSequenceRequest](docs/UpdateTaxSequenceRequest.md)
 - [UploadCertificateResponse](docs/UploadCertificateResponse.md)
 - [VoidTaxSequence200Response](docs/VoidTaxSequence200Response.md)
 - [VoidTaxSequence200ResponseData](docs/VoidTaxSequence200ResponseData.md)
 - [VoidTaxSequenceRequest](docs/VoidTaxSequenceRequest.md)
 - [WebhookConfigDetail](docs/WebhookConfigDetail.md)
 - [WebhookConfigResponse](docs/WebhookConfigResponse.md)
 - [WebhookEventType](docs/WebhookEventType.md)
 - [WebhookNotificationPayload](docs/WebhookNotificationPayload.md)
 - [WebhookNotificationPayloadData](docs/WebhookNotificationPayloadData.md)
 - [WebhookStats](docs/WebhookStats.md)
 - [WebhookStatsStats](docs/WebhookStatsStats.md)


<a id="documentation-for-authorization"></a>
## Documentation For Authorization


Authentication schemes defined for the API:
<a id="bearerAuth"></a>
### bearerAuth

- **Type**: Bearer authentication (JWT)

<a id="oauth2"></a>
### oauth2

- **Type**: OAuth
- **Flow**: application
- **Authorization URL**: 
- **Scopes**: 
 - **business:read**: Consultar datos de la empresa.
 - **business:create**: Crear una nueva empresa.
 - **business:update**: Actualizar datos de la empresa.
 - **members:read**: Ver miembros del equipo.
 - **members:invite**: Invitar nuevos miembros.
 - **members:revoke**: Revocar acceso de miembros.
 - **certificates:read**: Ver certificados digitales.
 - **certificates:upload**: Subir nuevos certificados.
 - **certificates:update**: Actualizar certificados existentes.
 - **documents:read**: Listar y consultar detalles de documentos.
 - **documents:create**: Crear borradores o documentos internos.
 - **documents:send**: Enviar e-CF a la DGII.
 - **documents:receive**: Recibir e-CF de terceros.
 - **documents:update**: Modificar metadatos de documentos.
 - **approvals:read**: Ver estados de aprobación.
 - **approvals:commercial**: Realizar aprobaciones o rechazos comerciales.
 - **sequences:read**: Ver rangos de NCF/e-NCF.
 - **sequences:create**: Solicitar o agregar nuevas secuencias.
 - **sequences:update**: Modificar configuraciones de secuencias.
 - **sequences:cancel**: Cancelar secuencias no utilizadas.
 - **business_info:read**: Acceder a estadísticas y métricas del dashboard.
 - **certification:read**: Ver progreso de certificación DGII.
 - **certification:write**: Ejecutar pruebas de certificación automática DGII.
 - **reports:read**: Generar y exportar reportes (ej. formato 606).


## Author

support@pronesoft.com


