signals

Refund a report's implementation PR

Refund the flat charge for this report's implementation PR and archive the report. Refunds auto-approve: the charge is either excluded from usage before it is ever reported to billing (refund on the same UTC day as the PR run) or returned as a Stripe customer-balance credit on the next invoice. A refunded PR does not count toward the free monthly PR allowance. One refund per report, ever — repeat calls return the existing refund with already_refunded=true. The report is archived as part of the refund (a resolved report stays resolved) and can't be restored afterwards.

post/api/projects/{project_id}/signals/reports/{id}/refund/

Request

  • Base URL: https://us.posthog.com
  • URL: https://us.posthog.com/api/projects/{project_id}/signals/reports/{id}/refund/
  • Auth: one of:
    • HTTP bearer
    • HTTP bearer

Path parameters

idstring uuid required

A UUID string identifying this signal report.

project_idstring required

Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Request body

reason'pr_incorrect' | 'pr_not_useful' | 'duplicate' | 'other' required
  • pr_incorrect - PR incorrect
  • pr_not_useful - PR not useful
  • duplicate - Duplicate
  • other - Other
notestring

Optional free-form context for the refund; stored on the refund and echoed in the report's dismissal artefact. Capped at 4000 characters.

Response

The refund (created, or the existing one with already_refunded=true when the report was refunded before).

idstring uuid required
reason'pr_incorrect' | 'pr_not_useful' | 'duplicate' | 'other' required
  • pr_incorrect - PR incorrect
  • pr_not_useful - PR not useful
  • duplicate - Duplicate
  • other - Other
notestring required

Optional free-form note captured with the refund.

billing_path'excluded' | 'credited' required
  • excluded - Excluded
  • credited - Credited
creditsinteger required

Signals credits refunded (flat per-PR charge snapshot; 1 credit = $0.01).

pr_urlstring required

The refunded implementation PR's GitHub URL, snapshotted at refund time.

pr_run_created_atstring date-time required

When the first billable PR run was created — the charge this reverses.

credit_amount_usdstring decimal nullable required

USD amount the billing service credited (credited path only). Null until the sync completes; '0.00' is a legitimate outcome (e.g. the PR was inside the free tier).

billing_syncedboolean required

Whether the billing service has acknowledged this refund. Always relevant for the credited path (the Stripe credit is issued asynchronously); excluded-path refunds need no billing sync and report false.

created_atstring date-time required

When the refund was created.

already_refundedboolean required

True when the report already had a refund and that existing refund is returned unchanged — refunds are one-per-report and repeat calls are idempotent.

Changes

No recorded changes to this operation across all 1 revision of this API.