API DE COMERCIO EXTERIOR

Exporta sin que se te atore la aduana

El complemento que acompaña a tus facturas de exportación: fracción arancelaria, Incoterm, valor en dólares y domicilio del destinatario en el extranjero.

¿Qué es el complemento de comercio exterior?

Es la extensión del CFDI que se usa cuando exportas mercancía de forma definitiva. Añade a la factura lo que la aduana necesita saber y una factura normal no lleva: qué es exactamente lo que sale del país, bajo qué fracción arancelaria, con qué Incoterm y cuánto vale en dólares.

Sin él, tu pedimento no cuadra. Y un pedimento que no cuadra es mercancía detenida en la frontera — que suele costar bastante más que el tiempo de programar la integración.

El endpoint y el nodo

POSThttps://apisandbox.facturama.mx/2/cfdis

El complemento va dentro del comprobante, en Complemento.ForeignTrade:

"Complemento": {
    "ForeignTrade": {
        "OperationType": "2",
        "RequestCode": "A1",
        "Incoterm": "CFR",
        "ExchangeRateUSD": 17.05,
        "TotalUSD": 4820.00,
        "OriginCertificate": false,
        "Receiver": {
            "Address": {
                "Street": "Sunset Blvd",
                "ExteriorNumber": "1420",
                "Municipality": "Los Angeles",
                "State": "CA",
                "Country": "USA",
                "ZipCode": "90026"
            }
        },
        "Commodity": [
            {
                "IdentificationNumber": "SKU-4471",
                "TariffFraction": "84713001",
                "CustomsQuantity": 12,
                "CustomsUnit": "06",
                "CustomsUnitValue": 401.66,
                "SpecificDescriptions": [
                    {
                        "Brand": "Genérica",
                        "Model": "X-200",
                        "SerialNumber": "SN-0099"
                    }
                ]
            }
        ]
    }
}
Ojo con la modalidad. Según la documentación, el de comercio exterior es el único complemento limitado a API Web: no está disponible en Multiemisor. Si tu arquitectura pasa por facturar con varios RFC emisores, verifícalo antes de diseñar el flujo de exportación.

Los cuatro campos que dan problemas

Fracción arancelaria

TariffFraction clasifica tu producto según la tarifa de la ley de importación y exportación. No es un dato que puedas deducir: lo determina tu agente aduanal. Guárdalo en tu catálogo de productos junto al SKU, porque volver a preguntarlo en cada exportación es una fuente garantizada de retrasos.

Unidad de medida aduanera

CustomsUnit no es la misma unidad que usas en el concepto de la factura. La aduana tiene su propio catálogo, y tu "pieza" comercial puede ser "kilogramo" para ellos. Son dos campos distintos con dos catálogos distintos, y confundirlos es de los errores más frecuentes.

Tipo de cambio

ExchangeRateUSD y TotalUSD tienen que ser coherentes con el importe de la factura. Si facturas en pesos, el total en dólares debe corresponder al tipo de cambio que declaras — y ese tipo de cambio es el del día de la operación, no el de hoy. Si automatizas la conversión, congela la tasa al momento de emitir y guárdala.

Incoterm

Incoterm define quién paga el flete y quién asume el riesgo en cada tramo. Sale del contrato con tu cliente, no de una decisión técnica. Si en la factura pones uno y en el contrato dice otro, el problema no es fiscal: es comercial, y aparece cuando algo se pierde en tránsito.

El domicilio del destinatario

El nodo Receiver.Address lleva la dirección en el extranjero, con su país y su código postal en formato local. Aquí no aplican las validaciones del catálogo de códigos postales del SAT: un ZIP de California o un postcode británico se registran tal cual.

Si tu sistema valida direcciones contra el catálogo mexicano, tendrás que hacer una excepción para las de exportación. Es un detalle pequeño que suele descubrirse tarde, con la primera venta a Estados Unidos.

Ciclo de vida y SDKs

La respuesta trae Id y UUID. Desde ahí: consulta, descarga de XML y PDF, envío por correo y cancelación. Librerías oficiales en PHP, Python, JavaScript, Java, Ruby y .NET (4.5+).

Si además mueves la mercancía por territorio nacional antes de que salga del país, probablemente necesites también el complemento Carta Porte. Son cosas distintas y no se sustituyen: uno describe la exportación, el otro el traslado.

Preguntas frecuentes

¿Toda exportación necesita este complemento?

Las exportaciones definitivas de mercancía sí. Los servicios prestados a clientes en el extranjero no llevan complemento de comercio exterior: son una factura normal con receptor extranjero.

¿De dónde saco la fracción arancelaria?

De tu agente aduanal. Depende de la naturaleza del producto y no admite aproximaciones — una fracción incorrecta cambia los aranceles aplicables.

¿Puedo facturar en dólares?

Sí. En cualquier caso debes declarar ExchangeRateUSD y TotalUSD de forma coherente con la moneda del comprobante.

¿Comercio exterior y Carta Porte son lo mismo?

No. Comercio exterior documenta la operación de exportación; Carta Porte documenta el traslado físico de la mercancía por territorio nacional. Una exportación por carretera puede necesitar ambos.

Prueba tu primera exportación en sandbox

Valida el XML con tu agente aduanal antes de que salga el primer embarque real.

Crear cuenta y probar Hablar con un ingeniero