taler-docs

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

post-orders-ORDER_ID-unclaim.rst (2075B)


      1 .. http:post:: [/instances/$INSTANCE]/orders/$ORDER_ID/unclaim
      2 
      3   Wallet releases ownership over an order. By unclaiming an
      4   order, it becomes possible for another wallet to claim it.
      5   This is useful if a user abandons buying the order with one
      6   wallet but then wants to pay with a different wallet.
      7 
      8   @since protocol **v26**.
      9 
     10   **Request:**
     11 
     12   The request must be an `UnclaimRequest`.
     13 
     14   **Response:**
     15 
     16   :http:statuscode:`204 No content`:
     17     The client has successfully unclaimed the order.
     18   :http:statuscode:`400 Bad request`:
     19     The request is malformed. Returned with
     20     ``TALER_EC_GENERIC_PARAMETER_MALFORMED``.
     21   :http:statuscode:`403 Forbidden`:
     22     The provided unclaim signature is invalid.
     23     Returned with ``TALER_EC_MERCHANT_POST_ORDERS_UNCLAIM_SIGNATURE_INVALID``.
     24   :http:statuscode:`404 Not found`:
     25     The backend is unaware of the instance or claimed order.
     26 
     27     Applicable error codes:
     28     * ``TALER_EC_MERCHANT_GENERIC_INSTANCE_UNKNOWN``
     29     * ``TALER_EC_MERCHANT_POST_ORDERS_ID_CLAIM_NOT_FOUND``
     30 
     31     The latter includes cases where the order was already
     32     paid as well as cases where the order does not exist or
     33     was simply not claimed.
     34 
     35   :http:statuscode:`413 Request entity too large`:
     36     The uploaded body is to long, it exceeds the size limit.
     37     Returned with an error code of
     38     ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``.
     39   :http:statuscode:`500 Internal Server Error`:
     40     The server experienced an internal failure.
     41     Returned with ``TALER_EC_GENERIC_DB_COMMIT_FAILED`` or
     42     ``TALER_EC_GENERIC_DB_SOFT_FAILURE``.
     43 
     44 
     45   **Details:**
     46 
     47   .. ts:def:: UnclaimRequest
     48 
     49     interface UnclaimRequest {
     50       // Signature using the key of the claim nonce
     51       // to affirm unclaiming of the order.
     52       unclaim_sig: EddsaSignature;
     53 
     54       // Nonce to identify the wallet that claimed the order,
     55       // public key matching ``unclaim_sig``.
     56       nonce: EddsaPublicKey;
     57 
     58       // Hash of the order's contract terms, used
     59       // to enable signature verification without
     60       // database access.
     61       h_contract: HashCode;
     62     }