Bango uses cookies to give you the best website experience. By using this website you agree to let Bango use cookies. More info
Bango Developer
  1. Bango Resale
  2. End of Life
  3. Reconciliation reports

Reconciliation reports

(EOL 30th September 2020) - Optional reports to verify you hold the same entitlement data as Bango

If you store entitlement data on your own systems, you can supply it regularly to Bango to allow Bango to perform a reconciliation process and send you reconciliation reports.

The reconciliation process checks that your data matches the Bango data, and highlights any problems. Bango performs similar reconciliation processes with merchants who make their products and services available through the Bango Resale API.

Unless otherwise agreed, the Bango data is considered the source of truth.

Supplying reconciliation data to Bango

To supply reconciliation data to Bango, you need an SFTP site that Bango can access. Give the connection details of your SFTP site to Bango Support, including the credentials Bango should use, and then upload your reconciliation data to the site as necessary. Bango will make reconciliation reports available to you by email or SFTP upload.

Supply the data to Bango in RFC 4180 CSV format, using the columns defined for entitlement reports.

Matches and mismatches

When comparing the data you supply to the data in the Bango Platform, Bango checks pairs of records with the same value for BangoEntitlementId.

Currently, reconciliation considers the pair to match only when the ProductKey, MerchantKey, ResellerKey, and Status are identical. If any values are different, the result is a mismatch.

If a BangoEntitlementId value is present in one set of data and not the other, this is considered a mismatch.

Reconciliation report format

Bango generates two reports: one for matched entitlements, and one for unmatched entitlements. Each report contains the same columns.

Column nameDescription
BangoEntitlementId(UUID string) Unique identifier for an entitlement
BangoUserId(number) Unique identifier for the user, defined by Bango
ResellerCustomerId(string) Unique identifier for the user, used by the reseller
ProductKey(string) Identifier for the merchant service, for example 30_DAYS_MUSIC
DisplayName(string) User-visible string describing the entitlement, for example 30 days Bango music
MerchantKey(string) Identifier for the merchant, for example BANGO_ENTERTAINMENT
ResellerKey(string) Identifier for the reseller, for example, MY_RESELLER_KEY
Status(string) Entitlement status, one of ACTIVE, SUSPENDED, CANCELLED, REVOKED, PENDING, or FAILED
ActivationCode(string) Merchant-specific code or token used for the entitlement activation
OfferKey(string) Entitlement offer, for example BUNDLE. The empty string if no offer applies.
DateCreated(ISO 8601 timestamp string) When the entitlement record was created
DateActivated(ISO 8601 timestamp string or null) When the entitlement was activated, or null if it has never been activated
DateExpiry(ISO 8601 timestamp string or null) When the entitlement expires, or null if it has no expiry time
DateEnded(ISO 8601 timestamp string or null) When the entitlement was canceled or revoked, or null if it has never been canceled or revoked
DateLastUpdated(ISO 8601 timestamp string) When the entitlement record was last updated
IsReconciled(TRUE or FALSE) Whether the entitlement record is reconciled
ReconciliationDescription(string) Short description of the reconciliation status: if empty, Bango has not received any record with that BangoEntitlementId value

Here's an example of a matched entitlements report:

"da0836e0-9ac2-4bb1-819f-87b39e59c990",123456789,"+4407123456789","30_DAYS_MUSIC","30 days of Bango music","BANGO_ENTERTAINMENT","MY_RESELLER_KEY","ACTIVE","","BUNDLE","2017-01-01T01:02:03Z","2017-01-01T01:02:03Z",NULL,NULL,"2017-01-01T01:02:03Z",TRUE,"Reconciled in file {Filename}"
"387bf1af-7b26-4535-82dd-cb9b9731ae1d",123456789,"+4407123456789","30_DAYS_MUSIC","30 days of Bango music","BANGO_ENTERTAINMENT","MY_RESELLER_KEY","ACTIVE","","BUNDLE","2017-01-16T10:30:05Z","2017-01-16T10:30:05Z",NULL,NULL,"2017-01-16T10:30:05Z",TRUE,"Reconciled in file {Filename}"
"6a841d19-f5eb-4354-bfe1-c7a135b60ab8",123456789,"+4407123456789","30_DAYS_MUSIC","30 days of Bango music","BANGO_ENTERTAINMENT","MY_RESELLER_KEY","CANCELLED","","","2016-12-15 10:30:05","2016-12-15 10:30:05",NULL,"2017-01-16T10:30:05Z","2017-01-16T10:30:05Z",TRUE,"Reconciled in file {Filename}"
"a25100b8-4e0c-4e37-b921-cac9cb1e930f",123456789,"+4407123456789","30_DAYS_MUSIC","30 days of Bango music","BANGO_ENTERTAINMENT","MY_RESELLER_KEY","PENDING","","BUNDLE","2017-01-16T10:30:05Z",NULL,NULL,NULL,"2017-01-16T10:30:05Z",TRUE,"Reconciled in file {Filename}"

Here's an example of an unmatched entitlements report:

"da0836e0-9ac2-4bb1-819f-87b39e59c990",123456789,"+4407123456789","30_DAYS_MUSIC","30 days of Bango music","BANGO_ENTERTAINMENT","MY_RESELLER_KEY","ACTIVE","","BUNDLE","2017-01-01T01:02:03Z","2017-01-01T01:02:03Z",NULL,NULL,"2017-01-01T01:02:03Z",FALSE,""
"387bf1af-7b26-4535-82dd-cb9b9731ae1d",123456789,"+4407123456789","30_DAYS_MUSIC","30 days of Bango music","BANGO_ENTERTAINMENT","MY_RESELLER_KEY","ACTIVE","","","2017-01-16T10:30:05Z","2017-01-16T10:30:05Z",NULL,NULL,"2017-01-16T10:30:05Z",FALSE,"Entitlement identifier mismatch - received 60_DAYS_MUSIC"
"6a841d19-f5eb-4354-bfe1-c7a135b60ab8",123456789,"+4407123456789","30_DAYS_MUSIC","30 days of Bango music","BANGO_ENTERTAINMENT","MY_RESELLER_KEY","CANCELLED","","BUNDLE","2016-12-15 10:30:05","2016-12-15 10:30:05",NULL,"2017-01-16T10:30:05Z","2017-01-16T10:30:05Z",FALSE,"Status mismatch - received ACTIVE"
"a25100b8-4e0c-4e37-b921-cac9cb1e930f",123456789,"+4407123456789","30_DAYS_MUSIC","30 days of Bango music","BANGO_ENTERTAINMENT","MY_RESELLER_KEY","PENDING","","","2017-01-16T10:30:05Z",NULL,NULL,NULL,"2017-01-16T10:30:05Z",FALSE,""
Copyright © 2000–2022 Limited