Managing Voucher Programs
¶ Generate and Fetch Voucher Codes
The Generate Voucher Codes endpoint lets you generate additional codes for a MULTI_CODE_SINGLE_REDEEM
voucher program.
Key Rules
- You can generate a maximum of 30,000 codes.
SINGLE_CODE_MULTI_REDEEM
programs cannot generate more codes.- To issue another code for such programs, you must create a new voucher program.
Fetching Generated Codes Use the Get Voucher Codes endpoint to retrieve all codes generated under the voucher program.
Best Practices
- Store newly generated and original codes separately for auditing.
- If the API returns a
409 (code_generation_in_progress)
error, wait and retry later.
How Additional Codes Appear in Reports When more codes are generated, the total number of codes for the program is updated.
Check Code Status
- Use the Get Voucher Program endpoint to see updated totals.
Handling Cancellations & Removals
- If a user is removed, their code is marked canceled.
- Note: Removing users from voucher programs is not currently supported.
¶ Bulk Distribution Considerations
- The API uses previously provided user info (email or phone).
- Each user can only claim once, even if contacted via multiple methods.
- If distribution fails (e.g., invalid email), the system triggers a
voucher_program_code_distributed
webhook.
Distribute Voucher Code
Use Uber to Send Vouchers to Customers Use the Add Guests endpoint to assign users to a voucher program.
- Identify customers by phone or email.
voucher_program_id
is required in the URL path.
Notes
- The phone number or email must be verified on the customer’s Uber account.
- If unverified, only a notification is sent — the voucher won’t be added automatically.
Notification Behavior
send_notifications
defaults totrue
— customers get SMS or email.- Set to
false
to suppress notifications. - Use the Distribute Codes endpoint again to resend.
Partners Sending Vouchers to Customers – Redemption Methods
-
SINGLE_CODE_MULTI_REDEEM
- API response includes
code_text
andcode_link
. - You can send these to customers via SMS or email.
- API response includes
-
MULTI_CODE_SINGLE_REDEEM
- API returns only
voucher_program_id
. - Use Get Voucher Codes to retrieve
code_text
andredemption_link
.
- API returns only
How Customers Redeem Vouchers
code_text
→ manually entered in Uber app.code_link
→ opens Uber and auto-applies the voucher.
¶ Redeem Voucher Code
The Redeem Code endpoint allows partners to apply a code to a user’s Uber account.
⚠️ Requires one-time authorization code from the end-user.
- You must send an OAuth URL to the user to obtain permission.
- Not recommended due to complexity and friction in getting user authorization.
¶ Cancel Voucher Code
The Cancel Voucher Codes endpoint allows you to cancel specific voucher codes.
Important Notes
- Claimed or redeemed codes cannot be canceled.
- If any codes fail to cancel, they are returned in the response.
- Use Get Voucher Codes to fetch
code_id
.
Admin View: Canceled or Completed Voucher Programs
Use the voucher_program_completed
webhook to detect program completion.
- Retrieve details using Get Voucher Program.
- Display key metrics in a label view, such as:
- Program restrictions
- Start & end dates
- Total value spent
- Vouchers accepted
- Total trips completed
- Full field list available here.
¶ Update Voucher Program
Required Path Parameters
organization_id
– Your org’s ID.voucher_program_id
– Returned when the program is created.
Editable Fields by Program State
-
Before Program Start:
vehicle_category_types
starts_at
ends_at
(can’t be reduced once live, only extended)
-
While Program is Live:
value_per_trip_max_amount
value_per_trip_deductible
value_per_trip_percentage
value_per_period_max_trips
value_per_period_max_credit
-
For SINGLE_CODE_MULTI_REDEEM Programs:
redemptions_per_code
(can only be updated while live)
¶ Cancel Voucher Program
Use the Cancel Voucher Program endpoint to terminate a voucher program.
- Requires
voucher_program_id
. - Successful response:
204 No Content
⚠️ You cannot cancel programs that are already expired or completed.