{
  "id": "calibrare-plati",
  "slug": "calibrare-plati",
  "is_calibration": true,
  "app": {
    "name": "Plăți Test",
    "package_id": "org.example.platitest",
    "version": "2.3.0",
    "apk_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
  },
  "owner": "Instituție fictivă pentru calibrare",
  "supplier": "Furnizor fictiv pentru calibrare",
  "journey": {
    "ro": "Plata unei taxe fictive fără autentificare",
    "en": "Paying a fictional fee without signing in"
  },
  "device": {
    "model": "Pixel 8a (laborator)",
    "os": "Android 16",
    "locale": "ro-RO",
    "lane": "stock + instrumented"
  },
  "tested_at": "2026-08-05T12:40:00+03:00",
  "method_version": "PPR-1.0",
  "audit_level": "CAL",
  "headline": {
    "ro": "Politica, declarația magazinului și traseul testat au fost consecvente.",
    "en": "The policy, store declaration and tested journey were consistent."
  },
  "dek": {
    "ro": "Un rezultat bun este publicat cu aceeași precizie ca o discrepanță.",
    "en": "A good result is published with the same precision as a discrepancy."
  },
  "verdict": "declared_and_observed",
  "states": [
    {
      "id": "before_choice",
      "label": {
        "ro": "Înainte să alegi",
        "en": "Before choice"
      },
      "service_result": {
        "ro": "Aplicația a afișat taxa și opțiunile fără servicii opționale.",
        "en": "The app displayed the fee and options without optional services."
      },
      "events": [
        {
          "moment": "app_open",
          "policy": {
            "ro": "Politica descrie numai infrastructura de serviciu și procesatorul de plăți.",
            "en": "The policy describes only service infrastructure and the payment processor."
          },
          "store": {
            "ro": "Magazinul declară date financiare pentru funcționalitate.",
            "en": "The store label declares financial data for functionality."
          },
          "device": {
            "ro": "Au fost observate numai config.platitest.example și api.platitest.example.",
            "en": "Only config.platitest.example and api.platitest.example were observed."
          },
          "evidence_strength": "connection_observed",
          "limitations": {
            "ro": "Testul nu stabilește ce funcții neexercitate ar putea folosi alte servicii.",
            "en": "The test does not establish what unexercised features might use."
          },
          "domains": [
            "config.platitest.example",
            "api.platitest.example"
          ]
        }
      ]
    },
    {
      "id": "refused",
      "label": {
        "ro": "După ce ai refuzat",
        "en": "After refusal"
      },
      "service_result": {
        "ro": "Nu exista o alegere de analiză; notificările opționale au fost refuzate fără efect asupra plății.",
        "en": "There was no analytics choice; optional notifications were refused without affecting payment."
      },
      "events": [
        {
          "moment": "notifications_refused",
          "policy": {
            "ro": "Politica separă notificările de plata de bază.",
            "en": "The policy separates notifications from core payment."
          },
          "store": {
            "ro": "Magazinul declară notificările ca opționale.",
            "en": "The store label describes notifications as optional."
          },
          "device": {
            "ro": "Plata a rămas disponibilă și nu a apărut nicio destinație suplimentară.",
            "en": "Payment remained available and no additional destination appeared."
          },
          "evidence_strength": "service_outcome_and_connections",
          "limitations": {
            "ro": "Nu rezultă că toate notificările viitoare sunt imposibile.",
            "en": "This does not establish that every future notification is impossible."
          },
          "domains": []
        }
      ]
    },
    {
      "id": "accepted",
      "label": {
        "ro": "După ce ai acceptat",
        "en": "After acceptance"
      },
      "service_result": {
        "ro": "Plata de test a fost inițiată și anulată înainte de autorizarea bancară.",
        "en": "The test payment was initiated and cancelled before bank authorisation."
      },
      "events": [
        {
          "moment": "payment_start",
          "policy": {
            "ro": "Politica numește procesatorul fictiv și categoriile de date.",
            "en": "The policy names the fictional processor and data categories."
          },
          "store": {
            "ro": "Magazinul declară informații financiare.",
            "en": "The store label declares financial information."
          },
          "device": {
            "ro": "Tokenul sintetic INV-TEST-884 a fost observat către pay.example; datele cardului nu au fost introduse.",
            "en": "The synthetic token INV-TEST-884 was observed going to pay.example; no card data was entered."
          },
          "evidence_strength": "exact_synthetic_token",
          "limitations": {
            "ro": "Testul nu a traversat pagina procesatorului bancar.",
            "en": "The test did not proceed through the bank processor page."
          },
          "domains": [
            "pay.example"
          ]
        }
      ]
    },
    {
      "id": "withdrawn",
      "label": {
        "ro": "După retragere",
        "en": "After withdrawal"
      },
      "service_result": {
        "ro": "Nu era aplicabilă o retragere de analiză. Contul nu a fost creat.",
        "en": "Analytics withdrawal was not applicable. No account was created."
      },
      "events": [
        {
          "moment": "not_applicable",
          "policy": {
            "ro": "Politica descrie plata fără cont.",
            "en": "The policy describes payment without an account."
          },
          "store": {
            "ro": "Magazinul declară că datele pot fi șterse la cerere.",
            "en": "The store label says deletion can be requested."
          },
          "device": {
            "ro": "Nu a fost creat niciun cont sau identificator persistent în traseul testat.",
            "en": "No account or persistent identifier was created in the tested journey."
          },
          "evidence_strength": "local_and_network_observation",
          "limitations": {
            "ro": "Absența unui cont nu stabilește retenția server-side a jurnalelor de plată.",
            "en": "Absence of an account does not establish server-side payment-log retention."
          },
          "domains": []
        }
      ]
    }
  ],
  "destinations": [
    {
      "domain": "api.platitest.example",
      "owner": "Instituția fictivă",
      "role": {
        "ro": "API de taxe",
        "en": "fee API"
      },
      "relationship": "first_party",
      "first_seen": "app_open",
      "states_seen": [
        "before_choice",
        "refused",
        "accepted"
      ],
      "payload_evidence": "exact_synthetic_token",
      "payload_summary": {
        "ro": "Codul taxei și suma de test au fost observate.",
        "en": "The test fee code and amount were observed."
      },
      "attribution_certainty": "documented"
    },
    {
      "domain": "pay.example",
      "owner": "Procesator Fictiv SA",
      "role": {
        "ro": "procesator de plăți documentat",
        "en": "documented payment processor"
      },
      "relationship": "processor",
      "first_seen": "payment_start",
      "states_seen": [
        "accepted"
      ],
      "payload_evidence": "exact_synthetic_token",
      "payload_summary": {
        "ro": "Referința sintetică a plății a fost observată; nu au fost introduse date de card.",
        "en": "The synthetic payment reference was observed; no card details were entered."
      },
      "attribution_certainty": "documented"
    }
  ],
  "claims": [
    {
      "id": "CAL-101",
      "classification": "declared_and_observed",
      "statement": {
        "ro": "Destinațiile observate în traseul testat corespund infrastructurii și procesatorului documentate.",
        "en": "Destinations observed in the tested journey match the documented infrastructure and processor."
      },
      "maximum_wording": {
        "ro": "Putem descrie consecvența acestui traseu, nu certifica întreaga aplicație.",
        "en": "We can describe consistency in this journey, not certify the whole app."
      },
      "status": "calibration"
    }
  ],
  "repairs": [],
  "limitations": {
    "ro": [
      "Aplicație și date complet fictive.",
      "Plata a fost anulată înainte de autorizarea bancară.",
      "Nu este o certificare de conformitate."
    ],
    "en": [
      "The app and all data are fictional.",
      "Payment was cancelled before bank authorisation.",
      "This is not a compliance certification."
    ]
  }
}
