returnEasier
Per a la teva botiga
Per a la teva botigaComerciant7 min de lectura

Què és l'audit log i com exporto el meu històric auditable?

L'audit log de returnEasier és un registre immutable de cada sol·licitud i cada esdeveniment, encadenat amb hashos SHA-256 perquè ningú el pugui alterar. Des de Compliment → Exportar pots descarregar un ZIP amb dos CSV, els PDF de justificant de recepció i un fitxer d'integritat. Fins a 100 sol·licituds es descarreguen a l'instant; entre 101 i 1000 t'arriben per correu.

L'audit log de returnEasier és un registre immutable de tot el que passa amb les teves sol·licituds: cada cop que se'n crea una, s'aprova, es marca com a rebuda o es reemborsa, queda una fila que no es pot modificar ni esborrar. Cada esdeveniment se segella amb un hash SHA-256 encadenat amb l'anterior, formant una cadena a prova de manipulació. Quan necessites lliurar proves —a un auditor, a l'administració o al teu assessor— vas a Compliment → Exportar i descarregues un ZIP amb tot l'històric i un fitxer d'integritat per verificar-lo.


Per què el registre és immutable?

La taula d'esdeveniments és append-only: la base de dades només admet afegir files. Un trigger de PostgreSQL rebutja qualsevol intent d'UPDATE o DELETE sobre ella, vingui d'on vingui (l'app, un script, una migració o un atacant amb permisos). No és una promesa de configuració: està imposat al motor de la base de dades.

Sobre aquesta base es construeix la cadena de hashos:

  • Cada esdeveniment es converteix a un JSON canònic (claus ordenades, sense ambigüitat) i se li calcula un SHA-256.
  • Aquest hash es calcula incloent el hash de l'esdeveniment anterior (hash_anterior). El primer esdeveniment de cada cadena és el «gènesi».
  • Si algú canviés una sola dada d'un esdeveniment passat, el seu hash canviaria i deixaria de quadrar amb el hash_anterior de l'esdeveniment següent: la manipulació es delata sola.

Les sol·licituds (return_requests) porten també el seu propi hash i hash anterior, que s'inclouen a l'exportació perquè es puguin verificar fora de l'app.

Com exporto el meu històric auditable?

L'exportació viu a Compliment → Exportar (ruta /app/settings/compliance/export) dins de l'app, al Shopify Admin.

  1. Obre Compliment → Exportar al menú lateral.
  2. Indica un interval de dates: «des de» i «fins a» (format data). Pots deixar tots dos buits per exportar tot el teu històric. Les dates s'interpreten en la zona horària de la teva botiga (per defecte Europe/Madrid).
  3. Prem exportar. Segons el nombre de sol·licituds de l'interval, returnEasier fa una de dues coses (vegeu més avall).

Descàrrega a l'instant o per correu, segons el volum

returnEasier ajusta el lliurament a la mida de l'interval per no bloquejar el navegador amb descàrregues enormes:

Sol·licituds a l'interval Què passa
0 – 100 Es genera i es descarrega el ZIP a l'instant.
101 – 1000 returnEasier t'envia el ZIP per correu (enllaç temporal).
Més de 1000 L'exportació es rebutja: acota l'interval de dates.

El límit dur és de 1000 sol·licituds per exportació. Si el teu històric és més gran, divideix-lo en diversos intervals de dates (per exemple, trimestre a trimestre) i exporta cadascun.

Què hi ha dins del ZIP?

L'arxiu s'anomena returneasier-auditoria-<la-teva-botiga>-<data>.zip i conté:

  • LLEGEIXME.txt — guia en llenguatge clar: què és cada fitxer i com verificar la integritat.
  • solicitudes.csv — una fila per sol·licitud, amb columnes com public_id, tipo, estado, creada_en_utc, resuelta_en_utc, pedido, cliente_email, cliente_nombre, importe, moneda, motivo, resolucion_preferida, notas_cliente, hash, hash_anterior i refund_id.
  • eventos.csv — el registre append-only complet: public_id, evento, actor, actor_id, fecha_utc, hash, hash_anterior i payload_json.
  • pdfs/ — els PDF de justificant de recepció de cada desistiment, un per sol·licitud.
  • INTEGRITY.json — el fitxer d'integritat: algorisme (SHA-256), recomptes, el hash de cada fitxer del ZIP i la verificació de cada cadena d'esdeveniments.

Com verifico la integritat de l'exportació?

L'INTEGRITY.json és la peça clau per demostrar que res no s'ha tocat:

  • Porta el hash SHA-256 de cada fitxer del ZIP. Recalcula el hash de, per exemple, eventos.csv amb qualsevol eina estàndard i compara'l amb el que hi figura.
  • Inclou la verificació de cada cadena d'esdeveniments: per cada sol·licitud indica si la seva cadena està «ok» o «trencada» i, si escau, el motiu (cadena bifurcada, cicle, hash que no recompon…).
  • Si algun PDF no es va poder recuperar (per exemple, perquè es va esborrar per una sol·licitud RGPD), queda anotat a la llista de PDF no disponibles amb el seu motiu, en lloc de fer fallar tota l'exportació.

El mateix INTEGRITY.json no pot contenir el seu propi hash, així que és l'únic fitxer que no s'autocomprova; tota la resta sí.

Relació amb altres funcions

L'audit log és la base de les plantilles legals i del PDF de justificant de recepció (vegeu «Què conté el PDF de justificant de recepció del desistiment?»): cada confirmació de desistiment que s'envia al client queda ancorada a la cadena de hashos. Per entendre quins correus generen aquests esdeveniments, mira «Quins correus envia returnEasier i a qui?». I abans de desinstal·lar o cancel·lar, convé exportar l'històric: ho explica «Què passa amb les meves dades si desinstal·lo o cancel·lo returnEasier?».

T'ha servit aquest article?