Three lines

Uber

Developers

Frequently Asked Questions

Frequently Asked Questions and Edge Cases
  1. How do you use webhooks? When a webhook is delivered, it must be consumed and make a GET call to fetch the latest information stored. The webhooks get delivered as soon as the event happens and might have the latest data in the metadata. Making a GET call would help in fetching the latest usage data.

    Webhooks can be added by utilizing the webhook URL. If you click in the settings section on the developer dashboard (https://developer.uber.com/dashboard/app/<ClientID>/settings), provide the webhook URL. This is the callback URL where U4B APIs will send webhooks when the trip status is changed. This will provide real time updates for the trip.

  2. When do you need to use voucher templates? When an organization wants to use specific parameters and restrictions for an extended period of time, or an organization only wants to create one type of voucher program and use it repeatedly. In this case, a voucher program can be created using a predefined template. The template can be customized with various parameters.

    For example, if an organization wishes to create various voucher programs with different deductibles. In one case, the organization wants $20 off each ride. Later on, the organization may want $10 off each ride. In this case, it would be suggested to create a voucher program using a predefined template for an U4B organization and adjust the deductible when need be.

  3. How to find the usage? When calling GET voucher codes, the parameter include_usage can be added to request that usage details be included. Once called, the response fields will include

  • usage_count - the total number of trips taken using a voucher code

  • usage_amount - the total amount of money spent within a voucher program up to that date

  • usage_trip_count - how many trips have occurred in the voucher program to the current date

  • usage_voucher_claim_count - how many vouchers have been claimed within the voucher program

    usage_amount may be delayed because there is a delay in the data getting updated in the webhooks. It takes the same amount of time to update the webhooks and GET voucher program details API. If there is a redeem event, the webhooks are triggered before the data sync happens. In turn, the usage amount is not accurate in the webhook. Wait for the webhook notification, then proceed to make the GET API call to fetch info. More information can be found in our developer documentation

    The best protocol is to make a GET call once the webhooks are received to fetch accurate usage data.

  1. Which of the event types in callback, would include the field “usage_amount” populated in the payload? voucher_program_code_claimed & voucher_program_code_redeemed will have the usage_amount details in the webhook.

  2. How to choose the correct code scheme? SINGLE_CODE_MULTI_REDEEM - This code scheme can be used if you want to create a single voucher code that can be shared by one (or more) customers. If an organization would like to create a uniform voucher with one code, that can be utilized X amount of times, it is recommended they choose SINGLE_CODE_MULTI_REDEEM.

    MULTI_CODE_SINGLE_REDEEM - This code scheme can be used if you want to create multiple voucher codes for each of the customers. If an organization would like to create a uniform voucher with several codes, where each code can be redeemed by a single user, it is recommended they choose

Example (SINGLE_CODE_MULTI_REDEEM): Organization A is a large corporation that wants to give a $20 voucher to all of its employees via a holiday email. Organization A will utilize SINGLE_CODE_MULTI_REDEEM because one code will be generated and shared at once with all employees. Prior to sharing, Organization A will specify how many employees there are when assigning a value to redemptions_per_code. I.e if there are 1000 employees, then this one code provided can be redeemed 1000 times, but only once on each account.

Note: If it is intended to create a voucher for a single person for a single trip, it is highly recommended to utilize SINGLE_CODE_MULTI_REDEEM

Example (MULTI_CODE_SINGLE_REDEEM): Organization B is a local startup that wants to give a $5 voucher to each employee on their birthday. Organization B will utilize MULTI_CODE_SINGLE_REDEEM because different codes will be generated for each employee. Prior to sharing, Organization B will specify how many employees will be celebrating their birthday when assigning a value to number_of_codes. I.e if there are 20 employees, then there will be 20 codes provided, that can only be redeemed once, by an employee after they are sent the code on their birthday.

  1. How to build reporting for various statuses of the voucher program? By making the ‘GET voucher program details’ or ‘GET voucher code details’ API call based on the voucher program code scheme.

  2. How are receipts/charges sent to an organization? Vouchers are charged only when they are used in a ride. When a Voucher is redeemed and a trip is taken, it gets billed to the org. Once the Voucher is used, you will have a line item in the CSV export (from the business dashboard).

    The CSV export will include “Voucher Link”, “Voucher Program”, “Expense Memo” fields which can be used to reconcile the charges with the voucher created.

    • Voucher Link: code_link in the response of the Create Voucher program API call
    • Voucher Program: name in the request of the Create Voucher Program API call
    • Expense Memo: expense_memo in the request of the Create Voucher Program API call

    The CSV is delayed by one day. If a trip was taken using a voucher program, the line item for that trip shows up the next day.

  3. Do I need the Uber app to utilize a voucher? A voucher can be claimed via desktop. However, the Uber application is required in order to use the voucher.

  4. How do I identify the maximum amount spent on a voucher program if it is 100% utilized (total value of the voucher program)? By finding the total_dollar_exposure after utilizing the Get Voucher Program.

  5. If customers are not able to redeem Uber vouchers

If this issue occurs it is likely that the client id used for the specific voucher was only created for testing purposes. The voucher should then be canceled and recreated

  1. Do vouchers pay for Cancellations or Refunds? Vouchers do not handle Cancellation or Refund. Charges will be sent directly to the rider.

  2. How is a campaign edited?

Please utilize this section in the Voucher Build Guide.

  1. When testing vouchers in production, the error response is “unauthorized” In the business dashboard, the Voucher API access should be enabled and without that this error message will be encountered “{\“message\”:\“This user has no valid program for the API\”,\“code\”:\“UNAUTHORIZED\”}”

  2. Why is an internal server error received when generating a Voucher Program and all fields are filled? If the Voucher program is MULTI_CODE_SINGLE_REDEEM, verify the value_per_trip_max_amount is not set as null. If this field is passed as null, the value of the voucher is null. It is then not possible to create a voucher with a null value. In turn, the triggered response will not provide requested information. value_per_period_max_trips and value_per_trip_max_amount can be utilized to specify the value of the voucher. Alternatively, value_per_period_max_credit can be defined to specify the voucher value.

    If the Voucher program is SINGLE_CODE_MULTI_REDEEM, verify the redemptions_per_code is not set as null. If this field is passed as null, the voucher cannot be redeemed and the webhook would not trigger the intended response.

  3. Will the code scheme impact how voucher codes are received?

If MULTI_CODE_SINGLE_REDEEM is utilized, codes will be received by making the API call.

If SINGLE_CODE_MULTI_REDEEM is utilized, the code/code link will be received in response to the create voucher program API itself.

Uber

Developers
© 2025 Uber Technologies Inc.