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
- Request temporary upload URL.
- Upload CSV via HTTP PUT.
- 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-CAError 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