Headers requeridos
Toda request necesita un mínimo de headers antes de hacer algo útil — algunos se verifican justo en el borde, antes de que la request llegue siquiera a la API. Esta página los junta a todos en un solo lugar; autenticación y firma de solicitudes cubren en profundidad los dos más elaborados.
La lista completa
| Header | Requerido en | Valor |
|---|---|---|
User-Agent | Toda request | No vacío, identificando tu sistema — por ejemplo acme-payments/2.3 |
Accept | Toda request | application/json |
Authorization | Toda request | Basic en /oauth2/token, Bearer <token> en el resto |
Content-Type | Requests con body | application/json |
signature + nonce | Endpoints firmados | Firma RSA-SHA256 y nonce en epoch ms |
X-Idempotency-Key | Solo POST /orders | Un string único que elegís vos — ver idempotencia |
User-Agent y Accept
Estos dos se verifican en el borde del gateway, antes de que la request
llegue a la API. Si falta cualquiera de los dos, recibís un rechazo genérico del
gateway en lugar del sobre de error JSON descripto en
errores — no hay code, no hay category, nada sobre lo que
ramificar.
User-Agenttiene que ser no vacío y debería identificar tu sistema, no quedarse en el valor por defecto de una librería —acme-payments/2.3en lugar de nada.Acceptdebería serapplication/json.
curl y la mayoría de las librerías HTTP mandan ambos por defecto (Accept: */*
y un User-Agent de librería), por eso esto casi nunca aparece probando con
curl. Se nota con los clientes que no los completan: java.net.http.HttpClient
de Java no manda ningún header Accept, y algunas librerías HTTP mínimas o
runtimes serverless mandan un User-Agent vacío. Ambos casos quedan
bloqueados.
curl "https://api.gateway.sandbox.retorna.app/me/routes?sourceCurrency=USDR" \
-H "User-Agent: acme-payments/2.3" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN" \
-H "signature: $SIGNATURE" -H "nonce: $NONCE"
Si usás uno de los SDKs
Los SDKs de TypeScript, Java y Python mandan User-Agent,
X-Retorna-Client y Accept: application/json en cada request
automáticamente. Si integrás a través de alguno de ellos, no tenés que agregar
nada.