Authentication and account scope
Every connector uses HTTP Basic authentication with your Fluz API key:accountIdentifier, do not select a sub-account here. If you operate several accounts, request one key per account.
Order status values
Thestatus field on an order (OrderStatus on InComm) carries a Fluz value, not your vendor’s:
Your vendor’s status strings do not carry over. A check written against a vendor value, for example
status === "COMPLETE", will not match COMPLETED. Update every status comparison before you cut over.Timing
Tango Card and InComm create an order synchronously, always running to completion. The call does not return until the purchase has finished, which can take up to 150 seconds, so set your client’s read timeout above that. Runa is asynchronous by default.POST /v2/order returns 202 immediately with a reference ID, and you read the order later. Send X-Execution-Mode: sync to block until the purchase completes and receive the full result, as Tango and InComm do.
Reading an order
An order becomes readable once its purchase has completed. Reading a reference ID before then returns an error rather than a pending status, so treat an error on a freshly created asynchronous order as still processing and read again shortly. The list endpoints return the 100 most recent orders on the account in a single response, newest first.Error responses
Errors use the Fluz envelope, not your vendor’s error schema:
A rejected request and a server fault both return
500. Read the error message to tell them apart: a rejection means the request needs to change, a fault is safe to retry.
Rate limits
20 requests per second, applied per API key and per source IP. Exceeding either limit blocks that key or IP for 10 seconds, so back off for at least that long after a429.
The per-key limit is shared, so several hosts using one key share one budget.
Balances
A balance read reports the available balance of the Fluz account your API key is issued for. Tango returns it ascurrentBalance and Runa as balance; InComm returns availableBalance alongside prepaidBalance, which covers the gift card balance on its own.
A balance read is always scoped to the account your key is issued for, so the discriminators in your vendor’s balance calls do not narrow it further: Tango’s :accountId, InComm’s :programId and Runa’s ?currency= are accepted for compatibility with your existing request shape.
One behaviour to watch: a balance call with any query string returns a single object, and a call with none returns an array of one. If your client calls .map() over the response, keep the query string off.
Brand codes
All three connectors resolve brand codes against one Fluz catalog, whichever field carries them:utid on Tango, Sku on InComm, items[].products.value on Runa. Your vendor’s product codes do not carry over, and a code Fluz does not recognise returns an error.
Map your full brand list against the Fluz catalog before you cut over. A code that resolves to the wrong Fluz offer delivers the wrong card without an error.
Request constraints
Connectors accept your vendor’s request shape, but some values are fixed. A request that breaks one of these is rejected.
Fluz returns gift card credentials directly in the order response, which is why the email flags above must be off: delivery to the recipient stays under your control.