"1") con exoneración de impuestos. La exoneración se aplica dentro del objeto impuesto de cada línea del detalle de servicio.
Existen dos modalidades de exoneración: autorizaciones (emitidas por
entidades autorizadas) y gobierno (instituciones públicas con artículo e
inciso de ley).
Request
POST https://{empresa}.mipos.co.cr/api/enviar/items
Campos principales
Los campos principales son idénticos a la Factura Electrónica:emisor, numeroReferencia, codigoActividad, tipoDoc ("1"), receptor, folioType, fechaEmision, resumenFactura, otrosCargos.
Exoneración en el impuesto
La diferencia está dentro de cada elemento del arrayimpuesto en detalleServicio, que incluye un objeto exoneracion:
object
required
Datos del documento de exoneración.
Show Propiedades
Show Propiedades
string
required
Tipo de documento de exoneración:
"01"— Compras autorizadas"02"— Ventas exentas a diplomáticos"03"— Autorizado por ley especial"04"— Exoneraciones DGTH"05"— Zonas Francas"99"— Otros
string
required
Número del documento de exoneración (ej:
"AL-00080875-23").string
required
Código o nombre de la institución que emite la exoneración.
"01"— Instituciones del Estado"04"— DGTH (Dirección General de Tributación y Hacienda)
string
required
Fecha de emisión del documento de exoneración en formato ISO 8601.
number
required
Porcentaje de exoneración (ej:
13 para exoneración total del IVA).string
Nombre completo de la institución (requerido para tipo
"01" gobierno).string
Artículo de ley que fundamenta la exoneración (para instituciones gobierno).
number
Inciso del artículo de ley (para instituciones gobierno).
Ejemplo: Exoneración estándar (DGTH)
curl -X POST https://{empresa}.mipos.co.cr/api/enviar/items \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {token}" \
-d '{
"emisor": "3102955154",
"numeroReferencia": 18,
"codigoActividad": "6201.0",
"tipoDoc": "1",
"receptor": {
"nombre": "JUAN PEREZ GARCIA",
"telefono": "50684444",
"identificacion": {
"tipo": "01",
"numero": "504300485"
},
"correoElectronico": "cliente@ejemplo.com"
},
"folioType": "INVOICE",
"fechaEmision": "2024-08-23T10:30:00-06:00",
"resumenFactura": {
"codigoTipoMoneda": {
"codigoMoneda": "CRC"
},
"mediosPago": [
{
"tipoMedioPago":"01",
"totalMedioPago":"20000.00"
},
{
"tipoMedioPago":"06",
"totalMedioPago":"5160.90"
}
],
"totalOtrosCargos": "387.09"
},
"detalleServicio": [
{
"codigo": "8421000000000",
"detalle": "INTERNET RESIDENCIAL 200 MBPS",
"cantidad": 1.0,
"impuesto": [
{
"monto": "2875.53",
"codigo": "01",
"tarifa": "13",
"codigoTarifa": "08",
"exoneracion": {
"numeroDocumento": "AL-00080875-23",
"fechaEmision": "2023-10-11T00:00:00",
"nombreInstitucion": "04",
"porcentajeExoneracion": 13,
"tipoDocumento": "04"
}
}
],
"subTotal": "22119.47",
"descuento": "0.00",
"montoTotal": "22119.47",
"numeroLinea": 1,
"impuestoNeto": 2875.53,
"unidadMedida": "Os",
"precioUnitario": "22119.47",
"codigoComercial": [
{ "tipo": "04", "codigo": "I_INT" }
],
"montoTotalLinea": 24995.0,
"unidadMedidaComercial": "Os"
}
]
}'
$ch = curl_init('https://{empresa}.mipos.co.cr/api/enviar/items');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer ' . $token,
],
CURLOPT_POSTFIELDS => json_encode([
'emisor' => '3102955154',
'numeroReferencia' => 18,
'codigoActividad' => '6201.0',
'tipoDoc' => '1',
'receptor' => [
'nombre' => 'JUAN PEREZ GARCIA',
'telefono' => '50684444',
'identificacion' => ['tipo' => '01', 'numero' => '504300485'],
'correoElectronico' => 'cliente@ejemplo.com',
],
'folioType' => 'INVOICE',
'fechaEmision' => date('c'),
'resumenFactura' => [
'codigoTipoMoneda' => ['codigoMoneda' => 'CRC'],
'totalOtrosCargos' => '387.09',
],
'detalleServicio' => [
[
'codigo' => '8421000000000',
'detalle' => 'INTERNET RESIDENCIAL 200 MBPS',
'cantidad' => 1.0,
'precioUnitario' => '22119.47',
'subTotal' => '22119.47',
'montoTotal' => '22119.47',
'descuento' => '0.00',
'numeroLinea' => 1,
'unidadMedida' => 'Os',
'impuestoNeto' => 2875.53,
'montoTotalLinea' => 24995.0,
'impuesto' => [
[
'codigo' => '01',
'codigoTarifa' => '08',
'tarifa' => '13',
'monto' => '2875.53',
'exoneracion' => [
'numeroDocumento' => 'AL-00080875-23',
'fechaEmision' => '2023-10-11T00:00:00',
'nombreInstitucion' => '04',
'porcentajeExoneracion' => 13,
'tipoDocumento' => '04',
],
],
],
],
],
]),
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
const response = await fetch("https://{empresa}.mipos.co.cr/api/enviar/items", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
body: JSON.stringify({
emisor: "3102955154",
numeroReferencia: 18,
codigoActividad: "6201.0",
tipoDoc: "1",
receptor: {
nombre: "JUAN PEREZ GARCIA",
telefono: "50684444",
identificacion: { tipo: "01", numero: "504300485" },
correoElectronico: "cliente@ejemplo.com",
},
folioType: "INVOICE",
fechaEmision: new Date().toISOString(),
resumenFactura: {
codigoTipoMoneda: { codigoMoneda: "CRC" },
totalOtrosCargos: "387.09",
},
detalleServicio: [
{
codigo: "8421000000000",
detalle: "INTERNET RESIDENCIAL 200 MBPS",
cantidad: 1.0,
precioUnitario: "22119.47",
subTotal: "22119.47",
montoTotal: "22119.47",
descuento: "0.00",
numeroLinea: 1,
unidadMedida: "Os",
impuestoNeto: 2875.53,
montoTotalLinea: 24995.0,
impuesto: [
{
codigo: "01",
codigoTarifa: "08",
tarifa: "13",
monto: "2875.53",
exoneracion: {
numeroDocumento: "AL-00080875-23",
fechaEmision: "2023-10-11T00:00:00",
nombreInstitucion: "04",
porcentajeExoneracion: 13,
tipoDocumento: "04",
},
},
],
},
],
}),
});
const data = await response.json();
import requests
from datetime import datetime
response = requests.post(
'https://{empresa}.mipos.co.cr/api/enviar/items',
headers={'Authorization': f'Bearer {token}'},
json={
'emisor': '3102955154',
'numeroReferencia': 18,
'codigoActividad': '6201.0',
'tipoDoc': '1',
'receptor': {
'nombre': 'JUAN PEREZ GARCIA',
'telefono': '50684444',
'identificacion': {'tipo': '01', 'numero': '504300485'},
'correoElectronico': 'cliente@ejemplo.com',
},
'folioType': 'INVOICE',
'fechaEmision': datetime.now().isoformat(),
'resumenFactura': {
'codigoTipoMoneda': {'codigoMoneda': 'CRC'},
'totalOtrosCargos': '387.09',
},
'detalleServicio': [
{
'codigo': '8421000000000',
'detalle': 'INTERNET RESIDENCIAL 200 MBPS',
'cantidad': 1.0,
'precioUnitario': '22119.47',
'subTotal': '22119.47',
'montoTotal': '22119.47',
'descuento': '0.00',
'numeroLinea': 1,
'unidadMedida': 'Os',
'impuestoNeto': 2875.53,
'montoTotalLinea': 24995.0,
'impuesto': [
{
'codigo': '01',
'codigoTarifa': '08',
'tarifa': '13',
'monto': '2875.53',
'exoneracion': {
'numeroDocumento': 'AL-00080875-23',
'fechaEmision': '2023-10-11T00:00:00',
'nombreInstitucion': '04',
'porcentajeExoneracion': 13,
'tipoDocumento': '04',
},
},
],
},
],
},
)
data = response.json()
Ejemplo: Exoneración gobierno (con artículo e inciso)
Para instituciones del Estado, se agregan los camposnombreInstitucionOtros, articulo e inciso:
"exoneracion": {
"numeroDocumento": "7293",
"fechaEmision": "1992-04-03T00:00:00",
"nombreInstitucion": "01",
"nombreInstitucionOtros": "CAJA COSTARRICENSE DEL SEGURO SOCIAL",
"porcentajeExoneracion": 13,
"tipoDocumento": "03",
"articulo": "2",
"inciso": 1
}
{
"status": "success",
"message": "Documento enviado correctamente",
"clave": "50628032600310295515400100001010000000018146404019"
}
{
"error": "unauthorized",
"message": "Token inválido o expirado"
}