eCF Connect — API interna del IssuerGateway

POST/api/v1/issuance/invoices

Emite un e-CF 31 (resultado LOCAL; jamás «aceptado por DGII»).

Orden idempotente de emisión de factura de crédito fiscal. Headers: Idempotency-Key (obligatorio, 8-64 [A-Za-z0-9._:-]), X-Correlation-Id (opcional). Ejemplo ficticio: merchantId "comercio-demo-01", documento con emisor RNC 111111111 y una línea de 100.00.

HTTPContenido
202application/json
400application/problem+json
401application/problem+json
403application/problem+json
404application/problem+json
409application/problem+json
413application/problem+json
422application/problem+json
503application/problem+json

POST/api/v1/issuance/credit-notes

Emite una NC e-CF 34 (resultado LOCAL).

Orden idempotente de emisión de nota de crédito con referencia al comprobante afectado. Mismos headers que la emisión 31.

HTTPContenido
202application/json
400application/problem+json
401application/problem+json
403application/problem+json
404application/problem+json
409application/problem+json
413application/problem+json
422application/problem+json
503application/problem+json

POST/api/v1/issuance/document-status

Consulta el estado LOCAL del documento (sin DGII).

Operación de LECTURA (segura: sin efectos y sin Idempotency-Key) que viaja por POST únicamente porque los identificadores fiscales jamás van en URL/query (higiene de logs; GET con cuerpo carece de semántica definida en HTTP). Devuelve exclusivamente el estado local del ciclo de vida; la respuesta no es cacheable (Cache-Control: no-store).

HTTPContenido
200application/json
400application/problem+json
401application/problem+json
403application/problem+json
404application/problem+json
413application/problem+json
503application/problem+json

Esquemas

AdjustmentDto

CampoTipoRequeridoNotas
lineNumber['null', 'integer', 'string']pattern=^-?(?:0|[1-9]\d*)$; format=int32; el tipo admite null explícito
type['null', 'string']el tipo admite null explícito
billingIndicator['null', 'string']el tipo admite null explícito
amount['null', 'number', 'string']pattern=^-?(?:0|[1-9]\d*)(?:\.\d+)?$; format=double; el tipo admite null explícito
valueKind['null', 'string']el tipo admite null explícito
declaredPercent['null', 'number', 'string']pattern=^-?(?:0|[1-9]\d*)(?:\.\d+)?$; format=double; el tipo admite null explícito
description['null', 'string']el tipo admite null explícito

BuyerPartyDto

CampoTipoRequeridoNotas
rnc['null', 'string']el tipo admite null explícito
legalName['null', 'string']el tipo admite null explícito

CreditNoteDocumentDto

CampoTipoRequeridoNotas
issueDate['null', 'string']format=date; el tipo admite null explícito
issuerobject
buyerobject
paymentobject
referenceobject
lines['null', 'array']el tipo admite null explícito
incomeType['null', 'string']el tipo admite null explícito
globalAdjustments['null', 'array']el tipo admite null explícito
taxIncludedPricing['null', 'boolean']el tipo admite null explícito
billingPeriodobject

CreditNoteIssuanceRequestDto

CampoTipoRequeridoNotas
merchantId['null', 'string']el tipo admite null explícito
documentobject

CreditNoteReferenceDto

CampoTipoRequeridoNotas
modifiedNcf['null', 'string']el tipo admite null explícito
modifiedOn['null', 'string']format=date; el tipo admite null explícito
modificationCode['null', 'string']el tipo admite null explícito
reason['null', 'string']el tipo admite null explícito

DocumentStatusRequestDto

CampoTipoRequeridoNotas
merchantId['null', 'string']el tipo admite null explícito
electronicNcf['null', 'string']el tipo admite null explícito

DocumentStatusResponseDto

CampoTipoRequeridoNotas
merchantIdstring
electronicNcfstring
lifecycleIdstringformat=uuid
fiscalStatestring
technicalStatestring
version['integer', 'string']pattern=^-?(?:0|[1-9]\d*)$; format=int32
signedArtifactId['null', 'string']format=uuid; el tipo admite null explícito
attemptCount['integer', 'string']pattern=^-?(?:0|[1-9]\d*)$; format=int32
lastFailureReason['null', 'string']el tipo admite null explícito
createdAtUtcstringformat=date-time
updatedAtUtcstringformat=date-time
correlationIdstring

InvoiceDocumentDto

CampoTipoRequeridoNotas
issueDate['null', 'string']format=date; el tipo admite null explícito
issuerobject
buyerobject
paymentobject
incomeType['null', 'string']el tipo admite null explícito
lines['null', 'array']el tipo admite null explícito
globalAdjustments['null', 'array']el tipo admite null explícito
taxIncludedPricing['null', 'boolean']el tipo admite null explícito
billingPeriodobject
advancePayment['null', 'number', 'string']pattern=^-?(?:0|[1-9]\d*)(?:\.\d+)?$; format=double; el tipo admite null explícito
previousBalance['null', 'number', 'string']pattern=^-?(?:0|[1-9]\d*)(?:\.\d+)?$; format=double; el tipo admite null explícito

InvoiceIssuanceRequestDto

CampoTipoRequeridoNotas
merchantId['null', 'string']el tipo admite null explícito
documentobject

IssuanceResponseDto

CampoTipoRequeridoNotas
outcomestring
businessRequestIdstring
merchantIdstring
documentTypestring
electronicNcfstring
lifecycleId['null', 'string']format=uuid; el tipo admite null explícito
fiscalState['null', 'string']el tipo admite null explícito
correlationIdstring

IssuerPartyDto

CampoTipoRequeridoNotas
rnc['null', 'string']el tipo admite null explícito
legalName['null', 'string']el tipo admite null explícito
address['null', 'string']el tipo admite null explícito

LineDto

CampoTipoRequeridoNotas
lineNumber['null', 'integer', 'string']pattern=^-?(?:0|[1-9]\d*)$; format=int32; el tipo admite null explícito
billingIndicator['null', 'string']el tipo admite null explícito
description['null', 'string']el tipo admite null explícito
kind['null', 'string']el tipo admite null explícito
quantity['null', 'number', 'string']pattern=^-?(?:0|[1-9]\d*)(?:\.\d+)?$; format=double; el tipo admite null explícito
unitPrice['null', 'number', 'string']pattern=^-?(?:0|[1-9]\d*)(?:\.\d+)?$; format=double; el tipo admite null explícito
declaredAmount['null', 'number', 'string']pattern=^-?(?:0|[1-9]\d*)(?:\.\d+)?$; format=double; el tipo admite null explícito
discountAmount['null', 'number', 'string']pattern=^-?(?:0|[1-9]\d*)(?:\.\d+)?$; format=double; el tipo admite null explícito
surchargeAmount['null', 'number', 'string']pattern=^-?(?:0|[1-9]\d*)(?:\.\d+)?$; format=double; el tipo admite null explícito

PaymentDto

CampoTipoRequeridoNotas
type['null', 'string']el tipo admite null explícito
deadline['null', 'string']format=date; el tipo admite null explícito

ProblemDetails

CampoTipoRequeridoNotas
type['null', 'string']Noopcional: puede omitirse; el tipo admite null explícito
title['null', 'string']Noopcional: puede omitirse; el tipo admite null explícito
status['null', 'integer', 'string']Nopattern=^-?(?:0|[1-9]\d*)$; format=int32; opcional: puede omitirse; el tipo admite null explícito
detail['null', 'string']Noopcional: puede omitirse; el tipo admite null explícito
instance['null', 'string']Noopcional: puede omitirse; el tipo admite null explícito

ServicePeriodDto

CampoTipoRequeridoNotas
from['null', 'string']format=date; el tipo admite null explícito
to['null', 'string']format=date; el tipo admite null explícito