Understand delivery credits and billing states
Reserve, commit, roll back, or refund credits at the target-account delivery boundary.
App9 Post charges per target-account delivery, not per draft or scheduled parent post. Credits are reserved when a target enters dispatch, committed on confirmed provider success, rolled back on pre-commit failure, and refunded when a later confirmed failure reverses an earlier committed outcome.
What this means in practice
App9 Post charges per target-account delivery, not per draft or scheduled parent post. Credits are reserved when a target enters dispatch, committed on confirmed provider success, rolled back on pre-commit failure, and refunded when a later confirmed failure reverses an earlier committed outcome.
Use the documented brand and account boundaries consistently across the scheduler, REST API, SDK, MCP tools, SSE consumers, and webhooks. That makes the same social operation explainable to an operator and reproducible by an integration.
Implementation checklist
Show estimated target count and media rate before immediate publication.
Keep scheduled future posts uncharged until dispatch begins.
Display billing_blocked next to the affected target without deleting its schedule.
Allow retry after account top-up and preserve the original target identity.
Reconcile usage records so a retry cannot charge the same target twice.
Operational details
The initial rate card can distinguish text/image and video deliveries, but rates are Account-managed configuration rather than hardcoded API behavior.
Feeds, analytics, inbox sync, previews, drafts, scheduling, and webhooks are not delivery charges.
AI model usage is charged by the AI service that generated content, not as a social delivery.
Common mistakes to avoid
- Do not charge when a future post is merely scheduled.
- Do not lose the campaign schedule when credits are insufficient.
- Do not calculate customer invoices from parent post status alone.