Billing Report

Devuelve el desglose de aranceles e impuestos de un manifiesto courier ya procesado. La estructura sigue el layout Destinación Simplificada de Importación (15 columnas) que usan los despachantes argentinos para conciliar derechos, IVA y tasa estadística por guía aérea (AWB).

Toda la respuesta viene en ARS, ya convertida desde los valores internos en USD usando el exchange_rate enviado en la request. No volver a multiplicar en el cliente.


GET/v1/couriers/manifests/:manifest/billing-report

El endpoint

Devuelve el reporte de billing de un manifiesto como JSON. La respuesta usa el sobre estándar { success, data } del resto de la API.

Path parameters

  • Name
    manifest
    Type
    string
    Description

    Número de manifiesto. Ejemplo 045-16286642.

Query parameters

  • Name
    exchange_rate
    Type
    number
    Description

    ARS por USD aplicado a todas las columnas monetarias. Rango 0.0001..99999.99. El despachante envía este valor porque la aduana argentina aplica el tipo de cambio oficial del día en que se presenta cada declaración.

  • Name
    regime_type
    Type
    enum
    Description

    Régimen aplicado a la columna derechos_ars. Uno de mixed (default), commercial, personal. Ver tabla de regímenes abajo.

Selección de régimen

regime_typeQué proyecta en derechos_ars
mixed (default)Derecho de importación base almacenado al momento del cálculo.
commercialDerecho del Régimen General de Importación.
personalDerecho del Régimen Simplificado / Courier.

Solo cambia la columna Derechos (ARS) entre regímenes. IVA, tasa estadística e impuesto interno son idénticos en los tres.

Request

GET
/v1/couriers/manifests/:manifest/billing-report
curl -G "https://app.price2b.com/api/v1/couriers/manifests/045-16286642/billing-report" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  --data-urlencode "exchange_rate=1500.00" \
  --data-urlencode "regime_type=mixed"

Response

{
  "success": true,
  "data": {
    "manifest_id": "045-16286642",
    "regime_type": "mixed",
    "exchange_rate": 1500.00,
    "currency": "ARS",
    "generated_at": "2026-05-10T12:34:56-03:00",
    "rows": [
      {
        "fecha": "2026-04-15",
        "master": "071-57898304",
        "guia_hija": "AWB12345",
        "consignatario": "JUAN PEREZ",
        "peso_kg": 2.50,
        "bultos": 1,
        "fob_ars": 45000.00,
        "derechos_ars": 5400.00,
        "iva_ars": 9450.00,
        "tasa_estadistica_ars": 0.00,
        "impuesto_interno_ars": 0.00,
        "antidumping_ars": 0.00,
        "impuesto_ley_ars": 0.00,
        "cambio_aduana": 1500.00,
        "posicion_ncm": "8517.13.00.000W"
      }
    ],
    "summary": {
      "rows_count": 141,
      "exchange_rate": 1500.00,
      "total_fob_ars": 6345000.00,
      "total_derechos_ars": 761400.00,
      "total_iva_ars": 1332450.00,
      "total_tasa_estadistica_ars": 0.00,
      "total_impuesto_interno_ars": 0.00,
      "total_antidumping_ars": 0.00,
      "total_impuesto_ley_ars": 0.00,
      "total_taxes_ars": 2093850.00
    }
  }
}

El objeto data.rows[] — 15 columnas

Cada fila representa un ítem del manifiesto. El orden es por Master (MAWB) y luego por House guide (AWB). Todos los campos *_ars ya vienen multiplicados por el exchange_rate de la request.

  • Name
    fecha
    Type
    string | null
    Description

    Fecha de creación del ítem en formato ISO YYYY-MM-DD.

  • Name
    master
    Type
    string
    Description

    Número de Master AWB. String para preservar ceros a la izquierda.

  • Name
    guia_hija
    Type
    string
    Description

    Número de House AWB.

  • Name
    consignatario
    Type
    string
    Description

    Nombre del consignatario tal como fue declarado.

  • Name
    peso_kg
    Type
    number
    Description

    Peso neto en kilogramos, redondeado a 2 decimales.

  • Name
    bultos
    Type
    integer
    Description

    Cantidad de bultos.

  • Name
    fob_ars
    Type
    number
    Description

    Valor FOB en ARS.

  • Name
    derechos_ars
    Type
    number
    Description

    Derechos de importación en ARS. La cifra depende de regime_type.

  • Name
    iva_ars
    Type
    number
    Description

    IVA en ARS.

  • Name
    tasa_estadistica_ars
    Type
    number
    Description

    Tasa estadística en ARS.

  • Name
    impuesto_interno_ars
    Type
    number
    Description

    Impuesto interno en ARS.

  • Name
    antidumping_ars
    Type
    number
    Description

    Derecho antidumping en ARS. Siempre 0.00 en esta versión de la API.

  • Name
    impuesto_ley_ars
    Type
    number
    Description

    Impuesto de ley en ARS. Siempre 0.00 en esta versión de la API.

  • Name
    cambio_aduana
    Type
    number
    Description

    Tipo de cambio (ARS/USD) usado para esta fila. Hace eco del exchange_rate.

  • Name
    posicion_ncm
    Type
    string
    Description

    Posición arancelaria usada para el cálculo (código NCM/HTS).

antidumping_ars e impuesto_ley_ars son campos estables reservados para uso futuro. Hoy siempre devuelven 0.00. Cuando se empiecen a calcular, los valores llegarán por el mismo campo sin cambios de contrato — diseñá la integración para aceptar valores > 0.00 ahí.


El objeto data.summary — totales

  • Name
    rows_count
    Type
    integer
    Description

    Cantidad de filas en data.rows.

  • Name
    exchange_rate
    Type
    number
    Description

    Tipo de cambio (ARS/USD) hecho eco desde la request.

  • Name
    total_fob_ars
    Type
    number
    Description

    Suma de fob_ars.

  • Name
    total_derechos_ars
    Type
    number
    Description

    Suma de derechos_ars.

  • Name
    total_iva_ars
    Type
    number
    Description

    Suma de iva_ars.

  • Name
    total_tasa_estadistica_ars
    Type
    number
    Description

    Suma de tasa_estadistica_ars.

  • Name
    total_impuesto_interno_ars
    Type
    number
    Description

    Suma de impuesto_interno_ars.

  • Name
    total_antidumping_ars
    Type
    number
    Description

    Suma de antidumping_ars.

  • Name
    total_impuesto_ley_ars
    Type
    number
    Description

    Suma de impuesto_ley_ars.

  • Name
    total_taxes_ars
    Type
    number
    Description

    Suma de todas las columnas de impuestos: derechos_ars + iva_ars + tasa_estadistica_ars + impuesto_interno_ars + antidumping_ars + impuesto_ley_ars.


Errores

401 Unauthorized — token faltante o inválido

404 Not Found — manifiesto no encontrado o no accesible

Devuelve 404 en lugar de 403 intencionalmente, para no filtrar la existencia de manifiestos entre cuentas.

422 Unprocessable Entity — falló validación

Causas comunes:

  • exchange_rate faltante, no numérico, ≤ 0 o > 99999.99.
  • regime_type fuera del enum mixed | commercial | personal.

401 Unauthorized

{ "message": "Unauthenticated." }

404 Not Found

{
  "success": false,
  "error": "manifest_not_found",
  "message": "El manifiesto solicitado no existe o no pertenece a su cuenta.",
  "manifest_number": "045-16286642"
}

422 Validation failed

{
  "success": false,
  "message": "Validation failed",
  "errors": {
    "exchange_rate": [
      "exchange_rate is required (ARS per USD applied by customs)."
    ]
  }
}

Tips de integración

  • Currency: cada campo *_ars ya está multiplicado por exchange_rate. No multiplicar de nuevo en el cliente.
  • Exchange rate: el valor que envías se usa para toda la respuesta. La aduana argentina aplica el tipo de cambio oficial del día de presentación, así que típicamente se pasa el del día de la conciliación.
  • Antidumping / Impuesto ley: siempre 0.00 en esta versión. Tratarlos como campos estables que pueden empezar a devolver valores > 0 en el futuro sin cambios de contrato.
  • Ordering: las filas vienen ordenadas por Master AWB y luego por House AWB. No hay garantía de orden alfabético por consignatario o NCM.
  • Account scoping: un manifiesto de otra cuenta devuelve 404 manifest_not_found, no 403. No usar 404 como señal de que el manifiesto no existe en ningún lado — solo que no es accesible con el token actual.
  • Manifests en proceso: si se consulta un manifiesto mientras los cálculos de aduana todavía están corriendo, los ítems sin cálculo se devuelven con 0.00 en las columnas de impuestos y fob_ars basado en el valor declarado. Volver a consultar después para obtener las cifras finales.

Was this page helpful?