@ brasil-财政/核心
(原始内容存档于2018-03-26) (英语). Infraestrutura compatrilhada para documentos fiscais eletronicos brasileiros. Certificado Digital, Assinatura XML, transporte mTLS, helpers e 常数——tudo que NFe, CTe e MDFe tem em comum. 中国植物物种信息数据库.
派克服务?
Este Pacote eh 一个基地做projetos @brasil-fiscal/*来点逻辑的 身份证 (原始内容存档于2018-03-26) (英语). Enter NFe, CTe e MDFe:
- Carregar 认证数字 A1 (.pfx/.p12)
- Assinar XML com XMLDSig (RSA-SHA1) (英语)
- 通过 HTTPS com mTLS 的 Comunicar com a SEFAZ
- C14N de XML 数据
- Gerar chave de acesso (44个数字)
- CNPJ e 森林合作伙伴关系
- Codigos IBGE 数字化UFs
- 错误基础类
(原始内容存档于2018-10-29) (英语). Voce provavelmente nao pricisa instalar este pacote pretamente. Ele eh uma dependencia dos pacotes de documento pacio financial: 国家财政局 国家财政局
| 帕科特语Name | 文档 |
|---|---|
@brasil-fiscal/nfe | NFE / NFC-e(诺塔财政公司) |
@brasil-fiscal/cte | CTe(运输协会) |
@brasil-fiscal/mdfe | MDFe (菲斯凯斯文件公司) |
印斯达拉考
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}嘿 哥们儿 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}嘿 哥们儿
npm install @brasil-fiscal/core
API 密码
数字证书
import { A1CertificateProvider } from '@brasil-fiscal/core';
const provider = new A1CertificateProvider(pfxBuffer, 'senha');
const cert = await provider.load();
// cert.privateKey, cert.certPem, cert.pfx, cert.password, cert.notAfter
Asinatura XML 图像
import { DefaultXmlSigner } from '@brasil-fiscal/core';
const signer = new DefaultXmlSigner();
const xmlAssinado = signer.sign(xml, certificateData);
O 签名人探测器infNFe, (中文(简体) ), infCte, (中文(简体) ), infMDFe, (中文(简体) ), infEvento, (中文(简体) ), infInut(原始内容存档于2018-10-26). e assina corretamente.
运输 mTLS
import { NodeHttpSefazTransport } from '@brasil-fiscal/core';
const transport = new NodeHttpSefazTransport({ timeout: 30000 });
const response = await transport.send({
url: 'https://nfe.sefaz.mt.gov.br/...',
soapAction: '...',
xml: envelopeXml,
pfx: cert.pfx,
password: cert.password
});
帮助 XML
import { tag, tagGroup, formatDate, escapeXml, padLeft } from '@brasil-fiscal/core';
tag('CNPJ', '12345678000195'); // <CNPJ>12345678000195</CNPJ>
tag('xNome', undefined); // '' (omite tags vazias)
tagGroup('emit', tag('CNPJ', '123')); // <emit><CNPJ>123</CNPJ></emit>
formatDate(new Date(), '-03:00'); // '2024-04-28T10:00:00-03:00'
SOPAP 软件
import { extractSoapBody, extractTag } from '@brasil-fiscal/core';
const body = extractSoapBody(soapResponseXml); // conteudo dentro de <soap:Body>
const cStat = extractTag(body, 'cStat'); // conteudo de <cStat>
阿克塞多骑士团
import { generateAccessKey, generateNumericCode } from '@brasil-fiscal/core';
const chave = generateAccessKey({
uf: '51',
dataEmissao: new Date(),
cnpj: '12345678000195',
modelo: '55', // 55=NFe, 57=CTe, 58=MDFe, 65=NFCe
serie: 1,
numero: 1,
tipoEmissao: 1,
codigoNumerico: generateNumericCode()
});
// 44 digitos com digito verificador
维拉多克·德·多克托斯
import { isValidCnpj, isValidCpf, formatCnpj, formatCpf } from '@brasil-fiscal/core';
isValidCnpj('11222333000181'); // true
isValidCpf('52998224725'); // true
formatCnpj('11222333000181'); // '11.222.333/0001-81'
formatCpf('52998224725'); // '529.982.247-25'
常数
import { UF_CODES } from '@brasil-fiscal/core';
UF_CODES['MT']; // '51'
UF_CODES['SP']; // '35'
埃尔罗斯
import { DFeError, CertificateError, SefazRejectError } from '@brasil-fiscal/core';
// DFeError — erro base de todos os documentos fiscais
// CertificateError — falha no certificado digital
// SefazRejectError — SEFAZ rejeitou o documento (cStat + xMotivo)
// SchemaValidationError — XML invalido contra XSD
对比( 界面)
O 核心定义相悖 que podem ser expertados por qualquer pacote :
| 相对 | 责任 | 执行 |
|---|---|---|
CertificateProvider | 卡尔加证书 | A1CertificateProvider |
SefazTransport | Comunicacao HTTP 相机 SEFAZ | NodeHttpSefazTransport |
XmlSigner | Assinar XML com 证书 | DefaultXmlSigner |
SchemaValidator | 验证 XML 反 XSD | (执行em cada pacote) |
Criando 提供商自定义
import type { CertificateProvider, CertificateData } from '@brasil-fiscal/core';
export class MyCertificateProvider implements CertificateProvider {
async load(): Promise<CertificateData> {
// Sua logica (vault, HSM, banco de dados, etc.)
return { pfx, password, notAfter, privateKey, certPem };
}
}
阿基特图拉
src/
contracts/ Interfaces (CertificateProvider, SefazTransport, XmlSigner, SchemaValidator)
infra/
certificate/ A1CertificateProvider (carrega .pfx/.p12 via openssl)
xml/ DefaultXmlSigner, canonicalize (C14N), xml-helper (tag, escapeXml)
transport/ NodeHttpSefazTransport (mTLS), soap-helper (extractSoapBody)
shared/
errors/ DFeError, CertificateError, SefazRejectError, SchemaValidationError
helpers/ CNPJ, CPF, mod11, access-key
constants/ UF_CODES (codigos IBGE)
小学
- 零依赖性运行时间 - 阿佩纳斯
node:crypto, (中文(简体) ),node:https, (中文(简体) ),node:child_process - 相对的初等动物 - 托达integracao externa eh uma 接口
- 法尔哈尔快活 - 错误的claros com 班级
- 编辑手册 - 散货箱,通过构件提供喷气管
请求
- 节点.js 18
- OpenSSL Instalado (para carregar certificados A1) (英语)
德森沃尔维门托
git clone https://github.com/brasil-fiscal/core.git
cd core
npm install
npm run build
npm test
孔布里布伊多语Name
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}康特利布科斯·绍·本·温达斯! 韦雅 捐款额。 。 。 .
代码样式
- TypeScript 严格模式, 返回类型
- 单引号,分号,sem后接逗号,100 Chars por linha
- 路径别名 :
@core/*马佩亚 第9段src/* - 接口 sem 前缀
I(单位:千美元)CertificateProvider,纳奥ICertificateProvider(中文(简体) )
@brasil-财政
| 帕科特语Name | 状态 | 德克里亚 |
|---|---|---|
| @ brasil-财政/核心 | 静态 | (原始内容存档于2013-10-12) (英语). Infraestrutura compatilhada (este pacote) |
| @brasil-fiscal/ nfe (英语) | 静态 | NFC-e 数字 |
| @brasil-fiscal/ cte (英语) | 脱口而出 | 中文本 |
| @brasil-fiscal/ mdfe | 脱口而出 | 货币基金 |
| @brasil-fiscal/ sped-fiscal (英语) | 脱口而出 | EFD ICMS/IPI (SPED 财政) |
| @brasil-fiscal/ sped-contribuicoes (英语) | 脱口而出 | EFD Contribuicoes (PIS/COFINS) (英语) |
| @brasil-fiscal/ sintegra (英语) | 脱口而出 | 新加坡 |