Factuarea APIDevelopers

Substituir un producte canviant la seva unitat base

Substitueix un producte per un de NOU amb una unitat base diferent i respon 201 amb el producte nou, el replaces del qual apunta a l'antic.

  • L'estoc, les presentacions que conservis, les variants, les ofertes de proveïdor, les entrades de tarifa i els components de pack es converteixen i passen al producte nou; l'antic es desactiva, conserva tot el seu historial, el seu replaced_by apunta al nou i mai no es pot reactivar.
  • És IRREVERSIBLE: no hi ha operació inversa, així que Idempotency-Key és obligatòria i reintentar amb la mateixa clau retorna la mateixa resposta sense crear un segon producte.
  • El cos és el de la vista prèvia més l'impact_token obligatori d'una vista prèvia vigent amb la mateixa petició.
  • No consumeix quota del pla: el producte antic deixa de comptar i l'ús net és zero.
  • Quan la conversió perd precisió o no hi ha equivalència, cal confirmar base_price (422 base_unit_replacement_price_confirmation_required).
  • Rebuigs: 422 business_rule_violation amb subcodi product_already_replaced, base_unit_replacement_conversion_unavailable o base_unit_replacement_blocked_by_packs; 422 parameter_invalid_value amb subcodi base_unit_replacement_same_unit (el destí ja és la unitat base del producte), base_unit_replacement_equivalence_invalid, base_unit_replacement_price_confirmation_required, base_unit_replacement_preview_stale o base_unit_replacement_decision_invalid.
  • L'esdeveniment product.replaced es publica amb el producte nou com a objecte.
  • Un producte d'una altra empresa retorna 404 product_not_found.
POST
/products/{product}/base_unit_replacement
AuthorizationBearer <token>

A: header

Paràmetres de ruta

product*string

Headers

Idempotency-Key*string

Clau opaca generada pel client (fins a 255 caràcters; es recomana UUID v7) que permet reintents segurs: la primera resposta s'emmagatzema i es reprodueix en les repeticions sense tornar a executar la mutació. Reutilitzar una clau amb un cos diferent retorna 409 idempotency_key_reused. Consulta la guia d'idempotència. Obligatòria en aquesta operació: repetir-la produeix un efecte irreversible (un correu enviat, un fitxer generat, una crida a un tercer o un càrrec), per la qual cosa una petició sense aquesta capçalera es rebutja amb 422 idempotency_key_required abans d'executar lògica de negoci.

Longitud1 <= length <= 255
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