taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

post-accounts-USERNAME-challenge-CHALLENGE_ID.rst (1944B)


      1 .. http:post:: /accounts/$USERNAME/challenge/$CHALLENGE_ID
      2 
      3   Send TAN code for the ``CHALLENGE_ID`` challenge.
      4 
      5   This request can be posted again to trigger TAN retransmission only while
      6   the challenge is unsolved, unexpired and still has confirmation attempts
      7   remaining.  The client must wait until ``earliest_retransmission`` before
      8   requesting another delivery.
      9 
     10   Expiration and exhaustion of confirmation attempts are terminal for the
     11   challenge ID.  They do not create a new TAN and cannot be recovered by
     12   retransmission.  The client must repeat the original protected operation to
     13   obtain a fresh challenge set.
     14 
     15   This endpoint is not authenticated. @since **v10**
     16 
     17   **Request:**
     18 
     19   The request body must be empty.
     20 
     21   **Response:**
     22 
     23   :http:statuscode:`200 Ok`:
     24     The TAN code has been sent. The body will be a `ChallengeRequestResponse`.
     25   :http:statuscode:`404 Not Found`:
     26     * ``TALER_EC_BANK_TRANSACTION_NOT_FOUND``: the challenge ID was not found.
     27     * ``TALER_EC_BANK_TAN_CHALLENGE_EXPIRED``: the challenge has expired or
     28       exhausted its confirmation attempts and is terminal.
     29   :http:statuscode:`410 Gone`:
     30     The challenge was already solved.
     31   :http:statuscode:`429 Too many requests`:
     32     Too many challenges are active right now, you must wait or confirm current challenges.
     33   :http:statuscode:`502 Bad Gateway`:
     34     * ``TALER_EC_BANK_TAN_CHANNEL_SCRIPT_FAILED``: the configured delivery
     35       script failed.  Delivery was not confirmed; the client may retry while
     36       the challenge remains live and the retransmission policy permits it.
     37 
     38   **Details:**
     39 
     40   .. ts:def:: ChallengeRequestResponse
     41 
     42     interface ChallengeRequestResponse {
     43       // How long does the client have to solve the
     44       // challenge.
     45       solve_expiration: Timestamp;
     46 
     47       // What is the earliest time at which the client
     48       // may request a new challenge to be transmitted?
     49       earliest_retransmission: Timestamp;
     50     }