open-nfse / DpsCounter
Interface: DpsCounter
Defined in: src/nfse/dps-counter.ts:25
Fonte atômica do próximo nDPS. O NfseClient.emitir() consulta esse provider depois de passar nas validações offline (CPF/CNPJ, XSD, CEP) e antes de assinar e enviar ao SEFIN — assim uma DPS quebrada não queima um número da série.
Contrato:
next()deve ser atômico para um mesmo{emitenteCnpj, serie}. UseUPDATE ... RETURNINGno Postgres,INCRno Redis, ou equivalente.- Nunca
SELECT+INSERTem duas queries: race condition garantida. - Retorno: string com 1 a 15 dígitos, sem zeros à esquerda (primeiro dígito
[1-9]per RTCTSNumDPS).
A lib não prescreve onde persistir o counter — o schema SQL sugerido em docs/guide/integracao.md usa uma tabela dps_counters com PK composta (cnpj, serie).
Methods
next()
ts
next(scope: DpsCounterScope): Promise<string>;Defined in: src/nfse/dps-counter.ts:26
Parameters
| Parameter | Type |
|---|---|
scope | DpsCounterScope |
Returns
Promise<string>