Contents

GET /config#

Return the protocol version and currency supported by this merchant backend. This specification corresponds to current protocol being version v24.

Response:

200 OK:

The body is a MerchantVersionResponse.

Details:

interface MerchantVersionResponse {
  // libtool-style representation of the Merchant protocol version, see
  // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning
  // The format is "current:revision:age".
  version: string;

  // Name of the protocol.
  name: "taler-merchant";

  // URN of the implementation (needed to interpret 'revision' in version).
  // @since **v8**, may become mandatory in the future.
  implementation?: string;

  // Default (!) currency supported by this backend.
  // This is the currency that the backend should
  // suggest by default to the user when entering
  // amounts. See currencies for a list of
  // supported currencies and how to render them.
  currency: string;

  // Which Persona should be used by default by new clients in the SPA.
  // Can be changed locally per browers under "Personalization".
  // Possible values include "expert", "offline-vending-machine",
  // "point-of-sale", "digital-publishing", "e-commerce" and "developer".
  // @since **v23**.
  default_persona: string;

  // How services should render currencies supported
  // by this backend.  Maps
  // currency codes (e.g. "EUR" or "KUDOS") to
  // the respective currency specification.
  // All currencies in this map are supported by
  // the backend.  Note that the actual currency
  // specifications are a *hint* for applications
  // that would like *advice* on how to render amounts.
  // Applications *may* ignore the currency specification
  // if they know how to render currencies that they are
  // used with.
  currencies: { currency : CurrencySpecification};

  // Maps available report generator configuration section names
  // to descriptions of the respective report generator.
  // Since **v25**.
  report_generators: { section_name : string};

  // Posix regular expression for allowed phone numbers;
  // applies when creating or patching an instance.
  // Optional, can be NULL for no restrictions.
  // Since **v26**.
  phone_regex?: string;

  // Array of exchanges trusted by the merchant.
  // @since **v6**.
  exchanges: ExchangeConfigInfo[];

  // Set when the merchant supports
  // self-provisioning instances.
  // Since protocol **v21**
  have_self_provisioning: boolean;

  // True if this merchant backend supports the Donau
  // extension and can thus issue donation receipts.
  // Should primarily be used to control the SPA's CRUD
  // functionality for Donau.
  // @since **v21**
  have_donau: boolean;

  // Tan channels that are required
  // to be confirmed for an instance to
  // be useable.
  // @since **v21**
  mandatory_tan_channels?: TanChannel[];

  // Space-separated list of enabled payment target types.
  // Useful if the SPA should not show allow adding other
  // types of bank accounts. "*" is used to represent no
  // restriction.
  // @since **v22**
  payment_target_types: string;

  // Regular expression representing further restrictions
  // on allowed payment targets.  Any "payto://"-URI supplied
  // for a bank account must match the given regular expression.
  // For example, "payto://iban/CH.*" would restrict the system
  // to only Swiss bank accounts.
  // Optional, no restrictions are imposed if the field is
  // absent.
  // @since **v22**
  // CAUTION: Likely to be removed/deprecated,
  // as we'll want an array of restrictions with the
  // same format as the exchange uses, as this allows
  // proper i18n and spec/code reuse.
  payment_target_regex? string;

  // Default payment delay for new instances.
  // This is the default to use for new instances, see the instance value for
  // the instance-specific default.
  // A value of "forever" is not allowed.
  // @since **v22**
  default_pay_delay: RelativeTime;

  // If the frontend does NOT specify a refund deadline, how long should
  // refunds be allowed by default?
  // This is the default to use for new instances, see the instance value for
  // the instance-specific default.
  // A value of "forever" is not allowed.
  // @since **v22**
  default_refund_delay: RelativeTime;

  // Default wire transfer delay for new instances.
  // This is the default to use for new instances, see the instance value for
  // the instance-specific default.
  // A value of "forever" is not allowed.
  // @since **v22**
  default_wire_transfer_delay: RelativeTime;

  // Default interval to which wire deadlines computed by
  // adding the wire_transfer_delay on top of the refund
  // deadline should be rounded up to.
  // @since **v23**
  default_wire_transfer_rounding_interval: RoundingInterval;
}
enum TanChannel {
  SMS = "sms",
  EMAIL = "email"
}
enum RoundingInterval {
   NONE = "NONE",
   SECOND = "SECOND",
   MINUTE = "MINUTE",
   HOUR = "HOUR",
   DAY = "DAY",
   WEEK = "WEEK",
   MONTH = "MONTH",
   QUARTER = "QUARTER",
   YEAR = "YEAR"
 }
interface ExchangeConfigInfo {

  // Base URL of the exchange REST API.
  base_url: string;

  // Currency for which the merchant is configured
  // to trust the exchange.
  // May not be the one the exchange actually uses,
  // but is the only one we would trust this exchange for.
  currency: string;

  // Offline master public key of the exchange. The
  // /keys data must be signed with this public
  // key for us to trust it.
  master_pub: EddsaPublicKey;
}