Skip to content
Logo

GET /customers/:id/accounts/requests

Read an AccountCreationRequest, the partner-issued request that produced (or is producing) an account. Use this after POST /customers/:id/accounts returned request.status === "pending" to watch the registration settle.

Two access paths:

  • By id: GET /customers/:customer_id/accounts/requests/:request_id, the canonical fetch. Use request.id from the POST response.
  • By idempotency key: GET /customers/:customer_id/accounts/requests?idempotency_key=…, useful when retrying from a context that's lost the request id.

Path / query params

ParamTypeWhereNotes
customer_idUUIDpathThe customer the request was filed under.
request_idUUIDpathWhen fetching a specific request by id.
idempotency_keystringqueryWhen looking up by the caller-supplied key. Mutually exclusive with request_id. Returns null if no request was filed with this key under this customer.

Response 200

{
  "id": "req_…",
  "customer_id": "2f10…",
  "kind": "fiat",
  "shape": "us",
  "origin": "virtual",
  "currency": "USD",
  "rails": ["ach", "wire"],
  "status": "pending",
  "idempotency_key": "abc-123",
  "account_id": null,
  "created_at": "2026-05-15T10:25:00Z",
  "updated_at": "2026-05-15T10:25:00Z"
}

The shape is AccountCreationRequest. Once status === "completed", account_id is set and you can look up the materialized account at GET /accounts/:id.

When looking up by idempotency key and no matching request exists, the response is null (no error).

Polling guidance

Whenever the initial create-account POST returns request.status === "pending", poll this endpoint until status transitions to completed or failed. Both origin: "external" and origin: "virtual" requests can stay pending: for external, the Account row already exists from the POST but the underlying registration still needs to confirm. For virtual, both account_id and status settle together when provisioning completes. A few seconds between polls is plenty.

(Once webhooks land, you'll be able to subscribe to account.activated and account.failed events instead of polling.)

Errors

404: request not found (or scoped to a different customer / org).

Example: by id

curl "$SEISMIC_ORCHESTRATION_URL/v0/customers/2f10…/accounts/requests/req_…" \
  -H "Api-Key: $SEISMIC_ORCHESTRATION_API_KEY"

Example: by idempotency key

curl "$SEISMIC_ORCHESTRATION_URL/v0/customers/2f10…/accounts/requests?idempotency_key=abc-123" \
  -H "Api-Key: $SEISMIC_ORCHESTRATION_API_KEY"