Contents

POST [/instances/$INSTANCE]/orders/$ORDER_ID/unclaim#

Wallet releases ownership over an order. By unclaiming an order, it becomes possible for another wallet to claim it. This is useful if a user abandons buying the order with one wallet but then wants to pay with a different wallet.

@since protocol v26.

Request:

The request must be an UnclaimRequest.

Response:

204 No content:

The client has successfully unclaimed the order.

400 Bad request:

The request is malformed. Returned with TALER_EC_GENERIC_PARAMETER_MALFORMED.

403 Forbidden:

The provided unclaim signature is invalid. Returned with TALER_EC_MERCHANT_POST_ORDERS_UNCLAIM_SIGNATURE_INVALID.

404 Not found:

The backend is unaware of the instance or claimed order.

Applicable error codes: * TALER_EC_MERCHANT_GENERIC_INSTANCE_UNKNOWN * TALER_EC_MERCHANT_POST_ORDERS_ID_CLAIM_NOT_FOUND

The latter includes cases where the order was already paid as well as cases where the order does not exist or was simply not claimed.

413 Request entity too large:

The uploaded body is to long, it exceeds the size limit. Returned with an error code of TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT.

500 Internal Server Error:

The server experienced an internal failure. Returned with TALER_EC_GENERIC_DB_COMMIT_FAILED or TALER_EC_GENERIC_DB_SOFT_FAILURE.

Details:

interface UnclaimRequest {
  // Signature using the key of the claim nonce
  // to affirm unclaiming of the order.
  unclaim_sig: EddsaSignature;

  // Nonce to identify the wallet that claimed the order,
  // public key matching unclaim_sig.
  nonce: EddsaPublicKey;

  // Hash of the order's contract terms, used
  // to enable signature verification without
  // database access.
  h_contract: HashCode;
}