Factuarea APIDevelopers

Vista prèvia de la substitució per canvi d'unitat base

Calcula, sense escriure res, què passa quan un producte se substitueix per un altre de nou amb una unitat base diferent, i genera l'impact_token que confirma AQUEST canvi exacte.

  • La unitat base d'un producte amb historial (estoc, moviments, presentacions, ofertes de proveïdor o variants amb estoc) no es pot editar al lloc: el seu base_unit_change.mode és replacement i la manera de canviar-la és substituir el producte.
  • És una LECTURA —demanar-la dues vegades sobre el mateix catàleg retorna el mateix token—, però exigeix products:write, perquè l'única cosa que fa la seva resposta és autoritzar una escriptura irreversible.
  • Envia target_base_unit (una de les nou unitats de mesura; una unitat d'embalatge com XPK o XBX només pot ser una presentació), equivalence (quantes unitats de la base ACTUAL equivalen a UNA unitat de la base NOVA, p. ex. 0.001 en passar de kg a g perquè 1 g = 0.001 kg; obligatòria entre una unitat de recompte i una de mesura, en qualsevol sentit; es calcula sola dins de la mateixa família de mesura; entre dues famílies de mesura diferents no existeix), un base_price opcional per confirmar, i presentations amb una decisió keep o retire per cada presentació del producte antic (les que ometis reben la decisió proposada).
  • La resposta llista a items cada element del pla, amb el seu before, el seu after, el seu group (review, converted o carried) i els seus flags (precision_loss, no_equivalence, fraction); items[].ref és l'id públic de l'element afectat, i null per al producte mateix i per a les entrades de tarifa i els components de pack, que no tenen id públic.
  • pending_documents llista els documents de venda sense emetre que continuaran apuntant al producte antic.
  • El token és una empremta del pla, no una credencial: si el catàleg, les tarifes o els packs canvien abans de confirmar, la confirmació es rebutja amb 422 base_unit_replacement_preview_stale i es demana una vista prèvia nova.
  • Un producte d'una altra empresa retorna 404 product_not_found.
POST
/products/{product}/base_unit_replacement/preview
AuthorizationBearer <token>

A: header

Paràmetres de ruta

product*string

Headers

Factuarea-Version?string

Fixa la versió de l'API (YYYY-MM-DD, versionat per data estil Stripe) per a aquesta petició; omet-lo per usar la versió fixada de la clau, o l'última si no n'hi ha cap. Versió no suportada → 400 unsupported_api_version; mal formada → 400 parameter_invalid_format. La versió efectiva es reflecteix a la capçalera de resposta Factuarea-Version. Consulta la guia de Versioning.

Formatdate
X-Active-Profile?string

Opera en nom d'una empresa filla (API key mestra de gestoria): passa el seu id públic (UUID v7) i la petició s'executa contra les dades d'aquella filla sense canviar l'scope, el tier ni l'environment de la clau (omet-lo per usar la pròpia empresa de la clau). UUID no vàlid → 400 parameter_invalid_uuid; id desconegut o no propi → 404 profile_not_found. Consulta la guia d'Acting on behalf.

Formatuuid

Cos de la petició

application/json

Definicions de TypeScript

Usa el tipus request body a TypeScript.

Cos de la resposta

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json