Release 3.6 (Tech Release 1.30)
π’ Platform: Automated Bills for Carriers & Vendors
Carrier and vendor payouts can now be calculated automatically from actual delivery data, replacing manual off-platform calculation.
β
What's New:
- Select a billing cycle and generate one bill per participating carrier in a single run
- Net payable calculated as (Delivered Quantity Γ Delivery Rate) β (Missed Issues Γ Missed Issue Rate)
- Rates defined as plain-language pricing rules β no new configuration screens
- Each bill shows cycle window, carrier, rates applied, delivered/missed quantities, deductions, and net payable
- Included fulfillments are recorded and retrievable for audit
- Duplicate bills prevented on reruns; fulfillments attributed to the carrier assigned at the time of delivery
π― Impact:
Operations teams get accurate, repeatable, auditable carrier payouts tied directly to delivery performance.
π’ Platform: Native Support Ticketing
Core support workflows are moving into Pelcro, reducing reliance on external ticketing tools.
β
What's New:
- Inbound emails to the support inbox auto-create a ticket, assigned to a configurable default agent
- Internal notes visible to agents only, never to the client
- Per-ticket Priority (Low / Medium / High / Urgent) for queue triage
- Open / Pending / On-hold / Solved statuses, with auto-reopen when a client replies to a solved ticket
π― Impact:
Support teams can triage, collaborate, and report on SLAs directly in Pelcro.

π’ Platform: Modernized Taxes & Analytics Reports Pages
The Taxes and Reports β Customer/Subscription analytics pages have been upgraded to the current dashboard design, completing the Analytics section refresh.
β
What's Improved:
- Both pages now render on the modern dashboard layout, consistent with the rest of Analytics
- Existing functionality preserved across all report metrics
π― Impact:
A consistent, modern admin experience with no change to how reports or taxes work.
π’ Open API: Structured Coupon Validation Errors
Coupon validation failures now return a stable, enumerated error code at a fixed location, replacing generic, inconsistently-placed error text.
β
What's New:
- On
POST /api/v1/sdk/order,POST /api/v1/sdk/subscription, andPOST /api/v1/sdk/subscription/change, the error object now includes:error.failure_reason_codeβ stable enum, never renamederror.failure_reason_detailβ object; always carriesdescription, plus code-specific keys (expiry date, allowed plan IDs, redemption counts, segment names)error.paramβ alwayscoupon_code, identifying the failing inputerror.coupon_codeβ echoes the submitted code
error.messagetext is unchanged for every caseGET /api/v1/sdk/campaign:coupon.validis now computed against the campaign plan (not the stored flag); whenfalseit returnscoupon.failure_reason_codeand afailure_reason_detail.description. As a public endpoint, it deliberately returns no coupon configuration.
π Reason codes (precedence order β first failing rule wins):
| # | Code | HTTP |
|---|---|---|
| 1 | coupon_not_found | 404 |
| 2 | coupon_type_mismatch β code belongs to an e-commerce coupon | 404 |
| 3 | coupon_inactive | 404 |
| 4 | coupon_expired | 404 |
| 5 | coupon_max_redemptions_reached | 404 |
| 6 | coupon_currency_mismatch | 404 |
| 7 | coupon_plan_not_eligible | 404 |
| 8 | coupon_customer_not_eligible β segment restriction | 400 |
| 9 | coupon_customer_redemption_limit_reached | 404 |
| 10 | coupon_incompatible_with_subscription β plan change blocked by a once coupon on an existing invoice | 404 |
π― Impact:
Integrators can map coupon errors directly to subscriber-facing messaging and support tooling, without parsing free-text.
π’ Platform: Per-Product Active-Subscription Merge Tags for Mailchimp
Campaigns can now segment by whether a customer currently holds an active subscription to a given product, via a boolean flag synced to Mailchimp β powered by a new Product code field on the product form.
β
What's New:
- New Product code field on the product create/edit form β a short code (up to 6 characters) that identifies the product in merge tags. The form suggests a code automatically (derived from the product's internal name); the code is editable and must be unique per account.
- Mailchimp sync can now send a per-product active flag (for example
ACT_DEB), valued1when the customer has at least one currently active subscription to that product and0otherwise. - The flag reflects the customer's aggregated status across all their subscriptions for that product β not a single subscription β and recalculates on every relevant lifecycle event (create, renew, reactivate, cancel, expire).
- A renewal, or a cancellation scheduled for end of term, keeps the flag at
1while any subscription stays active; it drops to0only once the customer has no remaining active subscription to that product.
- A renewal, or a cancellation scheduled for end of term, keeps the flag at
- "Active" counts active, trialing, and extended subscriptions.
π― Impact:
Marketers can build product-level segments and campaigns from a single, always-current boolean per product.
π’ Platform: Additional Fields in Webhook Payloads
Webhook payloads are being extended with payment and membership fields that previously required a supplementary API call.
β
What's New:
- Payment method status (chargeable / pending / failed) now included on subscription webhook payloads
- Institutional member and seat status fields being surfaced for membership/seat holders
- Additive only β no existing field renamed, removed, or retyped
π― Impact:
Downstream ESP and CRM integrations can map payment health and seat state directly, cutting extra API calls, latency, and rate-limit pressure.
π’ Platform: Higher Limit for Paywall Exclude URL Patterns
The paywall's Exclude URL Pattern field now holds significantly more entries.
β
What's Improved:
- Capacity increased to roughly 25 entries (~300 characters)
π― Impact:
Publishers can target paywall exclusions more precisely without hitting the previous ceiling.

