Promotion Code
A Promotion Code is a customer-facing alphanumeric code (for example `SUMMER25`) that maps to a single Coupon. One Coupon can have many Promotion Codes, letting you run different campaigns (email vs. social, customer-specific codes, regional codes, …) against the same underlying discount. Customers enter the code at checkout to redeem the Coupon's discount. Promotion Codes can carry their own restrictions on top of the Coupon — a per-code redemption cap, an expiry date, or a binding to a specific Customer. You receive `promotion_code.created` and `promotion_code.updated` webhook events whenever a code is created or modified.
A Promotion Code is a customer-facing alphanumeric code (for example SUMMER25) that maps to a single Coupon. One Coupon can have many Promotion Codes, letting you run different campaigns (email vs. social, customer-specific codes, regional codes, …) against the same underlying discount. Customers enter the code at checkout to redeem the Coupon's discount. Promotion Codes can carry their own restrictions on top of the Coupon — a per-code redemption cap, an expiry date, or a binding to a specific Customer. You receive promotion_code.created and promotion_code.updated webhook events whenever a code is created or modified.
{ "id": "string", "object": "promotion_code", "createdAt": "string", "code": "string", "active": true, "coupon": { "id": "string", "object": "coupon", "createdAt": "string", "discountType": "percentage", "percentOff": 0, "amountOff": 0, "currency": "EGP", "duration": "once", "durationInMonths": 0, "name": "string", "maxDiscountAmount": 0, "minValue": 0, "maxRedemptions": 0, "customerMaxRedemptions": 0, "timesRedeemed": 0, "redeemBy": "string", "valid": true, "active": true, "appliesToProductIds": [ "string" ], "metadata": { "property1": null, "property2": null }, "merchantId": "string", "livemode": true }, "customerId": "string", "maxRedemptions": 0, "timesRedeemed": 0, "expiresAt": "string", "restrictions": { "firstTimeTransaction": true, "minimumAmount": "string", "minimumAmountCurrency": "EGP" }, "metadata": { "property1": null, "property2": null }, "merchantId": "string", "livemode": true}Product
A Product represents a good or service you sell. Products carry only descriptive information (name, description, images), while their pricing is described separately by Price objects. A single Product can have many Prices: for example, the same digital course offered in EGP and USD, or at different tiers. Use Products to model your catalog and Prices to model how each is sold.
Refund
A Refund returns funds from a successful Charge to the original payment method. It can be full or partial. Its status tracks the processor's progress; pending or requires_action does not mean funds have been returned.