Offers API now available in test environment


The Offers API allows you to create online or in-store offers using card-linked technology. Create and manage all of your offers in one place, while personalising them by brand, discount type and amount, days of the week, duration, etc.

Previously the Offers platform was only available for live accounts, but is now available in test environment. You can create test offers with multiple combinations and try offer qualification using the playground to create sample transactions.

Login to the Fidel Dashboard and head to the 'CLO' tab to begin seeing what offers you can build.

You can find documentation at and the API Reference at

If you have any questions, please let us know in the community and we’ll follow up!

Onboard locations with MID

Onboarding locations just got faster. ⚡️

You can now add merchant IDs (MID) when creating locations. Creating locations with MID makes identifying merchant locations more accurate and faster to onboard.

We initially support Mastercard and Visa MIDs. Amex MIDs coming soon.

You can create locations with MIDs on the Fidel Dashboard:


You can also submit MIDs by using the new searchBy object in the Create Location API endpoint.

curl -X POST \{programId}/locations \
  -H 'content-type: application/json' \
  -H 'fidel-key: sk_your_secret_key' \
  -d '{
    "address": "43 Frith Street", 
    "brandId": "838d648e-5614-48a7-8e8b-6b3014638c67", 
    "city": "London", 
    "countryCode": "GBR",
    "postcode": "W1V 5TE",
    "searchBy": {
       "merchantIds": {
          "visa": ["12345678","987654321"],
          "mastercard": ["12345678","987654321"]

You can see the Create Location API Reference here:

If you have any questions, please let us know in the community and we’ll follow up!

iOS SDK v.1.6.1

We have two fixes in one for you today! 🎁

  • iOS SDK can now be used with Xcode 11.2.1 (with Swift 5.1.2).
  • From now on, we don’t accidentally clear metaData between submissions.

If you run into any issues, please let us know in the community and we’ll get right to it!

iOS SDK v1.6.0 – Swift 5.1 & Dark mode

Hi! 👋 Good news: we’ve added Swift 5.1 support to the iOS SDK. As a bonus, it also supports dark mode in iOS 13. 🌘

Check out the docs to get started, or the iOS repo readme for detailed info about supported Swift versions. Happy linking!


React Native SDK v1.2.0

The React Native SDK now supports React Native 0.60+, and can be integrated with CocoaPods.

If you run into any issues, please report on GitHub. Happy linking! 🎉

React Native SDK v1.1.0

We’ve fixed some issues that you have reported on the React Native SDK:

  • Android back button no longer causes the app to crash
  • Typo fixed in countries: sweeden -> sweden.

Thanks for all the feedback, if you run into any further issues, check Issues on the GitHub repo and submit a new one if yours is not there yet! As for the open issues, we’re on it and will be back with more fixes soon.

Web SDK v2

We’ve released an updated version of the Web SDK ✨

For now, only a few things have changed:

  • Terms no longer show a specific card scheme before card input (no more scaring away Visa/Amex card holders!)
  • We’ve merged the expiry month and year inputs into one expiry date field, where the date can be entered in a MM/YY format.

Upgrading from v1 to v2

You can safely migrate by just changing v1 to v2 in the script src — all the v2 attributes are backwards compatible. Check the docs for customisation options.


Try it out here:

Let us know in the community if you run into any issues!

API Version Headers


Hello! 👋🏼

In order to migrate to a newer version of the API you can now use a custom HTTP header specifying the API version you would like to request. This allows you to stay on an earlier version and test your development environments against new versions and upgrade when ready.

The Fidel-Version header allows you define in each request the version of the endpoint output. It is possible to request the current version or newer versions of the API.

Check the API changelog at for more information about available versions and go to to upgrade to a newer version.

React Native SDK

We’ve released a React Native bridge so that you can now use native mobile SDKs in React Native apps. If you’re using the web SDK in web view, it’s a good time to make the switch! You'll get to use native mobile capabilities such as card scanning. Check out the docs to get started!


New Transaction Object 💳

We've made some updates to the transaction object schema so you can easily access more data in your card-linked application without additional API requests. 🎯

The object is now organised in a nested structure. It includes new data points and nested objects are expanded by default.

Note that this is a breaking change from previous versions. Please review the changes below to update your applications.

To update to the new 2019-03-05 API version, go to your account page in the dashboard and click Upgrade Available.

  "id": "7fdfd5d8-9589-402f-8477-4a727ad138a2",
  "accountId": "4ed4b72b-aa4c-43a1-8054-da6d1368e17a",
  "amount": 100,
  "auth": true,
  "cleared": false,
  "created": "2019-04-09T16:00:00.644Z",
  "currency": "GBP",
  "datetime": "2019-04-10T15:59:30",
  "offer": null,
  "programId": "6e38aa0c-b7ef-46bd-b1bd-c07c647d9cba",
  "updated": "2019-04-09T16:00:00.644Z",
  "wallet": "apple-pay",
  "brand": {
    "id": "9d136f2e-df99-4a08-a0a5-3bc1534b7db8",
    "logoUrl": "",
    "name": "Coffee Brand"
  "card": {
    "id": "bc538b71-31c5-4699-820a-6d4a08693314",
    "firstNumbers": "555500",
    "lastNumbers": "5001",
    "scheme": "visa",
    "metadata": {
      "id": "00012345",
      "name": "Joseph Cooper"
  "identifiers": {
    "amexApprovalCode": "A9M5VYD",
    "mastercardRefNumber": "H6REF8BL",
    "mastercardTransactionSequenceNumber": "000009867889",
    "MID": "8552067328",
    "visaAuthCode": "A73H890"
  "location": {
    "id": "7a916fbd-70a0-462f-8dbc-bd7dbfbea140",
    "address": "53 Frith Street",
    "city": "London",
    "countryCode": "GBR",
    "postcode": "W1D 4SN",
    "timezone": "Europe/London",
    "geolocation": {
      "latitude": 51.513716,
      "longitude": -0.13202
    "metadata": {
      "id": "0001234567",
      "name": "Coffee Brand HQ"


"brand": { }
"card": { }
"identifiers": { }
"location": { }
  • brand is an object and it contains the following properties of the brand object: id, name, logoURL, metadata:{}
  • card is an object and it contains the following properties of the card object: id, firstNumbers, lastNumbers, scheme, metadata:{}
  • datetime replaces the date and time properties and represents the local date and time where the transaction took place without timezone information.
  • identifiers is an object and it contains the following scheme specific unique transaction identifiers: amexApprovalCode, mastercardRefNumber, mastercardTransactionSequenceNumber, MID, visaAuthCode
  • location is an object and it contains the following properties of the location object: id, address, city, postCode, countryCode, timezone, geolocation: {}, metadata:{}



This update affects the following resources:


  • transactions/{transactionsId}
  • brand/{brandId}/transactions
  • program/{programId}/transactions


  • transaction.auth
  • transaction.auth.qualified
  • transaction.clearing
  • transaction.clearing.qualified

The new identifiers will power a new range of use cases, timezone will help you understand local transaction time, while new geolocation property maps exactly where the transaction took place.

For more details please check out the documentation at

Get in touch with if you have any questions.