Skip to content
FX-Port/Docs
GuidesAPI referenceChangelog
Get API keys
  • Overview
  • Error object

Catalog

  • PackagesGET
  • Compatible devicesGET

Orders and top-ups

  • Create an orderPOST
  • Top-up packagesGET
  • Top upPOST

After the order

  • UsageGET
  • Usage of several eSIMsGET
  • BookingsGET
  • Top-up historyGET
  • Check ownershipGET
  • Setup dataGET
  • Installation instructionsGET

Objects

  • eSIM package
  • eSIM booking

eSIMs · After the order

Get the setup data of a booking

Get the original order of an eSIM booking: the eSIM with its activation data and the installation steps as HTML, to build your own confirmation or setup page.

GET/api/v1/esims/bookings/{booking_id}/setup-instructions

Requires an API key with Read permission; a Read+Write key works too.

Use the booking_id of the order (FX- followed by a number). It works for orders only: a topup booking has no setup data. The activation data is sensitive: show it only to the traveler who owns the eSIM.

This endpoint replaces the older GET /esims/bookings/{booking_id}/setup-url, which is deprecated: it answers with the install links only and a deprecated_endpoint warning.

curl https://api.fx-port.com/api/v1/esims/bookings/FX-1793546602916/setup-instructions \
  -H "Authorization: Bearer fxp_test_YOUR_KEY"
Response200
{
  "environment": "sandbox",
  "success": true,
  "data": {
    "code": "20261101-106852",
    "order_id": "20261101-106852",
    "currency": "DZD",
    "package_id": "france-in-7days-1gb",
    "quantity": 1,
    "type": "sim",
    "description": "Order for John Smith",
    "esim_type": "local",
    "validity": 7,
    "package": "KPN France Data only-1 GB - 7 days",
    "data": "1 GB",
    "price": 468.84,
    "created_at": "2026-11-01 15:23:22",
    "manual_installation": "<p><b>eSIM name:</b> Élan</p><p><b>Coverage: </b>France</p><p><b>To manually activate the eSIM on your eSIM capable device:</b></p><ol><li>Settings > Cellular/Mobile > Add Cellular/Mobile Plan.</li>...</ol>",
    "qrcode_installation": "<p><b>eSIM name:</b> Élan</p><p><b>Coverage: </b>France</p><p><b>To activate the eSIM by scanning the QR code on your eSIM capable device you need to print or display this QR code on another device:</b></p>...",
    "installation_guides": {
      "en": "https://www.airalo.com/help/getting-started-with-airalo"
    },
    "text": null,
    "voice": null,
    "sims": [
      {
        "created_at": "2026-11-01 15:23:22",
        "iccid": "8900000540463077957",
        "lpa": "lpa.airalo.com",
        "imsis": null,
        "qrcode": "LPA:1$lpa.airalo.com$DUMMY-2610301358-iKFxr-44741",
        "qrcode_url": "https://sandbox.airalo.com/qr?expires=1879860202&id=473564&signature=...",
        "apn_type": "automatic",
        "apn_value": "N/A",
        "is_roaming": true,
        "confirmation_code": null,
        "apn": {
          "ios": {
            "apn_type": "automatic",
            "apn_value": "N/A"
          },
          "android": {
            "apn_type": "automatic",
            "apn_value": "N/A"
          }
        },
        "msisdn": null,
        "direct_apple_installation_url": "https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=LPA:1$lpa.airalo.com$DUMMY-2610301358-iKFxr-44741",
        "direct_android_installation_url": "https://esimsetup.android.com/esim_qrcode_provisioning?carddata=LPA:1$lpa.airalo.com$DUMMY-2610301358-iKFxr-44741",
        "sharing": {
          "access_code": 8803,
          "link": "https://esims.cloud/v8hy7-usgkq6wg"
        }
      }
    ],
    "total_price": 468.84,
    "retail_price": 468.84,
    "agency_currency": "DZD"
  }
}

Request

Path parameters

booking_idstringrequired

The booking reference returned when the eSIM was ordered.

At most 100 characters.

Response

200The setup data of the booking.

successboolean

true when the data was returned.

dataobject

The original order of a booking: the eSIM with its activation data and the installation steps.

ShowHide 22 attributes
codestringdeprecated

Legacy name, still accepted. Use order_id instead.

The supplier's order code. The older name of order_id: same value, use order_id.

order_idstring

The supplier's order code. The snake_case twin of code, with the same value: use this name.

currencystring

Currency of price: your agency currency.

package_idstring

The package that was ordered.

quantityinteger

Always 1.

typestring

Always sim.

descriptionstringnullable

The description of the order.

esim_typestring

Kind of eSIM plan, for example local.

validityinteger

Validity in days.

packagestring

Name of the package: operator, data allowance and validity.

datastring

Data allowance as text.

pricenumber

The price charged to the traveler, in your agency currency. Same as total_price.

created_atstring

When the supplier created the order: YYYY-MM-DD HH:MM:SS, UTC, without a zone.

manual_installationstring

HTML with the steps to install the eSIM by entering the activation data by hand. Show it as HTML or strip the tags.

qrcode_installationstring

HTML with the steps to install the eSIM by scanning the QR code.

installation_guidesobject

Links to the supplier's general installation guide, by language code.

textintegernullable

SMS included, or null.

voiceintegernullable

Voice minutes included, or null.

simsarray of object

The eSIMs of the order. One for an eSIM order.

ShowHide 15 attributes
created_atstringnullable

When the supplier created the eSIM: YYYY-MM-DD HH:MM:SS, UTC, without a zone.

iccidstring

The ICCID of the eSIM.

lpastringnullable

Host of the SM-DP+ server (the LPA address).

imsisstringnullable

IMSI of the profile, when the supplier returns it.

qrcodestringnullable

The activation string the QR code encodes. Sensitive: show it only to the traveler.

qrcode_urlstringnullable

Link to the QR code image.

apn_typestringnullable

automatic or manual.

apn_valuestringnullable

The APN to enter on a manual setup, or N/A.

is_roamingbooleannullable

Whether the eSIM works through roaming.

confirmation_codestringnullable

Confirmation code to enter at installation, when required.

apnobjectnullable

APN settings per operating system.

ShowHide 2 attributes
iosobject

Access point name (APN) settings for one operating system.

ShowHide 2 attributes
apn_typestring

automatic when the device configures the access point name by itself, manual when the traveler has to enter it.

apn_valuestringnullable

The access point name to enter on a manual setup; null or N/A when none is needed.

androidobject

Access point name (APN) settings for one operating system.

ShowHide 2 attributes
apn_typestring

automatic when the device configures the access point name by itself, manual when the traveler has to enter it.

apn_valuestringnullable

The access point name to enter on a manual setup; null or N/A when none is needed.

msisdnstringnullable

Phone number of the eSIM, for the rare plans that include one.

direct_apple_installation_urlstringnullable

Link that starts the installation on an iPhone.

direct_android_installation_urlstringnullable

Link that starts the installation on an Android phone that supports it.

sharingobjectnullable

A shareable installation page for the eSIM.

ShowHide 2 attributes
access_codenumber

Code the traveler enters on the sharing page.

linkstring

Page where the traveler can open the eSIM details and QR code.

total_pricenumber

The price to charge the traveler, in your agency currency.

retail_pricenumber

The price to charge the traveler, in your agency currency. Another name of total_price, with the same value.

agency_currencystring

Same as currency.

Errors

StatusCodeExample message
400invalid_booking_idbooking_id is not a valid booking reference (received '!').
404booking_not_foundNo eSIM booking was found for this booking_id.
404not_foundSetup data not available for this booking

The shape of the error body depends on the endpoint. See Errors for every shape and code.

Related guides

  • Setup and installation instructions
PreviousCheck that an eSIM booking is yoursNext Get eSIM installation instructions

© 2026 FX-Port

TermsPrivacy[email protected]