Complemento Carta Porte 2.0 (Traslado)¶
Para timbrar una factura con Complemento Carta Porte 2.0 es necesario tomar en cuenta que se puede realizar con el efecto contable de Traslado.
Definición¶
POST https://api.avanto.mx/v2/sales
Información
Los atributos marcados con son requeridos.
Cuerpo de solicitud¶
| Recurso | Tipo | Default | Descripción |
|---|---|---|---|
| company_subsidiary_id | integer | none | ID de la sucursal emisora. |
| subsidiary_id | integer | 0 | ID de la sucursal del cliente (receptor). |
| accounting_effect | string | "T" | Efecto contable del comprobante en este caso será T. Traslado. |
| cfdi_regimenfiscal | string | "" | Régimen Fiscal del emisor (Emisor.RegimenFiscal) |
| cfdi_usocfdi | string | "" | Uso del CFDI (Receptor.UsoCFDI) |
| cfdi_exportacion | string | "01" | Cfdi Exportación: "01" - No aplica |
| cfdi_facactadquiriente | string | "" | Cfdi FactAtrAdquirente |
| soldItems | Object | Productos del comprobante | |
| soldItems.quantity | decimal | 0.0000 | Cantidad |
| soldItems.unit_of_measure | string | "" | Unidad de medida del producto (interna) |
| soldItems.code | string | "" | Código o clave del producto (interna) |
| soldItems.description | string | "" | Descripción del producto |
| soldItems.unit_price | decimal | 0.0000 | Precio unitario |
| soldItems.discount | decimal | 0.0000 | Monto de descuento |
| soldItems.non_taxable | tinyint | 0 | Exento o libre de impuestos: 0 - No exento 1 - Exento |
| soldItems.cfdi_claveprodserv | string | "01010101" | Clave del producto o servicio del catálogo del SAT |
| soldItems.cfdi_claveunidad | string | "H87" | Clave de unidad del catálogo del SAT |
| soldItems.cfdi_cuentapredial | string | "" | No. cuenta predial para el caso de recibos de arrendamiento |
| soldItems.cfdi_objetoimp | string | "" | Objeto a impuestos. "01" - No objeto de impuesto "02" - Sí objeto de impuesto "03" - Sí objeto del impuesto y no obligado al desglose |
| soldItems.notes | string | "" | Datos adicionales para imprimir en el comprobante junto al artículo |
| cartaporte | Object | Complemento CartaPorte 2.0 | |
| cartaporte.transpinternac | string | "No" | Transportación Internacional: - "Sí" - "No" |
| cartaporte.totaldistrec | float | 0.0000 | Total de distancia recorrida. |
| cartaporte.mer_pesobrutototal | float | 0.0000 | Peso bruto total de la mercancía. |
| cartaporte.mer_unidadpeso | string | "" | Unidad de peso de la mercancía (Catálogo ). |
| cartaporte.mer_pesonetototal | float | 0.0000 | Peso neto total de la mercancía. |
| cartaporte.mer_cargoportasacion | float | 0.0000 | Cargo Por Tasación. |
| cartaporte.mer_numtotalmercancias | int | 0 | Número total de mercancías. |
| cartaporte.ubicacion | Object | Ubicacion como mínimo deben de haber dos ubicaciones una como Origen y otra como Destino. | |
| cartaporte.ubicacion.tipoubicacion | string | "" | Tipo de ubicación: - "Origen" - "Destino" |
| cartaporte.ubicacion.idubicacion | string | "" | Id de la Ubicación debe ser un string con el prefijo "OR" cuando es un Origen y "DE" en caso de que sea un Destino. Ejemplo: OR000003 |
| cartaporte.ubicacion.rfcremitentedestinatario | string | "" | RFC remitente destinatario |
| cartaporte.ubicacion.nombreremitentedestinatario | string | "" | Nombre del remitente destinatario. |
| cartaporte.ubicacion.numregidtrib | string | "" | Número de registro de identidad fiscal |
| cartaporte.ubicacion.residenciafiscal | string | "" | Residencia fiscal. |
| cartaporte.ubicacion.fechahorasalidallegada | string | "" | Fecha hora salida llegada. Ejemplo: 2022-05-04 12:00:00:23.000 |
| cartaporte.ubicacion.distanciarecorrida | float | 0 | Distancia recorrida, (Solo se llena cuando se registra una ubicación de tipo "Destino", debe de ser igual al total de distancia recorrida en el objeto carta porte cartaporte.totaldistrec) |
| cartaporte.ubicacion.dom_calle | string | "" | Domicilio calle. |
| cartaporte.ubicacion.dom_numeroexterior | string | "" | Número exterior. |
| cartaporte.ubicacion.dom_numerointerior | string | "" | Número interior. |
| cartaporte.ubicacion.dom_colonia | string | "" | Domicilio colonia. |
| cartaporte.ubicacion.dom_localidad | string | "" | Domicilio localidad. |
| cartaporte.ubicacion.dom_referencia | string | "" | Domicilio referencia. |
| cartaporte.ubicacion.dom_municipio | string | "" | Domicilio municipio. |
| cartaporte.ubicacion.dom_estado | string | "" | Domicilio estado. Ejemplo: "ROO" |
| cartaporte.ubicacion.dom_pais | string | "" | Domicilio país. Ejemplo: "MEX" |
| cartaporte.ubicacion.dom_codigopostal | string | "" | Domicilio código postal. Ejemplo: "77533". |
| cartaporte.mercancia | Object | Mercancía array de objetos. | |
| cartaporte.mercancia.bienestransp | integer | 0 | ID Del bien transportado. |
| cartaporte.mercancia.clavestcc | string | "" | Campo opcional para registra la clave de producto conforme al catálogo del Estándar para la Transportación de Productos |
| cartaporte.mercancia.descripcion | string | "" | Descripción de la mercancía. Ejemplo: Calzado, excepto caucho o plástico |
| cartaporte.mercancia.cantidad | integer | 0 | Cantidad de bienes trasladados |
| cartaporte.mercancia.claveunidad | string | "" | La unidad debe corresponder con la descripción de los bienes o mercancías registrados. Ejemplo: PR |
| cartaporte.mercancia.unidad | string | "" | Unidad en la que se registró la mercancía |
| cartaporte.mercancia.dimensiones | string | "" | Dimensiones de la mercancía. |
| cartaporte.mercancia.materialpeligroso | string | "No" | Material peligroso: - "Sí" - "No" |
| cartaporte.mercancia.cvematerialpeligroso | string | "" | Clave de material peligroso, campo condicional solo y tan solo si cartaporte.mercancia.materialpeligroso se llena con "Sí". |
| cartaporte.mercancia.embalaje | string | "" | Embalaje de la mercancía. Ejemplo: "4G" |
| cartaporte.mercancia.descripembalaje | string | "" | Descripción del embalaje: Ejemplo: "Cajas de Cartón" |
| cartaporte.mercancia.pesoenkg | float | 0.0000 | Peso en Kg. |
| cartaporte.mercancia.valormercancia | float | 0.0000 | Valor de la mercancía (ValorMercancia) |
| cartaporte.mercancia.moneda | string | "" | Moneda. Ejemplo: "MXN" |
| cartaporte.mercancia.fraccionarancelaria | string | "" | Fracción arancelaria (FraccionArancelaria) |
| cartaporte.mercancia.uuidcomercioext | string | "" | UUID del comprobante de comercio exterior |
| cartaporte.mercancia.detm_unidadpesomerc | string | "" | Unidad de peso de la mercancía. Ejemplo: "TNE" |
| cartaporte.mercancia.detm_pesobruto | float | "" | Peso bruto. Ejemplo: 10342.012. |
| cartaporte.mercancia.detm_pesoneto | float | "" | Peso neto. Ejemplo: 9848.28. |
| cartaporte.mercancia.detm_pesotara | float | "" | Peso tara. Ejemplo: 493.732. |
| cartaporte.mercancia.detm_numpiezas | integer | "" | Número de piezas. Ejemplo: 4568. |
| cartaporte.autotransporte * | Object | Autotransporte | |
| cartaporte.autotransporte.permsct | string | "" | Permiso SCT (Sale de los catálogos del SAT). |
| cartaporte.autotransporte.numpermisosct | string | "" | Número del permiso del SCT. |
| cartaporte.autotransporte.idv_configvehicular | string | "" | Configuración vehicular (Sale de los catálogos del SAT). |
| cartaporte.autotransporte.idv_placavm | string | "" | Placa Vehículo Motor (PlacaVM). Ejemplo: "501&&8" |
| cartaporte.autotransporte.idv_aniomodelovm | string | "" | Año del modelo del vehículo. |
| cartaporte.autotransporte.seg_asegurarespcivil | string | "" | Aseguradora de Responsabilidad Civil |
| cartaporte.autotransporte.seg_polizarespcivil | string | "" | Póliza de R.C |
| cartaporte.autotransporte.seg_aseguramedambiente | string | "" | Aseguradora de Medio Ambiente |
| cartaporte.autotransporte.seg_polizamedambiente | string | "" | Póliza de M.A |
| cartaporte.autotransporte.seg_aseguracarga | string | "" | Aseguradora de Carga |
| cartaporte.autotransporte.seg_polizacarga | string | "" | Póliza de Carga |
| cartaporte.tiposFigura | Object | Valor de la Prima del Seguro | |
| cartaporte.tiposFigura.tipofigura | string | "" | Tipo figura |
| cartaporte.tiposFigura.rfcfigura | string | "" | RFC del operador |
| cartaporte.tiposFigura.numlicencia | string | "" | Número de licencia |
| cartaporte.tiposFigura.nombrefigura | string | "" | Nombre del operador |
| cartaporte.tiposFigura.numregidtribfigura | string | "" | Número de registro tributario figura. |
| cartaporte.tiposFigura.dom_calle | string | "" | Domicilio calle |
| cartaporte.tiposFigura.dom_numeroexterior | string | "" | Domicilio número exterior |
| cartaporte.tiposFigura.dom_numerointerior | string | "" | Domicilio número interior |
| cartaporte.tiposFigura.dom_colonia | string | "" | Domicilio colonia |
| cartaporte.tiposFigura.dom_localidad | string | "" | Domicilio localidad |
| cartaporte.tiposFigura.dom_referencia | string | "" | Domicilio referencia |
| cartaporte.tiposFigura.dom_municipio | string | "" | Domicilio Municipio |
| cartaporte.tiposFigura.dom_estado | string | "" | Domicilio Estado |
| cartaporte.tiposFigura.dom_pais | string | "" | Domicilio País |
| cartaporte.tiposFigura.dom_codigopostal | string | "" | Domicilio Código postal |
Información
Los datos que deben considerarse en este tipo de CFDI (factura) son:
- El campo “Total” debe contener valor “cero”.
- La clave del RFC del receptor del CFDI (factura), debe ser la misma que la registrada para el emisor, en caso de que se integre el complemento Comercio Exterior, se debe omitir la validación que requiere el registro del RFC genérico en el campo emisor RFC cuando el tipo de comprobante sea traslado.
- La clave registrada en el campo “Clave de producto o servicio” (ClaveProdServ) de la sección “Conceptos” del CFDI debe ser la misma que se registre en el campo “Bienes Transportados” (BienesTransp) de la sección “Mercancia” del complemento Carta Porte.
Se podrá amparar el traslado de bienes y/o mercancías de procedencia extranjera con el CFDI (factura) de tipo traslado con complemento Carta Porte, siempre que se registre el número de pedimento de importación, con su representación impresa en papel o en formato digital. Los campos no mencionados en este apartado se deben registrar conforme se establece en el Anexo 20 “Guía de llenado de los comprobantes fiscales digitales por Internet”.
Ejemplos¶
Con Cliente existente¶
Payload¶
{
"accounting_effect": "T",
"subsidiary_id": 1648,
"cfdi_regimenfiscal": "601",
"currency_id": 0,
"company_subsidiary_id": 1,
"cfdi_exportacion": "01",
"cfdi_usocfdi": "S01",
"payment_method": "PUE",
"payment_options": 99,
"soldItems": [
{
"quantity": 2,
"description": "Computadoras Chidas",
"unit_price": 0,
"cfdi_claveprodserv": "43211507",
"cfdi_objetoimp": "01",
"unit_of_measure": "Pieza",
"code": "",
"cfdi_cuentapredial": "",
"notes": ""
}
],
"cartaporte": {
"transpinternac": "No",
"totaldistrec": 100,
"mer_pesobrutototal": 100,
"mer_unidadpeso": "KGM",
"mer_pesonetototal": 100,
"mer_numtotalmercancias": 1,
"ubicacion": [
{
"tipoubicacion": "Origen",
"idubicacion": "OR000002",
"rfcremitentedestinatario": "EKU9003173C9",
"nombreremitentedestinatario": "ESCUELA KEMPER URGATE",
"fechahorasalidallegada": "2022-05-26 15:15:24.000",
"dom_estado": "ROO",
"dom_pais": "MEX",
"dom_codigopostal": "77533"
},
{
"tipoubicacion": "Destino",
"idubicacion": "DE000002",
"rfcremitentedestinatario": "XAXX010101000",
"nombreremitentedestinatario": "Publico en general",
"fechahorasalidallegada": "2022-05-26 15:15:59.000",
"distanciarecorrida": 100,
"dom_estado": "GRO",
"dom_pais": "MEX",
"dom_codigopostal": "39000"
}
],
"mercancia": [
{
"bienestransp": 43211507,
"clavestcc": "",
"descripcion": "Computadoras hp",
"cantidad": 20,
"claveunidad": "H87",
"pesoenkg": "100"
}
],
"autotransporte": [
{
"permsct": "TPAF01",
"numpermisosct": "0X2XTXZ0Z5Z0Z3Z2Z1Z2",
"idv_configvehicular": "VL",
"idv_placavm": "501&&1",
"idv_aniomodelovm": "2017",
"seg_asegurarespcivil": "axxa seguros",
"seg_polizarespcivil": "123456789"
}
],
"tiposFigura": [
{
"tipofigura": "01",
"rfcfigura": "EKU9003173C9",
"numlicencia": "123456789",
"nombrefigura": "ESCUELA KEMPER URGATE",
"dom_estado": "ROO",
"dom_pais": "MEX",
"dom_codigopostal": "77533"
}
]
}
}
cURL¶
curl --request PUT \
--url 'https://api.avanto.mx/v2/sales' \
--header 'authorization: Bearer [Access-Token]' \
--header 'content-type: application/json' \
--data '{
"accounting_effect": "T",
"subsidiary_id": 1648,
"cfdi_regimenfiscal": "601",
"currency_id": 0,
"company_subsidiary_id": 1,
"cfdi_exportacion": "01",
"cfdi_usocfdi": "S01",
"payment_method": "PUE",
"payment_options": 99,
"soldItems": [
{
"quantity": 2,
"description": "Computadoras Chidas",
"unit_price": 0,
"cfdi_claveprodserv": "43211507",
"cfdi_objetoimp": "01",
"unit_of_measure": "Pieza",
"code": "",
"cfdi_cuentapredial": "",
"notes": ""
}
],
"cartaporte": {
"transpinternac": "No",
"totaldistrec": 100,
"mer_pesobrutototal": 100,
"mer_unidadpeso": "KGM",
"mer_pesonetototal": 100,
"mer_numtotalmercancias": 1,
"ubicacion": [
{
"tipoubicacion": "Origen",
"idubicacion": "OR000002",
"rfcremitentedestinatario": "EKU9003173C9",
"nombreremitentedestinatario": "ESCUELA KEMPER URGATE",
"fechahorasalidallegada": "2022-05-26 15:15:24.000",
"dom_estado": "ROO",
"dom_pais": "MEX",
"dom_codigopostal": "77533"
},
{
"tipoubicacion": "Destino",
"idubicacion": "DE000002",
"rfcremitentedestinatario": "XAXX010101000",
"nombreremitentedestinatario": "Publico en general",
"fechahorasalidallegada": "2022-05-26 15:15:59.000",
"distanciarecorrida": 100,
"dom_estado": "GRO",
"dom_pais": "MEX",
"dom_codigopostal": "39000"
}
],
"mercancia": [
{
"bienestransp": 43211507,
"clavestcc": "",
"descripcion": "Computadoras hp",
"cantidad": 20,
"claveunidad": "H87",
"pesoenkg": "100"
}
],
"autotransporte": [
{
"permsct": "TPAF01",
"numpermisosct": "0X2XTXZ0Z5Z0Z3Z2Z1Z2",
"idv_configvehicular": "VL",
"idv_placavm": "501&&1",
"idv_aniomodelovm": "2017",
"seg_asegurarespcivil": "axxa seguros",
"seg_polizarespcivil": "123456789"
}
],
"tiposFigura": [
{
"tipofigura": "01",
"rfcfigura": "EKU9003173C9",
"numlicencia": "123456789",
"nombrefigura": "ESCUELA KEMPER URGATE",
"dom_estado": "ROO",
"dom_pais": "MEX",
"dom_codigopostal": "77533"
}
]
}
}'
Respuesta¶
La respuesta en formato: application/json, text/json.
{
"id": 17365,
"company_subsidiary_id": 1,
"accounting_effect": "T",
"serial_number": "T",
"folio": 5,
"emitted": "2022-06-06 14:06:38",
"subsidiary_id": 1686,
"carrier": "",
"shipping": "",
"currency_id": 0,
"exchange_rate": "0.0000",
"payment_options": "99",
"payment_method": "PPD",
"items": 0,
"pieces": "2.000000",
"subtotal": "0.0000",
"discount": "0.0000",
"subtotal_discount": "0.0000",
"withheld_taxes_total": "0.0000",
"transferred_taxes_total": "0.0000",
"total": "0.0000",
"received": "2022-06-06",
"days_to_pay": 0,
"receivable": 1,
"date_of_payment": null,
"deposited": 0,
"terms_conditions": "",
"canceled": 0,
"canceled_date": null,
"notes": "",
"tips": "0.0000",
"balance": null,
"created_at": "2022-06-06 14:06:38",
"cartaPorte": {
"id": 10,
"sale_id": 17365,
"version": "20",
"transpinternac": "No",
"entradasalidamerc": null,
"paisorigendestino": null,
"viaentradasalida": null,
"totaldistrec": "100.00",
"mer_pesobrutototal": "100",
"mer_unidadpeso": "KGM",
"mer_pesonetototal": "100.00",
"mer_numtotalmercancias": 1,
"mer_cargoportasacion": null,
"active": 1,
"created_at": "2022-06-06 14:06:38",
"created_by": 0
}
}
Si se quiere ver todos los objetos relacionados al comprobante. Se necesita hacer la solicitud de la siguiente manera:
curl --request POST \
--url 'https://api.avanto.mx/v2/sales/17365?expand=cfdidetails,soldItems,cartaPorte' \
--header 'authorization: Bearer [Access-Token]' \
--header 'content-type: application/json'