Post-paid clients send first and pay later, which means every post-paid account is unsecured exposure for you. Credit Limit and Grace Limit cap that exposure. When both are used up, messages fail.

Two rules before you enable post-paid

  1. Never set a user to Post-paid if their parent is Pre-paid. The parent’s balance can’t fund a child that spends beyond it.
  2. Never enable post-paid while the user’s balance is above zero. Clear the balance first.

Where to set it

  • Payment Type: Users → Edit User → Global Attributes → Payment Type
  • Credit accounts: limits on the SMS Attributes tab (SMS Credit Limit, SMS Grace Limit)
  • Wallet accounts: limits on the Wallet tab (Wallet Credit Limit, Wallet Grace Limit)

Limit fields only apply when Payment Type is Post-paid. Pre-paid accounts simply send until the balance reaches zero.

Credit Limit

The amount the post-paid client may consume in a billing cycle. Past that point, delivery fails. A reminder is sent when the user reaches the configured limit; configure that alert under SMS → SMS Settings → SMS in the admin sidebar.

Grace Limit

An allowance on top of the credit limit, so a client isn’t cut off mid-campaign while your invoice is being paid.

Example: credit limit 1,000,000 + grace limit 100,000 = 1,100,000 total before sending stops.

Setting limits that match commercial risk

  • Size the limit to one billing cycle’s expected volume, not to what the client hopes to send. A monthly-billed client sending 2M messages a month doesn’t need a 10M limit.
  • Keep grace at 5–10% of the credit limit. Grace is for invoice timing, not for extending credit.
  • Review limits after every payment delay. A client who pays late twice should have a lower limit, not a higher one.
  • Watch the reminder alerts. A client hitting the limit early in the cycle is either growing or about to become a bad debt. Find out which.

What the client experiences

Once credit limit and grace limit are both exhausted, submissions fail. The client sees the failure code you’ve configured for insufficient balance, so make sure that global error code has a clear cause text and is set to Charge to User = No.

Related articles