Skip to content

Coupons

Discount codes as a percentage or a fixed amount, for the first charge, forever or for N months, with a validity period, a usage limit and applicable products. How the discount works at checkout and on renewals, and the messages buyers can see.

A coupon is a code buyers type at payment to get a discount: LANCAMENTO20, BEMVINDO10, ALUNO2026. It's for launches, partnerships, campaigns, and winning back people who gave up.

What it's for

CommunityCouponWhat it does
Online schoolLANCAMENTO2020% off the first monthly payment of the Student plan, up to 100 uses
Coworking spacePARCEIRO30R$ 30 off a month for the first 3 months of the Resident plan, for the partner only
SaaSANUAL1010% off forever, on annual options only
EventGRUPO1515% off the ticket, valid until the day before

How it works

Types

TypeDiscountExample
PercentageA percentage of the amount20% of R$ 129 = R$ 25.80
Fixed AmountAn amount in reais, per orderR$ 30 off
Free TrialExtra trial days+7 trial days

Duration (for subscriptions)

DurationOn screenThe discount applies
onceDiscount applied only on first paymentOnly on the first charge
foreverDiscount applied on all paymentsOn every charge, renewals included
repeatingDiscount applied for N monthsOn the first N charges

On a product sold once, the duration makes no difference: there's only one charge.

Limits

FieldWhat it's for
Start Date *When the code starts being valid
End DateUntil when. Left blank, it doesn't expire
Maximum UsesHow many times the code can be used in total. Left blank, unlimited
Maximum per UserHow many times the same person can use it
Applicable ProductsWhich products and options it applies to. Empty: all of them

Through the API, a coupon also takes: a minimum order amount, a maximum discount, first purchase in the community only, subscriptions only, one-time products only, excluded products, and whether it can be combined with another coupon.

How the discount works at payment

  1. At checkout, the buyer clicks I have a coupon, types the code and clicks Apply. The screen shows "Coupon LANCAMENTO20 applied · −R$ 25.80" and the duration ("Discount on the first charge only.").
  2. The discount is calculated before the fee: the platform fee applies to the amount after the discount.
  3. On an order with a plan and add-ons, a fixed-amount coupon is taken once off the order, split across the items in proportion to each one's amount; a percentage applies equally to each item it covers.
  4. No item can go below R$ 1.00 after the discount.
  5. The use is recorded when the payment is confirmed. An open order (an unpaid boleto, for example) holds a use for up to 7 days.
  6. On renewals, forever and repeating coupons keep applying for the agreed time.
  7. With a downsell, the downsell discount comes first, then the coupon's.

The Free Trial type isn't accepted at payment ("This type of coupon cannot be used at checkout").

Status

The list shows each coupon with its uses, validity and status:

StatusMeaning
ActiveValid
InactivePaused by you
ExpiredPast the end date
ExhaustedReached the maximum uses

Who can

Create, edit, pause and delete: owner and admin. Finance sees the coupons and their usage history.

Step by step: create a coupon

Role: owner or admin.

  1. Monetization › Coupons › Create Coupon.
  2. Code *: what the customer types (e.g. LANCAMENTO20). Unique within the community.
  3. Name *: for the staff (e.g. March launch — 20%).
  4. Type * and Discount Value *.
  5. Duration *: once, forever or repeating (with the Months).
  6. Start Date * and, if you want, End Date.
  7. Maximum Uses and Maximum per User, if you want to limit it.
  8. Under Applicable Products, tick where it applies, or leave it empty to apply everywhere.
  9. Create.

Create Coupon
Code, name, type, amount, duration, validity, limits and applicable products (interface in Portuguese).

To pause it, change the status to Inactive. Deleting a coupon that has been used affects reports: the screen tells you how many times it was used.

Examples with numbers

The platform fee is 6.99% + R$ 2.49 on the amount charged, after the discount.

LANCAMENTO20: 20% once, on Growth Monthly (R$ 129). First monthly payment: R$ 129.00 − R$ 25.80 = R$ 103.20. Fee: R$ 7.21 + R$ 2.49 = R$ 9.70. The community keeps R$ 93.50. From the second payment on, R$ 129.00.

ANUAL10: 10% forever, on Student Monthly (R$ 49). Every month: R$ 44.10. Fee: R$ 3.08 + R$ 2.49 = R$ 5.57. The community keeps R$ 38.53 a month, for as long as the subscription lasts.

PARCEIRO30: R$ 30 repeating for 3 months, on Resident (R$ 890). Months 1 to 3: R$ 860.00. From month 4 on: R$ 890.00.

A R$ 50 fixed amount on a plan + add-on order (R$ 129 + R$ 450 = R$ 579). The discount is R$ 50 on the order, split proportionally: R$ 11.14 on the plan and R$ 38.86 on the add-on. Total: R$ 529.00.

A R$ 100 fixed amount on a R$ 49 plan. Refused: the item would go below R$ 1.00.

Good practices

  • One code per campaign. INSTAGRAM20 and NEWSLETTER20 with the same discount show where each sale came from, in the Uses column.
  • Always set an end date on campaigns: a forgotten coupon becomes a permanent discount.
  • Maximum Uses on partnerships, so a leaked code doesn't become the rule.
  • Prefer "once" or "repeating" to "forever": "forever" reduces every renewal for as long as the person stays.
  • Test before you promote it: apply the code at checkout with a member account and check the total.

Messages buyers can see

MessageWhy
Invalid coupon codeThe code doesn't exist
Coupon has expiredPast the end date
Coupon is not yet validBefore the start date
This coupon is not activeIt's paused
Coupon usage limit has been reachedExhausted
You have already used this coupon as many times as allowedMaximum per user
This coupon does not apply to this productThe product isn't among the applicable ones
This coupon applies to orders of R$ X or moreMinimum amount
This coupon is only valid for your first purchase in this communityFirst-purchase restriction
With this coupon an item would cost less than R$ 1.00, the least that can be chargedThe discount is larger than the price
Too many invalid coupon codes. Try again in a few minutes.10 codes refused within 15 minutes
The coupon is no longer valid and was removed. Nothing was charged; check the new total and try again.The coupon expired or ran out between applying it and paying

Common errors when creating

MessageWhat to do
A coupon with this code already exists in this communityUse another code
Enter how many months the repeating coupon lastsWith repeating, fill in the Months
Extra trial days only apply to free trial couponsRemove the extra days, or change the type

Frequently asked questions

Does the coupon apply on renewal? Forever and repeating coupons do, for the agreed time. Once coupons apply only to the first charge.

Can two coupons be used? Only if both can be combined. By default, one coupon per order.

Does the coupon reduce the platform fee? The fee is calculated on the discounted amount: a lower price also means a lower fee in reais.

Can a member use a coupon when adding an extension later, from the Billing page? Not for now; coupons apply when buying the plan and on the last-chance offer.

How do I know how many times a coupon was used? In the Uses column of the list, and in the coupon's usage history.

In the API

POST /api/coupons, PUT .../coupons/{id}, PATCH .../coupons/{id}/status, GET .../coupons/{id}/usage and POST .../coupons/validate (code, productId, amount). At checkout, couponCode in POST /api/checkout/calculate-price and in POST /api/checkout. See Coupons.