> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bango.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Frequently asked questions (FAQ)

> Contact Support if you have a question not answered here

Here are some frequently asked questions about the Bango Resale API.

<AccordionGroup>
  <Accordion title="How many entitlements can a customer have per merchant?">
    By default, Bango allows one entitlement per customer per merchant.

    If the merchant allows, Bango can increase this.
  </Accordion>

  <Accordion title="What happens if an activation URL expires before the customer is redirected to it?">
    Scenario:

    1. You create an entitlement which requires the customer to activate the service with the merchant
    2. The Bango Resale API returns an entitlement in state `PENDING` and asks you to redirect the customer to a particular URL
    3. You redirect the customer to the URL, but a timeout has occurred and the activation URL is no longer valid

    In this case, the customer sees an error message on the merchant page. The customer must restart the activation flow themselves.
  </Accordion>

  <Accordion title="Does the Bango Reseller API require client certificates?">
    The Bango Resale API does **not** require client certificates.

    See the [full connectivity and security requirements](/legacy/platform/connectivity/index).
  </Accordion>

  <Accordion title="What's the difference between the customerIdentifier and entitlementId?">
    The `customerIdentifier` field is your own unique, persistent identifier for the user accessing the service. The Bango Platform treats the value as opaque.

    The `entitlementId` field is the globally unique, opaque identifier for a single entitlement. The Bango Platform generates this identifier.
  </Accordion>

  <Accordion title="Do I need to use the echo API?">
    The echo API endpoint is completely optional.

    The purpose of the echo API endpoint is to allow you to check your connectivity to the Bango Platform and the Bango Resale API. It lets you:

    * Verify you're using the correct root URL for the Bango Resale API
    * Validate your Basic authentication credentials
    * Confirm that the Bango Resale API is currently available
  </Accordion>

  <Accordion title="What's the update API for?">
    The Bango Resale API lets you update an entitlement at any time.

    A common reason to update an entitlement is to change the product key as a result of a user selection or a time-based event. For example, the user might move from a six-month promotion to a fully paid service.
  </Accordion>

  <Accordion title="What's the difference between cancellation and revocation?">
    There are two ways to end an entitlement and remove a customer's access to a service:

    * [The cancellation API](/legacy/resale/reseller/entitlements/cancel)
    * [The revocation API](/legacy/resale/reseller/entitlements/revoke)

    The **cancellation API** triggers a "soft ending": the customer can continue to access the service until the end of the period for which they've already paid. The API requests the merchant to cancel the service at the end of the current billing cycle – normally the moment at which the customer would next make a payment to continue using the service.

    The **revocation API** triggers a "hard ending": the customer loses access to the service immediately. For example, if a customer permanently deletes their account, you might want to revoke access to the service straight away.

    Both approaches are valid, depending on requirements.
  </Accordion>

  <Accordion title="Why should I set the notificationUrl?">
    When you create (recommended) or update an entitlement, you can provide a `notificatioUrl` parameter. The Bango Platform sends an asynchronous `POST` request to this URL whenever the entitlement changes for any reason.

    Bango recommends you always set a notification URL. For example, the Bango Platform sends a notification for these events:

    * To confirm that a customer has signed up with the merchant and the entitlement has activated (the customer has access to the service)
    * To notify the reseller that the merchant has canceled the customer's subscription to the service
    * To notify the merchant that the customer has canceled the subscription through the reseller

    For more information, see [Bango Resale / For resellers / Reseller API reference / Notifications from Bango](/legacy/resale/reseller/api-ref/notifications).
  </Accordion>

  <Accordion title="Can I use the same notificationUrl for all notifications?">
    When you create (recommended) or update an entitlement, you can provide a `notificatioUrl` parameter. The Bango Platform sends an asynchronous `POST` request to this URL whenever the entitlement changes for any reason. For example, when an entitlement is activated after the customer signs up with the merchant, or when the entitlement is cancelled directly with the merchant.

    You can use the same URL for all entitlements, or use a distinct URL for each entitlement – it's up to you. It doesn't matter whether the entitlement requires customer activation at a merchant URL, or not. Bango recommends you always set a notification URL.

    For more information, see [Bango Resale / For resellers / Reseller API reference / Notifications from Bango](/legacy/resale/reseller/api-ref/notifications).
  </Accordion>

  <Accordion title="What happens if a customer has already signed up directly with the merchant?">
    Scenario:

    * You use the Bango Resale API to create an entitlement for a customer, but they've already signed up with that merchant and aren't eligible for your offer

    In some cases, the merchant can notify Bango that the customer isn't eligible. If so, Bango can pass this notification to you using the Notification URL provided as part of the API request to [<u>create the entitlement</u>](/legacy/resale/reseller/entitlements/create).
  </Accordion>

  <Accordion title="Is a customer refunded if they cancel with the merchant to sign up through a reseller?">
    A customer may decide to cancel a service provided directly by a merchant because they want to move to the same service provided through a reseller.

    If they do so, whether they receive a refund depends on the merchant and the country.

    Bango Support can help you speak to the merchant to confirm the behavior.
  </Accordion>

  <Accordion title="Can Bango provide customer experience flows for the merchant?">
    Normally the merchant owns the customer experience flows, and is responsible for approving any reseller customer experience related to the merchant brand.
  </Accordion>

  <Accordion title="What happens if I send a duplicate create request when the original entitlement is PENDING?">
    Scenario:

    1. You send a request to create an entitlement, and that entitlement is now in the `PENDING` state
    2. You send another request to create an entitlement, with exactly the same parameters as the first request

    In this case, the Bango Resale API responds with a new activation URL. Redirect the customer to the new URL for signup.
  </Accordion>

  <Accordion title="How can I tell the difference between BAD_REQUEST responses when I create a subscription?">
    Sometimes the Bango Resale API returns HTTP 400 `BAD_REQUEST` when you create a subscription. The `responseMessage` property in the response body can help you identify the reason for the response.

    * If the entitlement already exists and is in `ACTIVE` state, then the `responseMessage` property is `Invalid request or the request contains invalid data. Maximum number of subscriptions for user reached`
    * If the request is invalid, then the `responseMessage` is `parameter is required` or `parameter is invalid`, where *parameter* is the name of the parameter
  </Accordion>
</AccordionGroup>
