Saltar al contenido principal

Etribux API (1.0.0)

Download OpenAPI specification:Download

Etribux API for electronic invoicing (e-CF) in the Dominican Republic.

Guides (Spanish): https://docs.etribux.com. The {environment} path segment is testecf (pre-certification), certecf (certification) or ecf (production); a credential from another environment gets 403 ENVIRONMENT_MISMATCH. Every mutation accepts Idempotency-Key. DGII terms are never translated (encf, rnc, itbis, rfce, track_id).

Documents

Issue, validate and query e-CF.

Issue an e-CF

Validates, signs, stores and queues the document for transmission to the DGII. The e-NCF is assigned by the client's system from its DGII-authorized ranges and travels in encf: the platform does not hand out sequences. It checks the format, that it matches ecf_type, that sequence_expiration_date is not before issue_date (SEQUENCE_EXHAUSTED) and that no other active document of the same taxpayer and environment uses it (409 CONFLICT). The DGII status is resolved asynchronously.

With validate=true the platform runs the full validation (rules, official schema and duplicate e-NCF) without signing, storing or transmitting.

Authorizations:
ApiKeyAuth
query Parameters
validate
boolean
Default: false

Validate without signing, storing or transmitting

header Parameters
Idempotency-Key
string <= 128 characters
Request Body schema: application/json
required
ecf_type
required
integer
Enum: 31 32 33 34 41 43 44 45 46 47
encf
required
string^E[0-9]{12}$

e-NCF assigned by the client's system. Its two type digits must match ecf_type.

sequence_expiration_date
string

DD-MM-YYYY. Expiration of the e-NCF range. Required except for types 32 and 34.

external_id
string

Document id in the client's system

branch
string
issue_date
required
string

DD-MM-YYYY

income_type
string
payment_type
integer

1 cash, 2 credit, 3 free

credit_note_indicator
integer
Enum: 0 1

Type 34; calculated when omitted

deferred_delivery_indicator
integer
Enum: 0 1
taxed_amount_indicator
integer
Enum: 0 1

0 prices without ITBIS, 1 prices include ITBIS

currency
string
Default: "DOP"
Value: "DOP"

Only DOP is accepted. Any other currency is rejected with 422 VALIDATION_FAILED: foreign-currency issuance is not implemented, so accepting it would emit a document denominated in DOP with the foreign nominal amount.

exchange_rate
number

Not available. Sending it is rejected with 422 VALIDATION_FAILED, including alongside currency DOP, because it signals that the issuing system believes it is billing in another currency.

object
object

Required or not allowed depending on the type (see the public documentation).

required
Array of objects (DocumentLine) [ 1 .. 1000 ] items
object (DocumentTotals)
object

Required in debit (33) and credit (34) notes and contingency replacements.

Responses

Request samples

Content type
application/json
{
  • "ecf_type": 31,
  • "encf": "E310000000001",
  • "sequence_expiration_date": "31-12-2028",
  • "external_id": "string",
  • "branch": "string",
  • "issue_date": "15-09-2026",
  • "income_type": "01",
  • "payment_type": 0,
  • "credit_note_indicator": 0,
  • "deferred_delivery_indicator": 0,
  • "taxed_amount_indicator": 0,
  • "currency": "DOP",
  • "exchange_rate": 0,
  • "issuer": {
    },
  • "buyer": {
    },
  • "items": [
    ],
  • "totals": {
    },
  • "reference": {
    }
}

Response samples

Content type
application/json
{
  • "valid": true,
  • "ecf_type": 0,
  • "transmission_route": "recepcion",
  • "calculated_totals": {
    },
  • "warnings": [
    ]
}

List or search issued documents

Authorizations:
ApiKeyAuth
query Parameters
encf
string
external_id
string
track_id
string
ecf_type
integer
status
string (DgiiStatus)
Enum: "pending" "queued" "submitted" "in_process" "accepted" "accepted_conditional" "rejected" "void"

DGII status

from
string

Issue date from (YYYY-MM-DD or DD-MM-YYYY)

to
string

Issue date to (YYYY-MM-DD or DD-MM-YYYY)

buyer_rnc
string
cursor
string
limit
integer <= 200
Default: 50

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "next_cursor": "string",
  • "total": 0
}

Issue documents in batch

Up to 500 documents. Each one is processed independently and reported by position.

Authorizations:
ApiKeyAuth
header Parameters
Idempotency-Key
string <= 128 characters
Request Body schema: application/json
required
required
Array of objects (DocumentRequest) <= 500 items
Array (<= 500 items)
ecf_type
required
integer
Enum: 31 32 33 34 41 43 44 45 46 47
encf
required
string^E[0-9]{12}$

e-NCF assigned by the client's system. Its two type digits must match ecf_type.

sequence_expiration_date
string

DD-MM-YYYY. Expiration of the e-NCF range. Required except for types 32 and 34.

external_id
string

Document id in the client's system

branch
string
issue_date
required
string

DD-MM-YYYY

income_type
string
payment_type
integer

1 cash, 2 credit, 3 free

credit_note_indicator
integer
Enum: 0 1

Type 34; calculated when omitted

deferred_delivery_indicator
integer
Enum: 0 1
taxed_amount_indicator
integer
Enum: 0 1

0 prices without ITBIS, 1 prices include ITBIS

currency
string
Default: "DOP"
Value: "DOP"

Only DOP is accepted. Any other currency is rejected with 422 VALIDATION_FAILED: foreign-currency issuance is not implemented, so accepting it would emit a document denominated in DOP with the foreign nominal amount.

exchange_rate
number

Not available. Sending it is rejected with 422 VALIDATION_FAILED, including alongside currency DOP, because it signals that the issuing system believes it is billing in another currency.

object
object

Required or not allowed depending on the type (see the public documentation).

required
Array of objects (DocumentLine) [ 1 .. 1000 ] items
object (DocumentTotals)
object

Required in debit (33) and credit (34) notes and contingency replacements.

Responses

Request samples

Content type
application/json
{
  • "documents": [
    ]
}

Response samples

Content type
application/json
{
  • "batch_id": "4da22c97-b7d5-4e31-8c3a-03870ebc7b20",
  • "accepted": 0,
  • "rejected": [
    ],
  • "results": [
    ]
}

Get the status of up to 100 documents

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
encfs
required
Array of strings <= 100 items

Responses

Request samples

Content type
application/json
{
  • "encfs": [
    ]
}

Response samples

Content type
application/json
{
  • "total": 0,
  • "results": [
    ]
}

Get a document

Authorizations:
ApiKeyAuth
path Parameters
id
required
string

Document id or e-NCF

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "external_id": "string",
  • "environment": "testecf",
  • "ecf_type": 0,
  • "encf": "E310000000123",
  • "issue_date": "15-09-2026",
  • "sequence_expiration_date": "string",
  • "signed_at": "2019-08-24T14:15:22Z",
  • "total_amount": "1180.00",
  • "currency": "DOP",
  • "is_rfce": true,
  • "security_code": "string",
  • "qr_url": "http://example.com",
  • "track_id": "string",
  • "dgii_status": "pending",
  • "commercial_status": "none",
  • "dgii_messages": [
    ],
  • "xml_url": "string",
  • "pdf_url": "string",
  • "contingency": true,
  • "contingency_period_id": "6e7bc81f-9b72-41ad-92e5-34826f549698"
}

Download the signed XML

The XML as transmitted. For type 32 below DOP 250,000, format=rfce returns the summary sent to the DGII.

Authorizations:
ApiKeyAuth
path Parameters
id
required
string
query Parameters
format
string
Default: "ecf"
Enum: "ecf" "rfce"

Responses

Response samples

Content type
application/json
{
  • "code": "ENVIRONMENT_MISMATCH",
  • "message": "string",
  • "request_id": "string",
  • "docs_url": "http://example.com"
}

Download the printed representation

Authorizations:
ApiKeyAuth
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "code": "ENVIRONMENT_MISMATCH",
  • "message": "string",
  • "request_id": "string",
  • "docs_url": "http://example.com"
}

Public view link of the document

A signed, time-limited link to the public view of the document (https://ecf.etribux.com/{environment}/consulta/{token}), to share with the buyer.

Authorizations:
ApiKeyAuth
path Parameters
id
required
string
query Parameters
ttl_minutes
integer
Default: 43200

Link validity in minutes (default 43200, 30 days)

Responses

Response samples

Content type
application/json
{}

Inbound documents

e-CF received from other issuers and commercial approval.

List e-CF received from other issuers

Authorizations:
ApiKeyAuth
query Parameters
encf
string
issuer_rnc
string
ecf_type
integer
ack_status
string
Enum: "accepted" "rejected"
commercial_decision
string
Enum: "pending" "approved" "rejected" "not_applicable"
from
string
to
string
cursor
string
limit
integer

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "next_cursor": "string",
  • "total": 0
}

Get an inbound document

Authorizations:
ApiKeyAuth
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "environment": "testecf",
  • "ecf_type": 0,
  • "encf": "string",
  • "issuer_rnc": "string",
  • "issuer_legal_name": "string",
  • "buyer_rnc": "string",
  • "issue_date": "string",
  • "total_amount": "1180.00",
  • "security_code": "string",
  • "signature_valid": true,
  • "schema_valid": true,
  • "validation_errors": [
    ],
  • "ack_status": "accepted",
  • "ack_code": 0,
  • "commercial_decision": "pending",
  • "received_at": "2019-08-24T14:15:22Z"
}

Approve or reject an inbound e-CF commercially

Only for types 31, 33, 34, 44 and 45 with an accepted receipt acknowledgement. Etribux signs the commercial approval (ACECF), delivers it to the issuer and notifies the DGII. A document accepts a single decision.

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>
header Parameters
Idempotency-Key
string <= 128 characters
Request Body schema: application/json
required
status
required
string
Enum: "approved" "rejected"
reason
string <= 250 characters

Required when rejected

Responses

Request samples

Content type
application/json
{
  • "status": "approved",
  • "reason": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6",
  • "status": "approved",
  • "delivery": "sent",
  • "issuer_delivered": true,
  • "issuer_detail": "string"
}

Ask the DGII simulator for a test e-CF (TesteCF only)

testecf only. Asks the DGII issuer-receiver simulator to issue an e-CF to the taxpayer's receiver, to test reception and commercial approval end to end.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
ecf_type
required
integer
Enum: 31 33 34 44 45

Responses

Request samples

Content type
application/json
{
  • "ecf_type": 31
}

Response samples

Content type
application/json
{
  • "status": "requested",
  • "dgii_response": "string",
  • "receiver_url": "string"
}

Certificates

The taxpayer's digital certificate.

Get the active certificate

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "holder": "string",
  • "rnc": "string",
  • "issuer": "string",
  • "valid_from": "2019-08-24T14:15:22Z",
  • "valid_to": "2019-08-24T14:15:22Z",
  • "fingerprint_sha256": "string",
  • "status": "active",
  • "days_to_expiry": 0
}

Upload a .p12 certificate

Authorizations:
ApiKeyAuth
Request Body schema: multipart/form-data
required
file
required
string <binary>
password
required
string <password>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "holder": "string",
  • "rnc": "string",
  • "issuer": "string",
  • "valid_from": "2019-08-24T14:15:22Z",
  • "valid_to": "2019-08-24T14:15:22Z",
  • "fingerprint_sha256": "string",
  • "status": "active",
  • "days_to_expiry": 0
}