Contents

POST [/instances/$INSTANCE]/challenge/$CHALLENGE_ID/confirm#

Solves the CHALLENGE_ID challenge and allows performing the protected operation.

@since v21

When the challenge is confirmed, you can call the protected endpoint again with CHALLENGE_ID in the Taler-Challenge-Ids HTTP header and the original request body.

This endpoints is not authenticated for token creation challenges. Too many unsuccessful attempts to confirm token creation challenges block the account.

This endpoint may be used even when mandatory TAN channels were not validated yet.

Request:

The request body must be a MerchantChallengeSolveRequest.

Response:

204 No Content:

The challenge was solved.

404 Not Found:

The challenge was not found. Returned with TALER_EC_MERCHANT_TAN_CHALLENGE_UNKNOWN.

409 Conflict:

Wrong TAN, returned with an error code of TALER_EC_MERCHANT_TAN_CHALLENGE_FAILED in a response of type MerchantChallengeFailedResponse.

429 Too many requests:

Too many failed confirmation attempts, a new TAN must be requested. Returned with TALER_EC_MERCHANT_TAN_TOO_MANY_ATTEMPTS.

500 Internal Server Error:

The server experienced an internal failure. Returned with TALER_EC_GENERIC_DB_STORE_FAILED.

Details:

interface MerchantChallengeSolveRequest {

  // The TAN code that solves $CHALLENGE_ID.
  tan: string;
}
interface MerchantChallengeFailedResponse {

  // Numeric error code unique to the condition.
  // The other arguments are specific to the error value reported here.
  code: ErrorCode;

  // Human-readable description of the error, i.e. "missing parameter", "commitment violation", ...
  // Should give a human-readable hint about the error's nature. Optional, may change without notice!
  hint?: string;

  // Optional detail about the specific input value that failed. May change without notice!
  detail?: string;

  // Counter with the number of attempts left.
  retry_counter: Integer;
}