Client Pricing Admin API
Admin pricing endpoints reconstruct and validate client billing metrics.
Backfill metrics from historical steps
POST /api/admin/client-pricing/backfill
Recompute one job’s billing metrics from stored scriptRunSteps.metadata.
Access control:
- Require authenticated
adminorsuper_adminrole.
Request body
{ "job_id": "uuid-job", "create_default_model": true, "force": false}Fields:
job_id(required): target job ID.create_default_model(optional): create default org pricing model when missing.force(optional): replace existing metrics record for the job.
Backfill logic
- Parse
claim_resultmetadata rows ordered bystepOrder. - Count only one claim per
(npi, claim_id)or(npi, claim_submission_id)pair. - Track total candidate claim-result steps before dedup.
- Fallback to
select_org_providermetadata if noclaim_resultrows are found.
This prevents duplicate step callbacks from inflating per-NPI claim counts and overcharging.
Success response
{ "success": true, "replaced_existing": false, "metric_id": "uuid-metric", "organization_id": "uuid-org", "npi_count": 2, "total_claims": 17, "total_steps_before_dedup": 19, "duplicates_removed": 2, "claims_per_npi": { "1234567890": 9, "9876543210": 8 }, "calculated_charge_usd": 2.8, "charge_breakdown": { "pricingType": "npi_claim_block" }}Error responses
400invalid body or unresolved organization for job.403forbidden role.404job not found, or no NPI/claim metadata found.409billing record already exists andforcewas not provided.
Operational notes
- Keep this endpoint admin-only and use it for reconciliation or migration tasks.
- Preserve RPA-first telemetry quality by ensuring workers emit stable
claim_idorclaim_submission_idvalues.