POST /v1/admin/referrals/simulate-paid — (Retired) Simulate paid invoice
https://api.triport.io/v1/admin/referrals/simulate-paid**Retired endpoint.** This operator route is no longer offered — it always responds `410 Gone`. It existed only in stage 1, before the automated billing bridge began emitting referral rewards from real `invoice_paid` events. The intended contract is documented below for historical reference.
This endpoint is not currently supported. Every request returns 410 Gone
with the body {"error": "endpoint_retired", "reason": "billing_bridge_active"}.
Originally this was an operator-only tool used during the early rollout of the referral program, when no billing integration existed yet. It let an operator synthetically mark a referred user's invoice as paid so the referral reward pipeline could be exercised end-to-end. Once the billing bridge went live, referral rewards began emitting automatically from real paid-invoice events, so the manual simulation hook was retired and there is no replacement action — the reward flow is now fully automatic.
The admin token check is still enforced before the retirement response: an
anonymous or wrong-token request receives 401 Unauthorized and never learns
that the route exists. Only a request with a valid X-Admin-Token proceeds to
the 410 Gone response.
Parameters
The endpoint is retired and ignores any request body. The intended contract took the following operator inputs:
HeadersobjectX-Admin-Tokenstringrequired401 before the 410.Request body (intended, no longer honored)objectuser_idstring (UUID)requiredResponse
Any well-authenticated request returns 410 Gone:
errorstringendpoint_retired for this route.reasonstringbilling_bridge_active — rewards now emit automatically from paid-invoice events.Errors
| Code | Meaning | When it happens |
|---|---|---|
401 Unauthorized | {"error": "admin_token_unset"} | The server has no admin token configured. |
401 Unauthorized | {"error": "admin_token_invalid"} | The X-Admin-Token header is missing or does not match. |
405 Method Not Allowed | {"error": "method_not_allowed"} | A method other than POST was used. |
410 Gone | {"error": "endpoint_retired", "reason": "billing_bridge_active"} | The endpoint is retired (returned for every valid-token request). |
See the shared errors reference for the full error envelope.
Examples
JavaScript (fetch)
const res = await fetch(
"https://api.triport.io/v1/admin/referrals/simulate-paid",
{
method: "POST",
headers: {
"X-Admin-Token": process.env.TRIPORT_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({ user_id: "f3b1c0de-0000-4a00-9c00-000000000001" }),
}
);
console.log(res.status); // 410
console.log(await res.json()); // { error: "endpoint_retired", reason: "billing_bridge_active" }TypeScript SDK (@triport/sdk)
// This endpoint is retired and is not exposed by the SDK.
// Referral rewards are emitted automatically from paid-invoice events;
// there is no client call to trigger them.Python (triport-sdk)
# This endpoint is retired and is not exposed by the SDK.
# Referral rewards are emitted automatically from paid-invoice events;
# there is no client call to trigger them.Notes
- Do not integrate against this route. It is kept only so that stale clients
receive a clear
410 Gonerather than a silent failure. - There is no replacement endpoint. Referral rewards are created automatically when a referred user's invoice is paid — no operator action is required.
- For the operator routes that are supported, see the admin referral pages:
user view (
GET /v1/admin/referrals/users/{user_id}), tier override (POST /v1/admin/referrals/users/{user_id}/tier), and the payout lifecycle routes under/v1/admin/referrals/payouts/.