Get the current sign-in transaction

GET /fapi/v1/transactions/current · called from the environment's sign-in host

Returns the transaction that the __Host-idp_ltx cookie points to, including its state and the steps that can run next. Use it to resume a sign-in page after a reload.

Request

Headers:

Header Required Description
Idp-Client yes SDK identifier, <package>/<version> (<runtime>/<version>).

The transaction cookie is sent automatically by the browser.

Response

200 OK with the transaction object (schema_version, state, next_steps, csrf_token, expires_at). Every response carries Cache-Control: no-store.

A transaction that asks the user to link an enterprise connection to an existing account also carries account_link (connection_name, organization_name); see Run a sign-in step. The hosted page reaches it with resume=1 and continues it instead of creating a new transaction. It does the same after an enterprise sign-in that still needs a second factor (second_factor_pending) or enrollment (enrollment_pending).

DPoP-bound headless transactions

For a transaction started with a DPoP header, send a new proof from the same key (htm GET, htu this URL); the server returns the newest unexpired transaction bound to that key. The authorization code is never returned here.

Errors

Status Code When
400 malformed_request Idp-Client is missing.
410 transaction_expired There is no cookie, the cookie is invalid, or the transaction has ended.
401 invalid_dpop_proof The DPoP proof is invalid or reused.

Example

curl https://example.keenauth.app/fapi/v1/transactions/current \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -b cookies.txt

Personal data

This endpoint carries personal data: end-user profile. Personal data in the KeenAuth APIs describes what is stored, how long it is kept and how it is deleted. Do not send special categories of personal data (health, biometric data, religion, political opinions, sexual orientation) in any field.