Download OpenAPI specification:
B2B partner API for booking accommodation through Trekko using an API key (instead of the interactive web login). Every booking you confirm is attributed to your agency in Trekko's CRM, and prices already include your configured markup (applied at egress on the Trekko side).
The endpoints under Search, Availability and Bookings (search,
availability, checkout, the booking-payment step, confirm, cancel,
list_bookings, get_booking) are live in production and exercised by the first
partner (StayTick = agency 50). The Sandbox (test mode) surface
(/core/sandbox/...) is live for self-serve testing. The Account
(balance/savings) and Webhooks endpoints back Trekko's automated
rebooking (SBPO) money-flow, which is described in detail in
REBOOKING_FOR_PARTNERS.md; treat the savings/webhook payloads there as the
forward-looking design.
Published client SDKs (pip install trekko,
npm i @staytick/trekko-client) and the admin provisioning endpoint
/admin/agencies/<id>/api_credentials are not yet published / deployed —
contact Trekko for credentials rather than relying on them.
Send credentials with either header form (the first is preferred):
Authorization: ApiKey key:secretX-Api-Key: key and X-Api-Secret: secretKeys are prefixed trk_live_ (production, admin-provisioned) or trk_test_
(sandbox, issued instantly by POST /core/sandbox/signup). The secret is
shown only once and is stored hashed server-side — store it on receipt.
Rotation = Trekko re-issues the pair; revocation = the key is deactivated
(is_active=false). A bad/inactive key or wrong secret returns
401 invalid_api_key.
application/json.Accept-Language is OPTIONAL and defaults to en. It is only rejected
when explicitly set to an unsupported value (allowed: en, es, fr,
de, it, pt); omitting it is fine./core/... (there is no /api/ prefix on the public host).error.code is machine-readable and stable;
error.message is human-readable and may change). X-Request-Id is
currently returned on error responses — quote it to support.Returns the platform's known cities to help resolve a city for
searching. No API-key auth is required (public/AllowAny). Pass an
optional country_id to filter to one country.
| country_id | integer Restrict the list to a single country. |
| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
[- {
- "id": 2,
- "name": "Madrid"
}, - {
- "id": 3,
- "name": "Barcelona"
}, - {
- "id": 4,
- "name": "Dubai"
}
]Free-text search. search_by_type indicates the entity type:
0 Accommodation · 1 City · 2 Area · 3 Landmark. Use the returned
search_by_id / search_by_type to drive availability.
| query required | string Example: query=Barcelona Free-text search term, e.g. |
| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
{- "data": [
- {
- "name": "Villa White Rock, Ban Amphur",
- "sub_name": "",
- "search_by_id": "1376114",
- "search_by_type": 0,
- "latitude": 12.843385,
- "longitude": 100.935948,
- "landmarks": [ ],
- "area": [ ]
}, - {
- "name": "Ban Mai Subdistrict",
- "sub_name": "Thailand",
- "search_by_id": "57789",
- "search_by_type": 1,
- "latitude": 19.288262,
- "longitude": 99.765417,
- "landmarks": [ ],
- "area": [ ]
}
]
}Returns bookable rate plans (prices include your markup) for a hotel
over a date range. Carry every field you receive (vendor,
booking_code, the price fields, cancellation_policy,
cancellation_policy_rules, room_codes, board_plan_text) forward into
checkout and confirm. 204 means no availability for that query.
Guest rules (enforced server-side): guests is a flat list of
{id, age}; guest ids must be unique; the booking needs at least one
adult (age ≥ 18). guests_room_distribution assigns every guest id to
exactly one room, and each room must contain at least one adult.
nationality is OPTIONAL.
| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| accommodation_id required | integer |
| start_date required | string <date> |
| end_date required | string <date> |
required | Array of objects (Guest) |
required | Array of objects (GuestRoomDistribution) |
| nationality | string OPTIONAL. 2-letter ISO-3166-1 alpha-2 country code. |
| currency_code | string ISO-4217. Defaults to EUR. |
{- "accommodation_id": 1376114,
- "start_date": "2026-09-01",
- "end_date": "2026-09-04",
- "guests": [
- {
- "id": 1,
- "age": 34
}, - {
- "id": 2,
- "age": 30
}
], - "guests_room_distribution": [
- {
- "guest_ids": [
- 1,
- 2
]
}
], - "nationality": "ES",
- "currency_code": "EUR"
}{- "accommodation_id": 0,
- "name": "string",
- "options": [
- {
- "vendor": "src_3f9a2b",
- "rate_plan_code": "RP-ABC-123",
- "booking_code": "BC-XYZ-789",
- "room_codes": [
- "string"
], - "board_plan_text": "Room Only",
- "nett_price": 312.4,
- "minimum_price": 330,
- "maximum_price": 360,
- "currency_code": "EUR",
- "currency_symbol": "€",
- "cancellation_policy": "string",
- "cancellation_policy_rules": [
- {
- "From": "0",
- "To": "3",
- "DateFrom": "2026-02-09",
- "DateFromHour": "00:00",
- "DateTo": "2026-02-13",
- "DateToHour": "00:00",
- "Type": "V",
- "FixedPrice": "0",
- "PercentPrice": "100",
- "Nights": "0",
- "ApplicationTypeNights": "Average"
}
]
}
]
}Re-validates the selected option and returns the locked price plus the
booking_code / room_codes / cancellation policy you carry into the
payment + confirm steps. Send the guest list and room distribution again
(same validation rules as availability). Checkout does NOT return an
invoice_id — that comes from the payment step (see the lifecycle
below).
| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| accommodation_id required | integer |
| vendor required | string |
| rate_plan_code required | string |
| start_date required | string <date> |
| end_date required | string <date> |
required | Array of objects (Guest) |
required | Array of objects (GuestRoomDistribution) |
| currency_code | string Default: "EUR" |
{- "accommodation_id": 1376114,
- "vendor": "src_3f9a2b",
- "rate_plan_code": "RP-ABC-123",
- "start_date": "2026-09-01",
- "end_date": "2026-09-04",
- "guests": [
- {
- "id": 1,
- "age": 34
}, - {
- "id": 2,
- "age": 30
}
], - "guests_room_distribution": [
- {
- "guest_ids": [
- 1,
- 2
]
}
], - "currency_code": "EUR"
}{- "vendor": "src_3f9a2b",
- "booking_code": "string",
- "room_codes": [
- "string"
], - "minimum_price": 30.02,
- "maximum_price": 33.19,
- "nett_price": 31.6,
- "currency_code": "EUR",
- "currency_symbol": "€",
- "start_date": "2026-02-12",
- "end_date": "2026-02-13",
- "board_plan_text": "Room Only",
- "cancellation_policy": "string",
- "cancellation_policy_rules": [
- {
- "From": "0",
- "To": "3",
- "DateFrom": "2026-02-09",
- "DateFromHour": "00:00",
- "DateTo": "2026-02-13",
- "DateToHour": "00:00",
- "Type": "V",
- "FixedPrice": "0",
- "PercentPrice": "100",
- "Nights": "0",
- "ApplicationTypeNights": "Average"
}
], - "hotel_comments": "string"
}The payment step that produces the invoice_id confirm_booking
requires. Partners on a credit/prepaid account use this funds path:
Trekko charges your virtual wallet / credit balance and returns an
invoice_id plus the matching payment_type
("Booking Payment by Funds"). Pass that same invoice_id and
payment_type into confirm.
Other payment paths exist for web/card flows
(/accommodation/bookings/pay_by_own_card,
/accommodation/bookings/pay_by_clients_card,
/accommodation/bookings/pay_later); each likewise yields an
invoice_id + payment_type. Insufficient funds returns 400.
| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| amount required | number Amount to charge (the price you will confirm). |
| currency_code | string Default: "EUR" |
{- "amount": 360,
- "currency_code": "EUR"
}{- "invoice_id": 24881,
- "payment_type": "Booking Payment by Funds"
}Creates the booking and attributes it to your agency in the CRM. Requires
a paid invoice_id (from the payment step) and its matching
payment_type; an unpaid/invalid invoice returns 402 payment_required.
Guests: guests_information is a SINGLE OBJECT carrying the lead
guest plus an optional guests array of extra occupants. The lead guest
is treated as id == 1 and must be at least 18. rooms_data and
guests_room_distribution are required. room_codes is required when the
vendor is a specific source.
Send a stable idempotency_key in the body and the Idempotency-Key
header (same value): a retry/timeout then replays the original response
instead of double-booking. The replayed response carries
Idempotency-Replayed: true.
| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| Idempotency-Key | string Stable unique value (e.g. a UUID) per booking attempt. Remembered for 24h. |
| accommodation_id required | integer |
| vendor required | string non-empty |
| booking_code required | string |
| room_codes | Array of strings Required when |
| invoice_id required | integer From the payment step (e.g. pay_by_funds). |
| payment_type required | string Enum: "Booking Payment by Own Card" "Booking Payment by Funds" "Booking Payment (Pay Later)" "Booking Payment by Clients Card" Must match the invoice. One of the long invoice-type strings. |
| minimum_price required | number |
| maximum_price required | number |
| nett_price required | number |
| base_price required | number |
| base_currency required | string Default: "EUR" |
| currency_code | string Default: "EUR" |
required | object (GuestsInformation) Single object carrying the lead guest plus any extra occupants. |
required | Array of objects (GuestRoomDistribution) |
object | |
| cancellation_policy required | string non-empty |
required | Array of objects (CancellationPolicyRule) |
| board_plan_text required | string |
required | Array of objects (RoomData) |
| start_date required | string <date> |
| end_date required | string <date> |
| agencies_internal_booking_ref required | string Your own reference, surfaced in the Trekko CRM. Use an |
| idempotency_key | string Optional stable per-attempt key; a duplicate submit returns the original booking. If omitted, the server derives one from invoice_id. |
{- "accommodation_id": 0,
- "vendor": "string",
- "booking_code": "string",
- "room_codes": [
- "string"
], - "invoice_id": 0,
- "payment_type": "Booking Payment by Funds",
- "minimum_price": 0,
- "maximum_price": 0,
- "nett_price": 0,
- "base_price": 0,
- "base_currency": "EUR",
- "currency_code": "EUR",
- "guests_information": {
- "id": 1,
- "lead_guest_title": "Mr",
- "lead_guest_name": "Ada",
- "lead_guest_surname": "Lovelace",
- "lead_guest_email": "user@example.com",
- "lead_guest_phone": "string",
- "lead_guest_nationality": "ES",
- "lead_guest_age": 34,
- "guests": [
- {
- "id": 0,
- "title": "string",
- "name": "string",
- "surname": "string",
- "age": 30
}
]
}, - "guests_room_distribution": [
- {
- "guest_ids": [
- 0
]
}
], - "special_requests": {
- "arrival_time": "string",
- "other_requests": "string"
}, - "cancellation_policy": "string",
- "cancellation_policy_rules": [
- {
- "From": "0",
- "To": "3",
- "DateFrom": "2026-02-09",
- "DateFromHour": "00:00",
- "DateTo": "2026-02-13",
- "DateToHour": "00:00",
- "Type": "V",
- "FixedPrice": "0",
- "PercentPrice": "100",
- "Nights": "0",
- "ApplicationTypeNights": "Average"
}
], - "board_plan_text": "string",
- "rooms_data": [
- {
- "room_name": "Double Room",
- "bed_reference": "1 double bed",
- "no_of_adults": 2,
- "no_of_children": 0,
- "guest_name": "Ada Lovelace"
}
], - "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "agencies_internal_booking_ref": "string",
- "idempotency_key": "string"
}{- "booking_number": 1045,
- "booking_id": "TRK-1045"
}Cancels a booking, subject to the rate's cancellation policy / fees.
booking_number is the integer booking number and
cancellation_reason (non-empty) is required.
| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| booking_number required | integer |
| cancellation_reason required | string non-empty |
{- "booking_number": 1045,
- "cancellation_reason": "Guest requested cancellation"
}{- "message": "string"
}Reads all filters from the query string. Returns the agency's bookings, newest first.
| page_no | integer >= 1 Default: 1 |
| items_per_page | integer >= 1 Default: 5 |
| status | string Enum: "upcoming" "completed" "cancelled" |
| check_in | string <date> |
| check_out | string <date> |
| booking_date | string <date> |
| booking_id | string |
| guest_name | string |
| country | string |
| city | string |
| currency_code | string |
| travel_agency_ref | integer |
| booking_type | string Enum: "Rebooked" "Original" |
| search_query | string |
| agencies_internal_booking_ref | string |
| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
{- "total_pages": 0,
- "current_page": 0,
- "items_per_page": 0,
- "data": [
- {
- "booking_id": 2,
- "is_rebooked": false,
- "old_booking_number": 0,
- "nights": 2,
- "rooms": 1,
- "check_in_date": "2025-06-15",
- "check_out_date": "2025-06-17",
- "cancellation_policy": "string",
- "free_cancellation_until": "2025-06-12",
- "booking_date": "2025-01-28 07:17:58",
- "is_paid": true,
- "payment_option": "credit card",
- "price_wo_added_services": 150,
- "client_price": 125,
- "commission": 25,
- "commission_percentage": 25,
- "supplier_id": 0,
- "travel_agency_ref": 0,
- "agent_name": "string",
- "guest_name": "string",
- "hotel_name": "Hotel Copacabana",
- "hotel_address": "string",
- "hotel_country": "Spain",
- "hotel_city": "Palma de Mallorca",
- "cancellation_fee": 0,
- "currency_code": "EUR",
- "currency_symbol": "€",
- "is_updated": true
}
]
}Returns the CURRENT active booking for a stable booking_id (which
survives SBPO rebooking) or an integer booking_number, including a
rebooking block when the booking was rebooked to a cheaper rate. The
partner stores booking_id and uses this to map it to the live
booking_number (e.g. before cancelling). See REBOOKING_FOR_PARTNERS.md.
| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| booking_id | string |
| booking_number | integer |
{- "booking_id": "TRK-1045"
}{- "booking_id": "TRK-1045",
- "booking_number": 1045,
- "accommodation_name": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "is_confirmed": true,
- "is_cancelled": true,
- "total_price": 0,
- "currency_code": "string",
- "agencies_internal_booking_ref": "string",
- "rebooking": {
- "rebooked": true,
- "times_rebooked": 0,
- "original_booking_number": 0,
- "gross_savings": 0,
- "trekko_fee": 0,
- "partner_savings": 0,
- "credited_to": "virtual_wallet",
- "last_rebooked_at": "2019-08-24T14:15:22Z"
}
}| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
{- "currency_code": "EUR",
- "funding_type": "prepaid",
- "virtual_wallet": 0,
- "credit_balance": 0,
- "credit_limit": 0
}One row per SBPO rebooking — the "we saved you €X after booking" data.
| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| page_no | integer Default: 1 |
| items_per_page | integer Default: 20 |
{- "page_no": 1,
- "items_per_page": 20
}{- "current_page": 0,
- "total_pages": 0,
- "total_partner_savings": 0,
- "total_trekko_fee": 0,
- "currency_code": "string",
- "data": [
- {
- "booking_id": "string",
- "rebooked_at": "2019-08-24T14:15:22Z",
- "gross_savings": 0,
- "trekko_fee": 0,
- "partner_savings": 0,
- "credited_to": "string"
}
]
}Register an HTTPS URL to receive signed events (e.g. booking.rebooked).
The signing_secret is returned ONCE. Each delivery carries a
Trekko-Signature: t=<unix>,v1=<hex> header where
v1 = HMAC_SHA256(secret, "<t>.<raw_body>"). URLs resolving to
private/loopback/metadata addresses are rejected.
| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| url required | string <uri> |
| events | string Comma-separated event types, or '*'. |
{- "events": "booking.rebooked"
}{- "id": 0,
- "url": "string",
- "events": "string",
- "signing_secret": "whsec_..."
}| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
{- "data": [
- {
- "id": 0,
- "url": "string",
- "events": "string",
- "is_active": true
}
]
}Self-serve test surface under /core/sandbox; trk_test_ keys, no real vendors/money.
Public, no-auth self-serve signup. Returns a trk_test_* key/secret pair
(secret shown ONCE) plus the sandbox base URL. Use the returned key to
call any /sandbox/... endpoint and run the full
search→availability→checkout→confirm→(trigger_rebooking)→cancel loop with
no real vendors, money or production data.
string <email> | |
| company_name | string |
{- "email": "dev@example.com",
- "company_name": "Example Travel"
}{- "sandbox_account_id": 0,
- "api_key": "trk_test_abcdef0123456789",
- "api_secret": "string",
- "mode": "test",
- "auth_header_example": "string",
- "note": "string"
}Mirrors the live search contract; backed by the isolated sandbox engine. Accepts query as a query param or in the body.
| query | string Example: query=Barcelona |
| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
{- "error": {
- "code": "invalid_api_key",
- "message": "Invalid API key or secret.",
- "request_id": "a1b2c3d4e5f6"
}
}| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| accommodation_id required | integer |
| start_date required | string <date> |
| end_date required | string <date> |
required | Array of objects (Guest) |
required | Array of objects (GuestRoomDistribution) |
| nationality | string OPTIONAL. 2-letter ISO-3166-1 alpha-2 country code. |
| currency_code | string ISO-4217. Defaults to EUR. |
{- "accommodation_id": 1376114,
- "start_date": "2026-09-01",
- "end_date": "2026-09-04",
- "guests": [
- {
- "id": 1,
- "age": 34
}
], - "guests_room_distribution": [
- {
- "guest_ids": [
- 0
]
}
], - "nationality": "ES",
- "currency_code": "EUR"
}{- "error": {
- "code": "invalid_api_key",
- "message": "Invalid API key or secret.",
- "request_id": "a1b2c3d4e5f6"
}
}| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| accommodation_id required | integer |
| vendor required | string |
| rate_plan_code required | string |
| start_date required | string <date> |
| end_date required | string <date> |
required | Array of objects (Guest) |
required | Array of objects (GuestRoomDistribution) |
| currency_code | string Default: "EUR" |
{- "accommodation_id": 0,
- "vendor": "string",
- "rate_plan_code": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "guests": [
- {
- "id": 1,
- "age": 34
}
], - "guests_room_distribution": [
- {
- "guest_ids": [
- 0
]
}
], - "currency_code": "EUR"
}{- "error": {
- "code": "invalid_api_key",
- "message": "Invalid API key or secret.",
- "request_id": "a1b2c3d4e5f6"
}
}| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| accommodation_id required | integer |
| vendor required | string non-empty |
| booking_code required | string |
| room_codes | Array of strings Required when |
| invoice_id required | integer From the payment step (e.g. pay_by_funds). |
| payment_type required | string Enum: "Booking Payment by Own Card" "Booking Payment by Funds" "Booking Payment (Pay Later)" "Booking Payment by Clients Card" Must match the invoice. One of the long invoice-type strings. |
| minimum_price required | number |
| maximum_price required | number |
| nett_price required | number |
| base_price required | number |
| base_currency required | string Default: "EUR" |
| currency_code | string Default: "EUR" |
required | object (GuestsInformation) Single object carrying the lead guest plus any extra occupants. |
required | Array of objects (GuestRoomDistribution) |
object | |
| cancellation_policy required | string non-empty |
required | Array of objects (CancellationPolicyRule) |
| board_plan_text required | string |
required | Array of objects (RoomData) |
| start_date required | string <date> |
| end_date required | string <date> |
| agencies_internal_booking_ref required | string Your own reference, surfaced in the Trekko CRM. Use an |
| idempotency_key | string Optional stable per-attempt key; a duplicate submit returns the original booking. If omitted, the server derives one from invoice_id. |
{- "accommodation_id": 0,
- "vendor": "string",
- "booking_code": "string",
- "room_codes": [
- "string"
], - "invoice_id": 0,
- "payment_type": "Booking Payment by Funds",
- "minimum_price": 0,
- "maximum_price": 0,
- "nett_price": 0,
- "base_price": 0,
- "base_currency": "EUR",
- "currency_code": "EUR",
- "guests_information": {
- "id": 1,
- "lead_guest_title": "Mr",
- "lead_guest_name": "Ada",
- "lead_guest_surname": "Lovelace",
- "lead_guest_email": "user@example.com",
- "lead_guest_phone": "string",
- "lead_guest_nationality": "ES",
- "lead_guest_age": 34,
- "guests": [
- {
- "id": 0,
- "title": "string",
- "name": "string",
- "surname": "string",
- "age": 30
}
]
}, - "guests_room_distribution": [
- {
- "guest_ids": [
- 0
]
}
], - "special_requests": {
- "arrival_time": "string",
- "other_requests": "string"
}, - "cancellation_policy": "string",
- "cancellation_policy_rules": [
- {
- "From": "0",
- "To": "3",
- "DateFrom": "2026-02-09",
- "DateFromHour": "00:00",
- "DateTo": "2026-02-13",
- "DateToHour": "00:00",
- "Type": "V",
- "FixedPrice": "0",
- "PercentPrice": "100",
- "Nights": "0",
- "ApplicationTypeNights": "Average"
}
], - "board_plan_text": "string",
- "rooms_data": [
- {
- "room_name": "Double Room",
- "bed_reference": "1 double bed",
- "no_of_adults": 2,
- "no_of_children": 0,
- "guest_name": "Ada Lovelace"
}
], - "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "agencies_internal_booking_ref": "string",
- "idempotency_key": "string"
}{- "error": {
- "code": "invalid_request",
- "message": "Field 'start_date' is required.",
- "request_id": "a1b2c3d4e5f6"
}
}| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| booking_number | integer |
| booking_id | string |
{- "booking_number": 0,
- "booking_id": "string"
}{- "error": {
- "code": "invalid_api_key",
- "message": "Invalid API key or secret.",
- "request_id": "a1b2c3d4e5f6"
}
}| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| page_no | integer Default: 1 |
| items_per_page | integer Default: 20 |
{- "page_no": 1,
- "items_per_page": 20
}{- "error": {
- "code": "invalid_api_key",
- "message": "Invalid API key or secret.",
- "request_id": "a1b2c3d4e5f6"
}
}| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| booking_id | string |
| booking_number | integer |
{- "booking_id": "string",
- "booking_number": 0
}{- "error": {
- "code": "invalid_api_key",
- "message": "Invalid API key or secret.",
- "request_id": "a1b2c3d4e5f6"
}
}Simulate SBPO rebooking a confirmed sandbox booking to a cheaper rate — applies the real money model, credits savings, and fires booking.rebooked.
| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| booking_id | string |
| booking_number | integer |
{- "booking_id": "string",
- "booking_number": 0
}{- "error": {
- "code": "invalid_request",
- "message": "Field 'start_date' is required.",
- "request_id": "a1b2c3d4e5f6"
}
}| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
{- "error": {
- "code": "invalid_api_key",
- "message": "Invalid API key or secret.",
- "request_id": "a1b2c3d4e5f6"
}
}| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| page_no | integer Default: 1 |
| items_per_page | integer Default: 20 |
{- "page_no": 1,
- "items_per_page": 20
}{- "error": {
- "code": "invalid_api_key",
- "message": "Invalid API key or secret.",
- "request_id": "a1b2c3d4e5f6"
}
}| Accept-Language | string Default: en Enum: "en" "es" "fr" "de" "it" "pt" Response language. OPTIONAL — defaults to |
| url required | string <uri> |
{
}{- "error": {
- "code": "invalid_request",
- "message": "Field 'start_date' is required.",
- "request_id": "a1b2c3d4e5f6"
}
}Read-only. Authenticate with your test key (trk_test_*). Returns
whether your account is promoted/live, the required minimum deposit, and
your current funding (wallet deposit + credit line). See
SELF_SERVE_PRODUCTION.md.
{- "mode": "test",
- "production_active": true,
- "deposit_required": 3000,
- "available_balance": 0,
- "gap": 0,
- "currency": "EUR"
}Authenticate with your test key. Promotes your account to a real
agency and mints your trk_live_ key (secret shown ONCE) — only once
your wallet deposit + credit line reach the minimum (€3,000 by default).
There is no payment in this call: fund your wallet first via the normal
channels (card top-up or bank transfer). Until funded it returns
pending_deposit with how much is left.
string <email> Required only if not set at signup. | |
| company_name | string |
{- "email": "dev@yourcompany.com"
}{- "mode": "live",
- "production_active": true,
- "agency_id": 0,
- "api_key": "trk_live_…",
- "api_secret": "string",
- "deposit_required": 3000,
- "available_balance": 0,
- "gap": 0,
- "currency": "EUR"
}