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 }