Skip to content

Authentication

v2 uses the same API keys as v1 — same format, same test/live split, same header. If you already call v1, you already have a working credential.

bash
curl -X POST https://api.textilecredit.com/v2/rfq/request \
  -H "Authorization: Bearer tx_live_a1b2c3d4.your_secret_here" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

Everything in v1 authentication about key format, rotation, and keeping secrets server-side applies unchanged.

The alpha allowlist

On top of a valid key, your partner record must be allowlisted for v2. This is deliberate: it means a client that starts rendering v2 calls can't move real traffic onto the new venue until we've enabled it for you.

A valid key that isn't allowlisted gets:

json
{
  "error": {
    "code": "forbidden",
    "message": "This API key is not enabled for the RFQ beta",
    "request_id": "req_…"
  }
}

Ask us to enable it. Nothing about your v1 access changes either way.

Scopes

Same scope model as v1, and the same two scopes you already use for trading:

ScopeGrants
trades:writePOST /v2/rfq/request, POST /v2/rfq/{id}/submit
trades:readGET /v2/rfq/{id}

A key without the scope for an endpoint gets 403 forbidden, exactly as on v1.

Unauthenticated endpoints

GET /v2/health and GET /v2/openapi.json need no credential, so monitors and codegen can reach them.

Test vs live

Keys are environment-scoped and the environment is baked into the prefix, same as v1: tx_live_… for mainnet corridors, tx_test_… for testnet. A test key against a mainnet chain (or the reverse) is a 400.

The BSC testnet cNGN ↔ USDT corridor is the one to integrate against — see Testnet (BSC). An RFQ corridor still has to be enabled there and have a maker online, so if you get no_makers_online on testnet, tell us rather than assuming your request is wrong.