dazza-dev/dgt-cr-sender

Paquete para enviar documentos electrónicos (Factura, Nota crédito, Nota débito y Tiquete Electrónico) al Ministerio de Hacienda (Costa Rica).

Installs: 5

Dependents: 1

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/dazza-dev/dgt-cr-sender

v1.0.0 2025-11-26 23:04 UTC

This package is auto-updated.

Last update: 2025-11-26 23:05:19 UTC


README

Paquete para enviar documentos electrónicos (Factura, Nota crédito, Nota débito y Tiquete Electrónico) al Ministerio de Hacienda (Costa Rica).

Instalación

composer require dazza-dev/dgt-cr-sender

Uso

use DazzaDev\DgtCrSender\Sender;

// Instanciar el sender
$sender = new Sender();

// Entorno de pruebas (true para pruebas, false para producción)
$sender->setTestMode(true);

Token de acceso

$token = $sender->auth('usuario_api', 'clave_api');

El método auth retorna un arreglo con access_token y refresh_token. El access_token tiene una duración de 5 minutos y el refresh_token de 10 horas. Si el access_token vence, puedes generar uno nuevo usando el refresh_token asi:

$newToken = $sender->renewToken($token['refresh_token']);

Si vas a reutilizar los tokens en solicitudes futuras, almacénalos y configúralos en el sender:

$sender->setBearerToken($token['access_token']);
$sender->setRefreshToken($token['refresh_token']);

Para cerrar la sesión al finalizar el proceso:

$sender->logout($token['refresh_token']);

Emisor y Receptor

Para realizar operaciones con los documentos electrónicos, debes configurar el emisor y receptor:

// Setear Emisor
$sender->setIssuer([
    'identification_type' => '02',
    'identification_number' => 'identification_del_emisor',
]);

// Setear Receptor
$sender->setReceiver([
    'identification_type' => '02',
    'identification_number' => 'identification_del_receptor',
]);

Callback URL

Para recibir notificaciones sobre el estado de los documentos enviados, debes configurar una URL de callback:

$sender->setCallbackUrl('https://tu-dominio.com/callback');

Recepción de Documentos

$sender->send(
    documentType: 'invoice',
    documentKey: $clave,
    date: '2025-11-18T00:00:00-06:00',
    signedXml: base64_encode($xml)
);

Consultar estado del documento enviado

Después de enviar un documento, puedes consultar su estado usando el método checkStatus:

$documentStatus = $sender->checkStatus(
    documentKey: $clave
);

Obtener listado de documentos enviados

Puedes obtener un listado de documentos enviados usando el método getDocuments:

$documents = $sender->getDocuments(
    offset: 0,
    limit: 50
);

Consulta un documento enviado

$document = $sender->getDocument(
    documentKey: $clave
);

Firmar Documentos

Para firmar documentos electrónicos, puedes utilizar el paquete:

Contribuciones

Contribuciones son bienvenidas. Si encuentras algún error o tienes ideas para mejoras, por favor abre un issue o envía un pull request. Asegúrate de seguir las guías de contribución.

Autor

DGT Sender fue creado por DAZZA.

Licencia

Este proyecto está licenciado bajo la Licencia MIT.