Cowdidocs
API ReferenceTransactions

Confirm the transaction OTP

POST
/v1/transactions/{id}/confirm

Confirm a pending transaction with its OTP code. Requires an authenticated, active user. The transaction must be PENDING_OTP_CONFIRMATION, and a matching OTP attempt must be pending for it. OTP applies only to transactions on the Choice payment route; other transactions return 400. A confirmed transaction moves to CONFIRMED. Returns 404 when the transaction does not exist, its account does not belong to the caller, or no OTP attempt is pending for it.

AuthorizationBearer <token>

Create a client with POST /v1/oauth/clients, then exchange its credentials for an access token. AUTHORIZATION_CODE clients act on behalf of a signed-in user and always use PKCE; CLIENT_CREDENTIALS clients act as themselves. A client may only be granted scopes its creator already holds — read the grantable list from GET /v1/oauth/clients/scopes.

In: header

Path Parameters

id*string

Unique identifier of the transaction.

Request Body

application/json

Request to confirm a transaction with its OTP code.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/transactions/01a11715-7b0d-7e3f-9c2a-4d5e6f708192/confirm" \  -H "Content-Type: application/json" \  -d '{    "otp_code": "123456"  }'
Empty
{  "code": "BAD_REQUEST",  "description": "Bad Request"}
{  "code": "UNAUTHORISED",  "description": "Unauthorised"}
{  "code": "FORBIDDEN",  "description": "Forbidden"}
Empty
{  "code": "RATE_LIMIT_EXCEEDED",  "description": "Too Many Requests"}
{  "code": "INTERNAL_ERROR",  "description": "Internal Server Error"}