Format XML
La porte Brave répond en JSON par défaut et en XML quand vous le demandez par l'en-tête Accept. Les deux formats portent exactement la même information.
Négociation par Accept
En-tête Accept | Réponse |
|---|---|
application/json (ou absent, ou */*) | JSON |
application/xml | XML |
application/json, application/xml | JSON (le premier déclaré l'emporte) |
cURL — réponse XML
curl -s "https://partners.bravebooking.net/v1/1000/ping" \
-H "X-Api-Key: $API_KEY" -H "X-Timestamp: $TIMESTAMP" -H "X-Signature: $SIGNATURE" \
-H "Accept: application/xml"
Réponse
<?xml version="1.0" encoding="UTF-8"?>
<PingResponse>
<Status>ok</Status>
<Company>1000</Company>
<Mode>test</Mode>
<Quota>
<PerSecond>10</PerSecond>
<PerDay>20000</PerDay>
<RemainingToday>19982</RemainingToday>
</Quota>
</PingResponse>
Règles de représentation
- Dates — ISO 8601 (
2027-01-15,2026-11-13T10:15:30+01:00) dans les deux formats, y compris en XML. Le formatd/m/Yn'existe que sur la porte Cyberesa. - Devises — code ISO 4217 (
TND,EUR), montants en nombres décimaux. - Tableaux — un élément conteneur répété :
<Hotels><Hotel>…</Hotel><Hotel>…</Hotel></Hotels>. - Booléens —
true/falseen JSON,true/falseen XML (porte Brave ; Cyberesa utilise'True'/'False'). - Erreurs — enveloppe
<ErrorResponse><Code>…</Code><Message>…</Message></ErrorResponse>en XML, quelle que soit la porte Brave appelée.
Corps de requête en XML
Les POST de la porte Brave acceptent aussi un corps XML (Content-Type: application/xml) :
POST /v1/{code}/checkrate en XML
<CheckrateRequest>
<RateKey>rk_x9F2kQ8example</RateKey>
</CheckrateRequest>
Schéma XSD
Le schéma officiel des messages de la porte Brave est docs/brave-partner.xsd dans le dépôt de la passerelle (partner-gateway). Validez vos échanges contre ce XSD en recette ; les réponses de la passerelle sont garanties conformes.
La porte Cyberesa a ses propres règles XML (racine = nom du message, dates
d/m/Y, Available = 'Disponible') — voir Cyberesa.