Last updated

Partner CSV Upload Integration --- Bookings

Overview

Hubby eSIM provides a secure, serverless ingestion mechanism for partners to deliver daily booking data via CSV files.

This integration uses temporary signed upload URLs. Partners do not need:

  • Google Cloud accounts
  • SFTP access
  • Persistent credentials

Workflow

  1. Request temporary upload URL.
  2. Upload CSV via HTTP PUT.
  3. Hubby eSIM automatically validates and processes the file.

Production Endpoint

Request an upload URL using:

https://api.hubbyesim.com/api/bucket/upload-url?partnerId=acme&date=2026-02-11&dataset=bookings

Query Parameters

Parameter Required Description


partnerId Yes Unique partner identifier date Yes Data date in ISO format (YYYY-MM-DD) dataset Yes Must be bookings


Integration Steps

Step 1 --- Request Upload URL

Example request:

curl -X GET "https://api.hubbyesim.com/api/bucket/upload-url?partnerId=acme&date=2026-02-11&dataset=bookings"

Example response:

{
  "upload_url": "https://storage.googleapis.com/....",
  "object_path": "landing/supplier=acme/dataset=bookings/dt=2026-02-11/bookings.csv",
  "expires_at": "2026-02-11T08:00:00Z"
}

Step 2 --- Upload CSV File

Upload using HTTP PUT:

curl -X PUT   -H "Content-Type: text/csv"   --upload-file bookings_2026-02-11.csv   "UPLOAD_URL_FROM_RESPONSE"

Operational Rules

  • Upload URL expires automatically (typically within 2 hours).
  • Always request a new upload URL before uploading.
  • One file per partner per day unless explicitly agreed otherwise.
  • Re-uploads require coordination.

CSV Format Requirements

Encoding

  • UTF-8
  • Comma-separated values (CSV)
  • Header row required
  • ISO 8601 date format where specified

Required Columns


Column Description


booking_id Unique booking reference

departure_date ISO 8601 date (YYYY-MM-DD)

return_date ISO 8601 date (YYYY-MM-DD)

departure_location Origin country or airport

email Customer email address

first_name Customer first name

custom_branding Branding identifier tied to partner configuration

destination Travel destination

package_type Hubby eSIM package type (starter, data-limited, unlimited)

size Data bundle size (e.g. 1GB, 5GB, 10GB)


Optional Columns


Column Description


locale Language/locale for communications and claim flows. Use a code from Supported locales (e.g. en-US, fr-CA).


For detailed definitions of package tiers and configuration rules:

https://docs.hubbyesim.com/guides/use-cases/tiers


Example CSV

booking_id,departure_date,return_date,departure_location,email,first_name,custom_branding,destination,package_type,size,locale
ABC123,2026-03-01,2026-03-10,AMS,john@example.com,John,bronze,Japan,unlimited,5GB,en-US
DEF456,2026-03-02,2026-03-08,BRU,jane@example.com,Jane,gold,USA,starter,10GB,fr-CA

Error Handling Recommendations

Partners SHOULD:

  • Retry requesting upload URL on API failure.
  • Retry upload if HTTP response is non-2xx.
  • Log request and response metadata.

Security Model

  • Signed upload URLs are time-limited.
  • No long-lived cloud credentials required.
  • HTTPS-only transport.

Support

support@hubbyesim.com