Ejemplos por país
➕ Crear documentos
Crear nuevos documentos
Colección de Postman
Para facilitar su integración, descargue nuestra colección de Postman aquí: https://github.com/koyweforest/api-billing-postman
IMPORTANTE: El SAT requiere que el nombre legal, la actividad, el código postal y el RFC coincidan exactamente
Al generar una factura, tiene la opción de utilizar el RFC genérico:
- XAXX010101000 para personas nacionales que solo tienen CURP pero no RFC
- XEXX010101000 para empresas o personas físicas extranjeras
Si utiliza un RFC diferente, deberá asegurarse de que el nombre legal, el código postal y la actividad (régimen fiscal) coincidan exactamente. Si alguno de estos datos no coincide exactamente, recibirá un mensaje en la respuesta con la validación del SAT y el documento no será emitido. (tenga en cuenta que los mensajes del SAT están en español)
Para facilitar las pruebas, puede utilizar la siguiente información al emitir documentos:
| account_id | RFC | legal_name | activity | postalcode |
|---|---|---|---|---|
| 11857 | EKU9003173C9 | ESCUELA KEMPER URGATE | 601 | 42501 |
Los nombres legales NO deben incluir el tipo de organización (ejemplo: SAIC).
Puede validar los datos aquí: https://agsc.siat.sat.gob.mx/PTSC/ValidaRFC/index.jsf (funciona SOLO desde México, bloqueado por el SAT desde otros países).
product_service_identifier y measure_unit_code
México requiere que las líneas de detalle estén correctamente identificadas con fines fiscales. Si se omiten, se utilizarán valores predeterminados.
Lista de identificadores de productos/servicios: http://pys.sat.gob.mx/PyS/catPyS.aspx Lista de códigos de unidad de medida: http://pys.sat.gob.mx/PyS/catUnidades.aspx
Factura
Para crear una nueva factura mexicana, debe utilizar el endpoint /documents con los parámetros adecuados.
Las facturas mexicanas pueden ser de tipo I, E o T. Para definir cuál utilizar, consulte los valores correctos del campo document_type_id.
Header >> Additional >> mx_header >> receiver_cfdi_usage es un campo opcional que define el uso fiscal del receptor. Si no se incluye, se utilizará S01 (Sin efectos fiscales).
Header >> Additional >> mx_header >> reported_payment_code es un campo opcional que define el método de pago. Si no se incluye, se utilizará 01 (Efectivo).
Factura I (Factura de Ingreso)
- Endpoint: https://api-billing.koywe.com/V1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header": {
"account_id": 11857,
"document_type_id": "76",
"issue_date": "2025-01-07",
"issuer_tax_id_code": "EKU9003173C9",
"issuer_tax_id_type": "MX-RFC",
"issuer_legal_name": "ESCUELA KEMPER URGATE",
"issuer_address": "Calle roja 234",
"issuer_city": "Ciudad de méxico",
"issuer_country_id": "80",
"issuer_phone": "2223334444",
"issuer_activity": "601",
"issuer_postalcode": "42501",
"receiver_tax_id_code": "EKU9003173C9",
"receiver_tax_id_type": "MX-RFC",
"receiver_legal_name": "ESCUELA KEMPER URGATE",
"receiver_address": "Calle naranja 123",
"receiver_city": "Cancún",
"receiver_country_id": "80",
"receiver_phone": "2223334444",
"receiver_activity": "601",
"receiver_postalcode": "42501",
"payment_conditions": "0",
"currency_id": 31,
"additional": {
"mx_header":{
"receiver_cfdi_usage": "G03",
"reported_payment_code": "01"
}
}
},
"details": [
{
"quantity": 1,
"sku": "aa111",
"line_description": "Prueba Koywe",
"unit_measure": "UN",
"unit_price": 1500,
"long_description": "Esta es una linea de prueba",
"modifier_amount": -100,
"total_taxes": 224,
"modifier_percentage": 0,
"total_amount_line": 1624,
"taxes": [
{
"tax_type_id": "362",
"tax_percentage": 16,
"tax_amount": 224
}
],
"additional": {
"mx_detail": {
"product_service_identifier": "01010101",
"measure_unit_code": "E48"
}
}
}
],
"totals": {
"net_amount": 1400,
"taxes_amount": 224,
"total_amount": 1624
}
}
Factura I Global (Factura de Ingreso Global)
Este documento se utiliza para reflejar un gran número de transacciones en un único documento fiscal. Los campos global_ deben utilizarse para reflejar el período que se está emitiendo. Consulte la tabla de códigos para más información.
- Endpoint: https://api-billing.koywe.com/V1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header": {
"account_id": 11857,
"document_type_id": "76",
"issue_date": "2025-08-22",
"issuer_tax_id_code": "EKU9003173C9",
"issuer_tax_id_type": "MX-RFC",
"issuer_legal_name": "ESCUELA KEMPER URGATE",
"issuer_address": "Calle roja 234",
"issuer_city": "Ciudad de méxico",
"issuer_country_id": "80",
"issuer_phone": "2223334444",
"issuer_activity": "601",
"issuer_postalcode": "42501",
"receiver_tax_id_code": "XAXX010101000",
"receiver_tax_id_type": "MX-RFC",
"receiver_legal_name": "PUBLICO EN GENERAL",
"receiver_address": "",
"receiver_city": "",
"receiver_country_id": "80",
"receiver_phone": "",
"receiver_activity": "616",
"receiver_postalcode": "42501",
"payment_conditions": "0",
"currency_id": 31,
"additional": {
"mx_header":{
"receiver_cfdi_usage": "S01",
"reported_payment_code": "01",
"global_periodicity": "01",
"global_month": "04",
"global_year": "2025"
}
}
},
"details": [
{
"quantity": 1,
"sku": "aa111",
"line_description": "Prueba Koywe",
"unit_measure": "UN",
"unit_price": 1500,
"long_description": "Esta es una linea de prueba",
"modifier_amount": -100,
"total_taxes": 224,
"modifier_percentage": 0,
"total_amount_line": 1624,
"taxes": [
{
"tax_type_id": "362",
"tax_percentage": 16,
"tax_amount": 224
}
],
"additional": {
"mx_detail": {
"product_service_identifier": "01010101",
"measure_unit_code": "E48"
}
}
}
],
"totals": {
"net_amount": 1400,
"taxes_amount": 224,
"total_amount": 1624
}
}
Factura E (Factura de Egreso)
- Endpoint: https://api-billing.koywe.com/V1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header": {
"account_id": 11857,
"document_type_id": "77",
"issue_date": "2025-01-07",
"issuer_tax_id_code": "EKU9003173C9",
"issuer_tax_id_type": "MX-RFC",
"issuer_legal_name": "ESCUELA KEMPER URGATE",
"issuer_address": "Calle roja 234",
"issuer_city": "Ciudad de méxico",
"issuer_country_id": "80",
"issuer_phone": "2223334444",
"issuer_activity": "601",
"issuer_postalcode": "42501",
"receiver_tax_id_code": "EKU9003173C9",
"receiver_tax_id_type": "MX-RFC",
"receiver_legal_name": "ESCUELA KEMPER URGATE",
"receiver_address": "Calle naranja 123",
"receiver_city": "Cancún",
"receiver_country_id": "80",
"receiver_phone": "2223334444",
"receiver_activity": "601",
"receiver_postalcode": "42501",
"payment_conditions": "0",
"currency_id": 31
},
"details": [
{
"quantity": 1,
"sku": "aa111",
"line_description": "Prueba Koywe",
"unit_measure": "UN",
"unit_price": 1500,
"long_description": "Esta es una linea de prueba",
"modifier_amount": -100,
"total_taxes": 224,
"modifier_percentage": 0,
"total_amount_line": 1624,
"taxes": [
{
"tax_type_id": "362",
"tax_percentage": 16,
"tax_amount": 224
}
],
"additional": {
"mx_detail": {
"product_service_identifier": "01010101",
"measure_unit_code": "E48"
}
}
}
],
"totals": {
"net_amount": 1400,
"taxes_amount": 224,
"total_amount": 1624
}
}
Factura T (Factura de Traslado)
- Endpoint: https://api-billing.koywe.com/V1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header": {
"account_id": 11857,
"document_type_id": "78",
"issue_date": "2025-01-07",
"issuer_tax_id_code": "EKU9003173C9",
"issuer_tax_id_type": "MX-RFC",
"issuer_legal_name": "ESCUELA KEMPER URGATE",
"issuer_address": "Calle roja 234",
"issuer_city": "Ciudad de méxico",
"issuer_country_id": "80",
"issuer_phone": "2223334444",
"issuer_activity": "601",
"issuer_postalcode": "42501",
"receiver_tax_id_code": "EKU9003173C9",
"receiver_tax_id_type": "MX-RFC",
"receiver_legal_name": "ESCUELA KEMPER URGATE",
"receiver_address": "Calle naranja 123",
"receiver_city": "Cancún",
"receiver_country_id": "80",
"receiver_phone": "2223334444",
"receiver_activity": "601",
"receiver_postalcode": "42501",
"payment_conditions": "0",
"currency_id": 31
},
"details": [
{
"quantity": 1,
"sku": "aa111",
"line_description": "Prueba Koywe",
"unit_measure": "UN",
"unit_price": 1500,
"long_description": "Esta es una linea de prueba",
"modifier_amount": -100,
"total_taxes": 224,
"modifier_percentage": 0,
"total_amount_line": 1624,
"taxes": [
{
"tax_type_id": "362",
"tax_percentage": 16,
"tax_amount": 224
}
],
"additional": {
"mx_detail": {
"product_service_identifier": "01010101",
"measure_unit_code": "E48"
}
}
}
],
"totals": {
"net_amount": 1400,
"taxes_amount": 224,
"total_amount": 1624
}
}
Factura T con Complemento de Carta Porte
Para crear una nueva factura mexicana con complemento de carta porte, debe utilizar el endpoint /documents con los parámetros adecuados.
- Endpoint: https://api-billing.koywe.com/V1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header": {
"account_id": 11857,
"document_type_id": "78",
"issue_date": "2025-01-07",
"issuer_tax_id_code": "EKU9003173C9",
"issuer_tax_id_type": "MX-RFC",
"issuer_legal_name": "ESCUELA KEMPER URGATE",
"issuer_address": "Calle roja 234",
"issuer_city": "Ciudad de méxico",
"issuer_country_id": "80",
"issuer_phone": "2223334444",
"issuer_activity": "601",
"issuer_postalcode": "42501",
"receiver_tax_id_code": "EKU9003173C9",
"receiver_tax_id_type": "MX-RFC",
"receiver_legal_name": "ESCUELA KEMPER URGATE",
"receiver_address": "Calle naranja 123",
"receiver_city": "Cancún",
"receiver_country_id": "80",
"receiver_phone": "2223334444",
"receiver_activity": "601",
"receiver_postalcode": "42501",
"payment_conditions": "0",
"currency_id": 31,
"additional": {
"mx_shipping": {
"distance": "100",
"transport_code": "01",
"transport_method_name": "Autotransporte",
"transport_tax_id_type": "MX-RFC",
"transport_tax_id_code": "EKU9003173C9",
"transport_license": "a234567890",
"origin": {
"tax_id_type" : "MX-RFC",
"tax_id_code": "EKU9003173C9",
"date_time": "2025-01-07T00:00:00",
"address_state_id": "31",
"address_country_id": "80",
"address_postalcode": "13250"
},
"destination": {
"tax_id_type" : "MX-RFC",
"tax_id_code": "EKU9003173C9",
"date_time": "2025-01-07T00:00:00",
"address_state_id": "31",
"address_country_id": "80",
"address_postalcode": "13250"
},
"merchandise": {
"total_weight": "10",
"sct_permission_code": "TPAF01",
"sct_permission_number": "222333444",
"vehicle_configuration": "VL",
"vehicle_weight": "1",
"vehicle_license_plate": "AA22333",
"vehicle_year":"2020",
"insurance_company": "PRUEBA SEGUROS",
"insurance_identifier": "123456",
"details": [
{
"product_code": "11121900",
"description" : "Accesorios telefono",
"quantity" : "1",
"weight": "10"
}
]
}
}
}
},
"details": [
{
"quantity": 1,
"line_description": "Prueba Koywe",
"unit_measure": "UN",
"unit_price": 1500,
"long_description": "Esta es una linea de prueba",
"modifier_amount": -100,
"total_taxes": 224,
"modifier_percentage": 0,
"total_amount_line": 1624,
"taxes": [
{
"tax_type_id": "362",
"tax_percentage": 16,
"tax_amount": 224
}
],
"additional": {
"mx_detail": {
"product_service_identifier": "01010101",
"measure_unit_code": "E48"
}
}
}
],
"totals": {
"net_amount": 1400,
"taxes_amount": 224,
"total_amount": 1624
}
}
Factura I con Complemento de Exportación
Para crear una nueva factura mexicana con complemento de comercio internacional, debe utilizar el endpoint /documents con los parámetros adecuados.
- Endpoint: https://api-billing.koywe.com/V1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header": {
"account_id": 11857,
"document_type_id": "76",
"issue_date": "2025-01-07",
"issuer_tax_id_code": "EKU9003173C9",
"issuer_tax_id_type": "MX-RFC",
"issuer_legal_name": "ESCUELA KEMPER URGATE",
"issuer_address": "Calle roja 234",
"issuer_city": "Ciudad de méxico",
"issuer_country_id": "80",
"issuer_phone": "2223334444",
"issuer_activity": "601",
"issuer_postalcode": "42501",
"receiver_tax_id_code": "EKU9003173C9",
"receiver_tax_id_type": "MX-RFC",
"receiver_legal_name": "ESCUELA KEMPER URGATE",
"receiver_address": "Calle naranja 123",
"receiver_city": "Cancún",
"receiver_country_id": "80",
"receiver_phone": "2223334444",
"receiver_activity": "601",
"receiver_postalcode": "42501",
"payment_conditions": "0",
"currency_id": 31,
"additional": {
"mx_exports": {
"terms": "FOB",
"exchange_rate": 20.6708,
"total": 1624,
"origin": {
"address_street": "CALLE DEL PAPEL",
"address_city_id": "01",
"address_county_id": "1961",
"address_state_id": "45",
"address_country_id": "80",
"address_postalcode": "76199"
},
"destination": {
"tax_id_type" : "US-EIN",
"tax_id_code": "222333444",
"address_street": "2470 SW 19th",
"address_state_id": "61",
"address_country_id": "89",
"address_postalcode": "00000"
},
"merchandise": {
"details": [
{
"customs_code": "2402200100",
"customs_quantity" : "117.64",
"sku" : "aa111",
"customs_measure_unit": "01",
"customs_unit_value": "13.81",
"customs_total_value": "1624.00"
}
]
}
}
}
},
"details": [
{
"quantity": 1,
"sku": "aa111",
"line_description": "Prueba Koywe",
"unit_measure": "UN",
"unit_price": 1500,
"long_description": "Esta es una linea de prueba",
"modifier_amount": -100,
"total_taxes": 224,
"modifier_percentage": 0,
"total_amount_line": 1624,
"taxes": [
{
"tax_type_id": "362",
"tax_percentage": 16,
"tax_amount": 224
}
],
"additional": {
"mx_detail": {
"product_service_identifier": "01010101",
"measure_unit_code": "E48"
}
}
}
],
"totals": {
"net_amount": 1400,
"taxes_amount": 224,
"total_amount": 1624
}
}
Factura I de Extranjero sin RFC
- Endpoint: https://api-billing.koywe.com/V1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header": {
"account_id": 11857,
"document_type_id": "76",
"issue_date": "2025-05-27",
"issuer_tax_id_code": "EKU9003173C9",
"issuer_tax_id_type": "MX-RFC",
"issuer_legal_name": "ESCUELA KEMPER URGATE",
"issuer_address": "Calle roja 234",
"issuer_city": "Ciudad de méxico",
"issuer_country_id": "80",
"issuer_phone": "2223334444",
"issuer_activity": "601",
"issuer_postalcode": "42501",
"receiver_tax_id_code": "XEXX010101000",
"receiver_tax_id_type": "US-EIN",
"receiver_legal_name": "ESCUELA KEMPER URGATE",
"receiver_address": "<string>",
"receiver_district": "<string>",
"receiver_city": "<string>",
"receiver_country_id": "89",
"receiver_phone": "<string>",
"receiver_activity": "<string>",
"payment_conditions": "0",
"currency_id": 31
},
"details": [
{
"quantity": 1,
"sku": "aa111",
"line_description": "Prueba Koywe",
"unit_measure": "UN",
"unit_price": 1500,
"long_description": "Esta es una linea de prueba",
"modifier_amount": -100,
"total_taxes": 224,
"modifier_percentage": 0,
"total_amount_line": 1624,
"taxes": [
{
"tax_type_id": "362",
"tax_percentage": 16,
"tax_amount": 224
}
],
"additional": {
"mx_detail": {
"product_service_identifier": "01010101",
"measure_unit_code": "E48"
}
}
}
],
"totals": {
"net_amount": 1400,
"taxes_amount": 224,
"total_amount": 1624
}
}
Factura I Nacional sin RFC
- Endpoint: https://api-billing.koywe.com/V1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header": {
"account_id": 11857,
"document_type_id": "76",
"issue_date": "2025-01-07",
"issuer_tax_id_code": "EKU9003173C9",
"issuer_tax_id_type": "MX-RFC",
"issuer_legal_name": "ESCUELA KEMPER URGATE",
"issuer_address": "Calle roja 234",
"issuer_city": "Ciudad de méxico",
"issuer_country_id": "80",
"issuer_phone": "2223334444",
"issuer_activity": "601",
"issuer_postalcode": "42501",
"receiver_tax_id_code": "XAXX010101000",
"receiver_tax_id_type": "MX-RFC",
"receiver_legal_name": "ESCUELA KEMPER URGATE",
"receiver_address": "<string>",
"receiver_district": "<string>",
"receiver_city": "<string>",
"receiver_country_id": "80",
"receiver_phone": "<string>",
"receiver_activity": "<string>",
"payment_conditions": "0",
"currency_id": 31
},
"details": [
{
"quantity": 1,
"sku": "aa111",
"line_description": "Prueba Koywe",
"unit_measure": "UN",
"unit_price": 1500,
"long_description": "Esta es una linea de prueba",
"modifier_amount": -100,
"total_taxes": 224,
"modifier_percentage": 0,
"total_amount_line": 1624,
"taxes": [
{
"tax_type_id": "362",
"tax_percentage": 16,
"tax_amount": 224
}
],
"additional": {
"mx_detail": {
"product_service_identifier": "01010101",
"measure_unit_code": "E48"
}
}
}
],
"totals": {
"net_amount": 1400,
"taxes_amount": 224,
"total_amount": 1624
}
}
Factura I con IVA e IEPS
- Endpoint: https://api-billing.koywe.com/V1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header": {
"account_id": 11857,
"document_type_id": "76",
"issue_date": "2025-01-07",
"issuer_tax_id_code": "EKU9003173C9",
"issuer_tax_id_type": "MX-RFC",
"issuer_legal_name": "ESCUELA KEMPER URGATE",
"issuer_address": "Calle roja 234",
"issuer_city": "Ciudad de méxico",
"issuer_country_id": "80",
"issuer_phone": "2223334444",
"issuer_activity": "601",
"issuer_postalcode": "42501",
"receiver_tax_id_code": "EKU9003173C9",
"receiver_tax_id_type": "MX-RFC",
"receiver_legal_name": "ESCUELA KEMPER URGATE",
"receiver_address": "<string>",
"receiver_district": "<string>",
"receiver_city": "<string>",
"receiver_country_id": "80",
"receiver_phone": "<string>",
"receiver_activity": "<string>",
"payment_conditions": "0",
"currency_id": 31
},
"details": [
{
"quantity": 1,
"sku": "aa111",
"line_description": "Prueba Koywe",
"unit_measure": "UN",
"unit_price": 1500,
"long_description": "Esta es una linea de prueba",
"modifier_amount": -100,
"total_taxes": 266,
"modifier_percentage": 0,
"total_amount_line": 1666,
"taxes": [
{
"tax_type_id": "362",
"tax_percentage": 16,
"tax_amount": 224
},
{
"tax_type_id": "368",
"tax_percentage": 3,
"tax_amount": 42
}
],
"additional": {
"mx_detail": {
"product_service_identifier": "01010101",
"measure_unit_code": "E48"
}
}
}
],
"totals": {
"net_amount": 1400,
"taxes_amount": 266,
"total_amount": 1666
}
}
Estado de respuesta en el resultado de la API REST
| status | descripción |
|---|---|
| 0 | El borrador fue creado exitosamente, firmado y enviado al SAT exitosamente. |
| 1 | Existen errores en los datos de entrada, por lo que el borrador no fue generado ni enviado al SAT. Los detalles del error estarán en error_message. |
| 2 | El borrador fue creado exitosamente; sin embargo, hay otros problemas (por ejemplo, falta de folios) que impidieron su envío al SAT. Los detalles del error estarán en error_message. |
{
"document_id": 377,
"header": {
"account_id": 14540,
"document_type_id": 82,
"document_type_taxbureau": "01",
"document_number": 1040447,
"received_issued_flag": 1,
"taxbureau_validation_status": null,
"issue_date": "2025-04-15",
"issuer_tax_id_code": "860517022-2",
"issuer_tax_id_type": "MX-RFC",
"issuer_legal_name": "Demo Mexico",
"issuer_address": "",
"issuer_district": "",
"issuer_city": "",
"issuer_country_id": 253,
"issuer_phone": "442020550",
"issuer_activity": "",
"receiver_tax_id_code": "1097491385-1",
"receiver_tax_id_type": "MX-RFC",
"receiver_legal_name": "ESCUELAa KEMPER URGATE",
"receiver_address": "",
"receiver_district": "",
"receiver_city": "",
"receiver_country_id": 66,
"receiver_phone": "<string>",
"receiver_activity": "<string>",
"document_status": 1,
"payment_conditions": "0",
"currency_id": 28
},
"details": [
{
"quantity": "1.000000",
"line_description": "Prueba Koywe",
"long_description": "Esta es una linea de prueba",
"unit_measure": "70",
"unit_price": "3660.000000",
"vat_status": "0",
"additional": {
"mx_detail": {
"product_service_identifier": "01010101",
"measure_unit_code": "E48"
}
}
}
],
"references": null,
"global_modifiers": null,
"totals": {
"net_amount": 3660,
"taxes_amount": 695.4,
"total_amount": "4355.40"
},
"electronic_document": {
"document_xml": "PD94bWwgdmVyc2lvbj0iMS4wIiB...",
"document_pdf": "JVBERi0xLjMKMyAwIG9iago8PC9..."
},
"payment_link": null,
"result": {
"status": 0,
"error_message": ""
},
"_links": {"self": {"href": "https://api-billing.koywe.com/V1/documents"}}
}
Referencia de API POST /documents
Documentación detallada del endpoint