← The CredPal work03 / CREDPAL · CONTRIBUTION

Access follows the subscription clock.

Make membership changes understandable in the product.

Where this work fits

Opening checkout does not mean a customer has paid. Confirmation arrives separately, and a subscription can later renew, fail, expire, or be cancelled. Each change needs to leave the account with the right access.

MY CONTRIBUTION

I connected membership state with access to protected product features and worked on lifecycle maintenance. The backend needed to enforce what an account could use as trials and paid periods changed.

THE IDEA, ILLUSTRATED

Make a confirmed purchase useful

VERIFIED PAYMENT → MATCHING RECORD → ACCESS
SUBSCRIPTION RECORD
Referencedemo-checkout-01
Payment statePending
Customer planNo paid access yet
1Verify
2Match
3Activate
9:41•••
MEMBERSHIP
MEMBERSHIP

Almost there.

A confirmed payment and matching record are required.

A verified payment is matched to the purchase before access changes.
THE ENGINEERING DECISION

Different purchase channels, consistent access.

A card-payment event and an in-app purchase receipt arrive differently and require their own checks. I used signature and receipt verification before updating account access, then handled the subscription states beyond the initial purchase.

The skills behind the work

NestJS
Organize backend endpoints, validation, and services around product responsibilities.
Access control
Check which actions and resources an authenticated account is allowed to use.
Scheduled jobs
Run time-based work without waiting for a person to open the application.
THE WIDER RESULT

The billing work supported subscription growth and improved transaction success. Customers could move from a verified purchase into the membership features, with access tied to the subscription lifecycle.

Subscriptions in 3 months
+50%Growth after launching billing with free trials and webhook automation.
READ THIS IN CONTEXTI connected payment updates to the customer’s subscription. →
Related contributionsA plan becomes a purchaseI integrated payment checkout with account and subscription records. Keeping a purchase attempt connected to its later payment updates helped the product distinguish starting checkout from actually earning access.Payment events become product accessI implemented payment-event verification and handling for subscription changes. Different updates have different consequences, so the work connected trustworthy payment signals with the appropriate account behavior.An iOS receipt joins the same access modelI connected server-side purchase-receipt verification with subscription access. The work helped another purchase channel fit into the account experience without treating an unverified client claim as a completed purchase.