Purchase inventory
Passes are purchased before they are issued. You submit a purchase request for a plan and a quantity, your Reap team reviews it, and approval loads the passes straight into your inventory pool. Nothing reaches the pool from a request that is still pending or rejected.1
Submit the request
The request captures what you want to buy and nothing moves until it is decided.
- Your application submits the reward type, plan name and quantity with
POST /cards/rewards/request-purchase - Reap records the request as pending review and routes it to your Reap team
- No passes are added at this stage
2
Reap reviews the request
Your Reap team approves or rejects the request and every request is decided exactly once.
- Approval records the invoice detail and loads the purchased passes into your pool
- Rejection records a reason and loads nothing
3
Receive the decision
The outcome lands on your webhook endpoint either way.
- Reap delivers the decision through the
PURCHASE_REQUEST_APPROVEDorPURCHASE_REQUEST_REJECTEDwebhook - On approval, refresh your inventory and begin issuing
- On rejection, surface the reason and raise a corrected request if needed
Reading your inventory
GET /cards/rewards/inventory returns your stock scoped to your business, with filters for reward type and plan name. Each row shows the purchased, consumed and available totals for the plan, with audit detail alongside.
Issue a pass
One call issues a pass to an existing card. The call returns immediately, creation runs in the background on the lounge network, and the pass becomes active shortly after. A webhook announces completion so you can present the pass without polling.1
Issue the pass
One call starts the whole journey and returns straight away.
- Your application calls
POST /cards/:id/rewardswith the reward type and plan name - Reap validates the feature, the card ownership and the available stock, then queues creation and acknowledges immediately
2
Creation completes in the background
Reap creates the pass on the lounge network, and the step typically completes in around ten seconds.
- Reap records the pass against the card and draws the pool down by one
- A failed creation leaves no pass record and no net change to your inventory, so issue again
3
Present the pass
A webhook announces the pass so you never have to poll.
- The
PASS_CREATION_COMPLETEDwebhook fires once the pass is active - Your application fetches it with
GET /cards/:id/rewards - The pass carries a raw QR payload and a barcode string rather than a ready made image, so generate the QR code from the payload and render both to the cardholder
- The status, one of active, redeemed, disabled or expired
- The visit allowance and the visits already recorded
- The raw QR payload and the barcode string for lounge entry
- The recorded cost, the currency and the expiry date
Track redemptions
Entry needs only the QR code and barcode rendered in your app. The cardholder carries no separate membership card and completes no enrolment with the lounge network. Reap retrieves the lounge network report once a day and updates pass usage and visit records from it, so your app can always show whether a pass has been used. The pass turns redeemed once its visit is recorded. No client action is required.The machinery behind the flow
The endpoints
The endpoints
POST /cards/rewards/request-purchasesubmits a purchase request for a plan and a quantityGET /cards/rewards/inventoryreturns the purchased, consumed and available totals for your businessPOST /cards/:id/rewardsissues a pass to a card and queues creation on the lounge networkGET /cards/:id/rewardslists the passes on a card with status, usage and the QR and barcode payloads
These guides stay at the level of names and purpose. Field level detail belongs to the API Reference.
Next steps
Lifecycle and events
The four pass statuses, the card operations that move them and the webhook events
Airport lounge access FAQ
Coverage, the plan, spending control and the questions prospects raise