Contents

POST /management/global-fees#

Provides global fee configuration for a timeframe.

Request:

The request must be a GlobalFeesRequest message.

Response:

204 No content:

The configuration update has been processed successfully. The body is empty.

403 Forbidden:

The signature is invalid. Returned with an error code of TALER_EC_EXCHANGE_MANAGEMENT_GLOBAL_FEE_SIGNATURE_INVALID.

409 Conflict:

The exchange has previously received a conflicting configuration message. Returned with an error code of TALER_EC_EXCHANGE_MANAGEMENT_GLOBAL_FEE_MISMATCH.

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 error. This response comes with a standard ErrorDetail response. Possible error codes include TALER_EC_GENERIC_DB_FETCH_FAILED or TALER_EC_GENERIC_DB_STORE_FAILED.

Details:

interface GlobalFeesRequest {

  // Signature of TALER_GlobalFeesPS.
  master_sig: EddsaSignature;

  // What date (inclusive) does these fees go into effect?
  fee_start: Timestamp;

  // What date (exclusive) does this fees stop going into effect?
  fee_end: Timestamp;

  // Account history fee, charged when a user wants to
  // obtain a reserve/account history.
  history_fee: Amount;

  // Annual fee charged for having an open account at the
  // exchange.  Charged to the account.  If the account
  // balance is insufficient to cover this fee, the account
  // is automatically deleted/closed. (Note that the exchange
  // will keep the account history around for longer for
  // regulatory reasons.)
  account_fee: Amount;

  // Purse fee, charged only if a purse is abandoned
  // and was not covered by the account limit.
  purse_fee: Amount;

  // How long will the exchange preserve the account history?
  // After an account was deleted/closed, the exchange will
  // retain the account history for legal reasons until this time.
  history_expiration: RelativeTime;

  // Non-negative number of concurrent purses that any
  // account holder is allowed to create without having
  // to pay the purse_fee.
  purse_account_limit: Integer;

  // How long does an exchange keep a purse around after a purse
  // has expired (or been successfully merged)?  A 'GET' request
  // for a purse will succeed until the purse expiration time
  // plus this value.
  purse_timeout: RelativeTime;

}