commit 66169fa01f2886ca6b70e8be4214557880d9c6b5 parent 9d48c8f14f82a558585665589098b9d7577ac3e3 Author: Christian Grothoff <christian@grothoff.org> Date: Tue, 4 Aug 2026 22:39:49 +0200 distinguish between generic strings and http(s)://-prefixed WebURLs by type Diffstat:
51 files changed, 116 insertions(+), 79 deletions(-)
diff --git a/core/api-common.rst b/core/api-common.rst @@ -313,6 +313,37 @@ to be a string: identifiers that may contain arbitrary characters (and thus require percent-encoding when put into a URL) are documented as plain ``string``. +.. _weburl: + +Web URLs +^^^^^^^^ + +Many fields point at another service or at a Web resource, such as the base +URL of an exchange, the URL of a webhook or the fulfillment URL of an order. +We call such a value a *Web URL*. + +.. ts:def:: WebURL + + // Non-empty string with an absolute URL that begins with either + // "http://" or "https://" (the scheme is matched + // case-insensitively). A Web URL must only use ASCII alphanumeric + // characters ("A-Z", "a-z", "0-9") and the punctuation characters + // "/", ":", ";", "&", "?", "-", ".", ",", "=", "_", "~", "%", "+" + // and "#". Any other character (in particular spaces and all + // non-ASCII characters) must be percent-encoded. + // Individual endpoints may impose additional restrictions on the + // Web URLs they accept; those are documented with the respective + // endpoint or field. + type WebURL = string; + +Fields that are documented as a *base URL* are Web URLs that additionally +must end with a slash (``/``), so that the name of an endpoint can simply be +appended to obtain the URL of that endpoint. + +Note that URIs using other schemes are *not* Web URLs. In particular, +``payto://``-URIs (see :ref:`below <payto>`) and the ``taler://``-URIs handed +to wallets have their own types or are documented as plain ``string``. + .. _payto: diff --git a/core/api-merchant.rst b/core/api-merchant.rst @@ -1400,7 +1400,7 @@ and basically present (or optional) all the time. // available). Returned also at the public order endpoint // for people other than the actual buyer (hence public, // in case order IDs are guessable). - public_reorder_url?: string; + public_reorder_url?: WebURL; // URL that will show that the order was successful after // it has been paid for. Optional, but either ``fulfillment_url`` @@ -1423,6 +1423,9 @@ and basically present (or optional) all the time. // order ID is generated server-side and needs to be // in the URL). Note that this placeholder can only be used once. // Front-ends may use other means to generate a unique fulfillment URL. + // Because of that placeholder, the value given here is merely a + // string and not yet a `WebURL`; only after the substitution has + // been performed is the result a `WebURL`. fulfillment_url?: string; // Message shown to the customer after paying for the order. @@ -1837,7 +1840,7 @@ and is thus not yet buyer-specific. // Base URL of the (public!) merchant backend API. // Must be an absolute URL that ends with a slash. - merchant_base_url: string; + merchant_base_url: WebURL; // More info about the merchant, see below. merchant: Merchant; @@ -1958,7 +1961,7 @@ and is thus not yet buyer-specific. // Array of base URLs of donation authorities that can be // used to issue the tax receipts. The client must select one. - donau_urls: string[]; + donau_urls: WebURL[]; // Total amount that will be on the tax receipt. amount: Amount; @@ -2062,8 +2065,8 @@ It has the following structure: // Email address for contacting the merchant. email?: string; - // Label for a location with the business address of the merchant. - website?: string; + // Merchant public website. + website?: WebURL; // An optional base64-encoded product image. logo?: ImageDataUrl; @@ -2125,7 +2128,7 @@ listing it in the exchanges array. interface Exchange { // The exchange's base URL. - url: string; + url: WebURL; // How much would the merchant like to use this exchange. // The wallet should use a suitable exchange with high diff --git a/core/bank-integration/get-withdrawal-operation-WITHDRAWAL_ID.rst b/core/bank-integration/get-withdrawal-operation-WITHDRAWAL_ID.rst @@ -73,19 +73,19 @@ // Base URL of the suggested exchange. The bank may have // neither a suggestion nor a requirement for the exchange. // This value is typically set in the bank's configuration. - suggested_exchange?: string; + suggested_exchange?: WebURL; // Base URL of an exchange that must be used. Optional, // not given *unless* a particular exchange is mandatory. // This value is typically set in the bank's configuration. // @since **v4** - required_exchange?: string; + required_exchange?: WebURL; // URL that the user needs to navigate to in order to // complete some final confirmation (e.g. 2FA). // Only applicable when ``status`` is ``selected`` or ``pending``. // It may contain the withdrawal operation id. - confirm_transfer_url?: string; + confirm_transfer_url?: WebURL; // Wire transfer types supported by the bank. wire_types: string[]; diff --git a/core/bank-integration/post-withdrawal-operation-WITHDRAWAL_ID.rst b/core/bank-integration/post-withdrawal-operation-WITHDRAWAL_ID.rst @@ -58,7 +58,7 @@ // // Only applicable when ``status`` is ``selected`` or ``pending``. // It may contain withdrawal operation id - confirm_transfer_url?: string; + confirm_transfer_url?: WebURL; // @deprecated since **v1**, use ``status`` instead // The transfer has been confirmed and registered by the bank. diff --git a/core/bank-wire/get-history-incoming.rst b/core/bank-wire/get-history-incoming.rst @@ -149,7 +149,7 @@ debit_account: string; // Base URL of the exchange that originated the wad. - origin_exchange_url: string; + origin_exchange_url: WebURL; // The reserve public key extracted from the transaction details. wad_id: WadId; diff --git a/core/bank-wire/get-history-outgoing.rst b/core/bank-wire/get-history-outgoing.rst @@ -69,7 +69,7 @@ wtid: ShortHashCode; // Base URL of the exchange. - exchange_base_url: string; + exchange_base_url: WebURL; // Optional additional metadata. // @since **v5** diff --git a/core/bank-wire/get-transfers-ROW_ID.rst b/core/bank-wire/get-transfers-ROW_ID.rst @@ -35,7 +35,7 @@ // Base URL of the exchange. Shall be included by the bank gateway // in the appropriate section of the wire transfer details. - exchange_base_url: string; + exchange_base_url: WebURL; // Optional additional metadata to be stored in the transaction. // @since **v5** diff --git a/core/bank-wire/post-transfer.rst b/core/bank-wire/post-transfer.rst @@ -25,7 +25,7 @@ // Base URL of the exchange. Shall be included by the bank gateway // in the appropriate section of the wire transfer details. - exchange_base_url: string; + exchange_base_url: WebURL; // Optional additional metadata to be stored in the transaction. // Must match [a-zA-Z0-9-.:]{1, 40} diff --git a/core/challenger/post-challenge-NONCE.rst b/core/challenger/post-challenge-NONCE.rst @@ -65,7 +65,7 @@ type: "completed"; // challenge is completed, use should redirect here - redirect_url: string; + redirect_url: WebURL; } .. ts:def:: ChallengeCreateResponse diff --git a/core/corebank/get-config.rst b/core/corebank/get-config.rst @@ -29,7 +29,7 @@ // Advertised base URL to use when you sharing an URL with another // program. // @since **v4**. - base_url?: string; + base_url?: WebURL; // If 'true' the server provides local currency conversion support // If 'false' some parts of the API are not supported and return 501 diff --git a/core/donau/get-charity-CHARITY_ID.rst b/core/donau/get-charity-CHARITY_ID.rst @@ -39,7 +39,7 @@ interface Charity { charity_pub: EddsaPublicKey; name: string; - url: string; + url: WebURL; max_per_year: Amount; receipts_to_date: Amount; current_year: Integer; diff --git a/core/donau/get-keys.rst b/core/donau/get-keys.rst @@ -36,7 +36,7 @@ legal_domain: string; // The Donau's base URL. - base_url: string; + base_url: WebURL; // The Donau's currency. currency: string; diff --git a/core/donau/post-charities.rst b/core/donau/post-charities.rst @@ -34,7 +34,7 @@ charity_pub: EddsaPublicKey; // Canonical URL that should be presented to donors. - charity_url: string; + charity_url: WebURL; // Human-readable display name of the charity. charity_name: string; diff --git a/core/exchange/get-coins-COIN_PUB-history.rst b/core/exchange/get-coins-COIN_PUB-history.rst @@ -439,7 +439,7 @@ amount: Amount; // Base URL of the exchange the purse lives at. - exchange_base_url: string; + exchange_base_url: WebURL; // The hash of the age-commitment for the coin. Only present // if the denomination has support for age restriction. diff --git a/core/exchange/get-config.rst b/core/exchange/get-config.rst @@ -38,7 +38,7 @@ // Shopping URL where users may find shops that accept // digital cash issued by this exchange. // @since protocol **v21**. - shopping_url?: string; + shopping_url?: WebURL; // How wallets should render this currency. currency_specification: CurrencySpecification; diff --git a/core/exchange/get-keys.rst b/core/exchange/get-keys.rst @@ -42,7 +42,7 @@ version: string; // The exchange's base URL. - base_url: string; + base_url: WebURL; // The exchange's currency or asset unit. currency: string; @@ -50,7 +50,7 @@ // Shopping URL where users may find shops that accept // digital cash issued by this exchange. // @since protocol **v21**. - shopping_url?: string; + shopping_url?: WebURL; // Instructs wallets to use certain bank-specific // language (for buttons) and/or other UI/UX customization @@ -218,19 +218,19 @@ // URI to convert amounts from or to the currency used by // this wire account of the exchange. Missing if no // conversion is applicable. - conversion_url?: string; + conversion_url?: WebURL; // Open banking gateway base URL where wallets can // initiate wire transfers to withdraw // digital cash from this exchange. // @since protocol **v34**. - open_banking_gateway?: string; + open_banking_gateway?: WebURL; // Wire transfer gateway base URL where wallets and merchants can // request (short) wire transfer subjects to wire funds to this // exchange without having to encode the full public key. // @since protocol **v34**. - prepared_transfer_url?: string; + prepared_transfer_url?: WebURL; // Restrictions that apply to bank accounts that would send // funds to the exchange (crediting this exchange bank account). @@ -561,7 +561,7 @@ auditor_pub: EddsaPublicKey; // The auditor's URL. - auditor_url: string; + auditor_url: WebURL; // The auditor's name (for humans). auditor_name: string; @@ -630,7 +630,7 @@ interface ExchangePartnerListEntry { // Base URL of the partner exchange. - partner_base_url: string; + partner_base_url: WebURL; // Public master key of the partner exchange. partner_master_pub: EddsaPublicKey; diff --git a/core/exchange/post-kyc-start-ID.rst b/core/exchange/post-kyc-start-ID.rst @@ -48,7 +48,7 @@ interface KycProcessStartInformation { // URL to open. - redirect_url: string; + redirect_url: WebURL; } .. note:: diff --git a/core/exchange/post-management-auditors.rst b/core/exchange/post-management-auditors.rst @@ -32,7 +32,7 @@ interface AuditorSetupMessage { // Base URL of the auditor. - auditor_url: string; + auditor_url: WebURL; // Human-readable name of the auditor. auditor_name: string; diff --git a/core/exchange/post-management-partners.rst b/core/exchange/post-management-partners.rst @@ -35,7 +35,7 @@ interface ExchangePartnerSetupRequest { // Base URL of the partner exchange - partner_base_url: string; + partner_base_url: WebURL; // Master (offline) public key of the partner exchange. partner_pub: EddsaPublicKey; diff --git a/core/exchange/post-management-wire.rst b/core/exchange/post-management-wire.rst @@ -64,17 +64,17 @@ // Base URL of a conversion service. // Only given if available. - conversion_url?: string; + conversion_url?: WebURL; // Base URL of a open banking gateway service. // Only given if available. // @since protocol **v34**. - open_banking_gateway?: string; + open_banking_gateway?: WebURL; // Base URL of a wire transfer gateway service. // Only given if available. // @since protocol **v34**. - prepared_transfer_url?: string; + prepared_transfer_url?: WebURL; // Restrictions imposed on crediting the account. credit_restrictions: AccountRestriction[]; diff --git a/core/exchange/post-purses-PURSE_PUB-create.rst b/core/exchange/post-purses-PURSE_PUB-create.rst @@ -210,7 +210,7 @@ // Target exchange URL for the purse. Not present for the // same exchange. - partner_url?: string; + partner_url?: WebURL; // Amount to be contributed to the purse by this coin. amount: Amount; diff --git a/core/exchange/post-purses-PURSE_PUB-merge.rst b/core/exchange/post-purses-PURSE_PUB-merge.rst @@ -123,7 +123,7 @@ // Base URL of the exchange receiving the payment, only present // if the exchange hosting the reserve is not this exchange. - partner_url?: string; + partner_url?: WebURL; // Public key of the reserve that the purse was merged into. reserve_pub: EddsaPublicKey; diff --git a/core/merchant/get-config.rst b/core/merchant/get-config.rst @@ -173,7 +173,7 @@ interface ExchangeConfigInfo { // Base URL of the exchange REST API. - base_url: string; + base_url: WebURL; // Currency for which the merchant is configured // to trust the exchange. @@ -201,7 +201,7 @@ contact_phone?: string; // Where to find support. - support_url?: string; + support_url?: WebURL; // Legal address of the operator. address?: Location; diff --git a/core/merchant/get-exchanges.rst b/core/merchant/get-exchanges.rst @@ -26,7 +26,7 @@ interface ExchangeStatusDetail { // Base URL of the exchange this is about. - exchange_url: string; + exchange_url: WebURL; // Time when the backend will download ``/keys`` next. next_download: Timestamp; diff --git a/core/merchant/get-management-instances-INSTANCE.rst b/core/merchant/get-management-instances-INSTANCE.rst @@ -47,7 +47,7 @@ phone_validated?: boolean; // Merchant public website. - website?: string; + website?: WebURL; // Merchant logo. logo?: ImageDataUrl; @@ -110,7 +110,7 @@ // URL from where the merchant can download information // about incoming wire transfers to this account. - credit_facade_url?: string; + credit_facade_url?: WebURL; // Hash over the wire details (including over the salt). h_wire: HashCode; diff --git a/core/merchant/get-management-instances.rst b/core/merchant/get-management-instances.rst @@ -33,7 +33,7 @@ name: string; // Merchant public website. - website?: string; + website?: WebURL; // Merchant logo. logo?: ImageDataUrl; diff --git a/core/merchant/get-orders-ORDER_ID.rst b/core/merchant/get-orders-ORDER_ID.rst @@ -94,7 +94,7 @@ interface StatusPaidResponse { // URL for the user to be redirected to if available. - fulfillment_url?: string; + fulfillment_url?: WebURL; // Was the payment refunded (even partially, via refund or abort)? refunded: boolean; @@ -116,7 +116,7 @@ // order might be created as this one is taken by another // customer or wallet (or repurchase detection logic may // apply). - public_reorder_url: string; + public_reorder_url: WebURL; } .. ts:def:: StatusUnpaidResponse @@ -132,7 +132,7 @@ // order's fulfillment (digital goods, tracking data for // shipping, etc.) under this URL (assuming they use the // same session that the wallet used when making the payment). - fulfillment_url?: string; + fulfillment_url?: WebURL; // Alternative order ID which was paid for already in the same session. // Only given if the same product was purchased before in the same session. diff --git a/core/merchant/get-private-accounts-H_WIRE.rst b/core/merchant/get-private-accounts-H_WIRE.rst @@ -45,7 +45,7 @@ // URL from where the merchant can download information // about incoming wire transfers to this account. - credit_facade_url?: string; + credit_facade_url?: WebURL; // true if this account is active, // false if it is historic. diff --git a/core/merchant/get-private-donau.rst b/core/merchant/get-private-donau.rst @@ -32,7 +32,7 @@ donau_instance_serial: Integer; // Base URL of the Donau service - donau_url: string; + donau_url: WebURL; // Human-readable charity name charity_name: string; diff --git a/core/merchant/get-private-incoming-ID.rst b/core/merchant/get-private-incoming-ID.rst @@ -59,7 +59,7 @@ // Base URL of the exchange that made the wire transfer. // Since protocol **v27**. - exchange_url: string; + exchange_url: WebURL; // Expected time of the execution of the wire transfer // by the exchange, according to the exchange. Used diff --git a/core/merchant/get-private-incoming.rst b/core/merchant/get-private-incoming.rst @@ -63,7 +63,7 @@ payto_uri: string; // Base URL of the exchange that made the wire transfer. - exchange_url: string; + exchange_url: WebURL; // Serial number identifying the expected transfer in the backend. // Used for filtering via ``offset``. diff --git a/core/merchant/get-private-kyc.rst b/core/merchant/get-private-kyc.rst @@ -145,7 +145,7 @@ h_wire: string; // Base URL of the exchange this is about. - exchange_url: string; + exchange_url: WebURL; // HTTP status code returned by the exchange when we asked for // information about the KYC status. diff --git a/core/merchant/get-private-orders-ORDER_ID.rst b/core/merchant/get-private-orders-ORDER_ID.rst @@ -122,7 +122,7 @@ // Status URL, can be used as a redirect target for the browser // to show the order QR code / trigger the wallet. - order_status_url: string; + order_status_url: WebURL; } .. ts:def:: CheckPaymentClaimedResponse @@ -137,7 +137,7 @@ // Status URL, can be used as a redirect target for the browser // to show the order QR code / trigger the wallet. // Since protocol **v19**. - order_status_url: string; + order_status_url: WebURL; } .. ts:def:: CheckPaymentUnpaidResponse @@ -181,11 +181,11 @@ // Fulfillment URL of an already paid order. Only given if under this // session an already paid order with a fulfillment URL exists. - already_paid_fulfillment_url?: string; + already_paid_fulfillment_url?: WebURL; // Status URL, can be used as a redirect target for the browser // to show the order QR code / trigger the wallet. - order_status_url: string; + order_status_url: WebURL; } @@ -236,7 +236,7 @@ interface TransactionWireTransfer { // Responsible exchange. - exchange_url: string; + exchange_url: WebURL; // 32-byte wire transfer identifier. wtid: Base32; diff --git a/core/merchant/get-private-transfers.rst b/core/merchant/get-private-transfers.rst @@ -56,7 +56,7 @@ payto_uri: string; // Base URL of the exchange that made the wire transfer. - exchange_url: string; + exchange_url: WebURL; // Serial number identifying the transfer in the merchant backend. // Used for filtering via ``offset``. diff --git a/core/merchant/get-private-webhooks-WEBHOOK_ID.rst b/core/merchant/get-private-webhooks-WEBHOOK_ID.rst @@ -28,7 +28,7 @@ event_type: WebhookEventType; // URL of the webhook where the customer will be redirected. - url: string; + url: WebURL; // Method used by the webhook http_method: string; diff --git a/core/merchant/patch-management-instances-INSTANCE.rst b/core/merchant/patch-management-instances-INSTANCE.rst @@ -50,7 +50,7 @@ phone_number?: string; // Merchant public website. - website?: string; + website?: WebURL; // Merchant logo. logo?: ImageDataUrl; diff --git a/core/merchant/patch-private-accounts-H_WIRE.rst b/core/merchant/patch-private-accounts-H_WIRE.rst @@ -32,7 +32,7 @@ // URL from where the merchant can download information // about incoming wire transfers to this account. - credit_facade_url?: string; + credit_facade_url?: WebURL; // Credentials to use when accessing the credit facade. // Never returned on a GET (as this may be somewhat diff --git a/core/merchant/patch-private-webhooks-WEBHOOK_ID.rst b/core/merchant/patch-private-webhooks-WEBHOOK_ID.rst @@ -33,7 +33,7 @@ event_type: WebhookEventType; // URL of the webhook where the customer will be redirected. - url: string; + url: WebURL; // Method used by the webhook http_method: string; diff --git a/core/merchant/post-management-instances.rst b/core/merchant/post-management-instances.rst @@ -65,7 +65,7 @@ phone_number?: string; // Merchant public website. - website?: string; + website?: WebURL; // Merchant logo. logo?: ImageDataUrl; diff --git a/core/merchant/post-orders-ORDER_ID-abort.rst b/core/merchant/post-orders-ORDER_ID-abort.rst @@ -93,7 +93,7 @@ coin_pub: EddsaPublicKey; // URL of the exchange this coin was withdrawn from. - exchange_url: string; + exchange_url: WebURL; } diff --git a/core/merchant/post-orders-ORDER_ID-pay.rst b/core/merchant/post-orders-ORDER_ID-pay.rst @@ -318,7 +318,7 @@ interface DonationRequestData { // Base URL of the selected Donau - url: string; + url: WebURL; // Year for which the donation receipts are expected. // Also determines which keys are used to sign the @@ -351,7 +351,7 @@ contribution: Amount; // URL of the exchange this coin was withdrawn from. - exchange_url: string; + exchange_url: WebURL; // Signature affirming the posession of the // respective private key proving that the payer @@ -439,6 +439,6 @@ // The wallet should refresh the coins from these // exchanges, but may try to pay with coins from // other exchanges. - exchange_base_urls: string[]; + exchange_base_urls: WebURL[]; } diff --git a/core/merchant/post-private-accept-tos-early.rst b/core/merchant/post-private-accept-tos-early.rst @@ -44,7 +44,7 @@ // Base URL of the exchange for which the user has // accepted the terms of service. - exchange_url: string; + exchange_url: WebURL; // ``Taler-Terms-Version`` (see the exchange's // ``/terms`` endpoint) of the terms of service diff --git a/core/merchant/post-private-accounts-H_WIRE-kycauth.rst b/core/merchant/post-private-accounts-H_WIRE-kycauth.rst @@ -41,7 +41,7 @@ // Base URL of the exchange for which KYC Auth wire // transfer instructions are requested. - exchange_url: string; + exchange_url: WebURL; } .. ts:def:: KycAuthWireTransferInstructionResponse diff --git a/core/merchant/post-private-accounts.rst b/core/merchant/post-private-accounts.rst @@ -54,7 +54,7 @@ // URL from where the merchant can download information // about incoming wire transfers to this account. - credit_facade_url?: string; + credit_facade_url?: WebURL; // Credentials to use when accessing the credit facade. // Never returned on a GET (as this may be somewhat diff --git a/core/merchant/post-private-donau.rst b/core/merchant/post-private-donau.rst @@ -14,7 +14,7 @@ interface PostDonauRequest { // Base URL of the Donau service hosting the charity - donau_url: string; + donau_url: WebURL; // Numeric charity identifier inside the Donau service charity_id: Integer; diff --git a/core/merchant/post-private-orders.rst b/core/merchant/post-private-orders.rst @@ -225,7 +225,7 @@ interface ExchangeRejectionDetail { // Base URL of the rejected exchange - exchange_url: string; + exchange_url: WebURL; // Numeric `error code <error-codes>` unique to why // this exchange was not acceptable. diff --git a/core/merchant/post-private-transfers.rst b/core/merchant/post-private-transfers.rst @@ -47,5 +47,5 @@ payto_uri: string; // Base URL of the exchange that made the wire transfer. - exchange_url: string; + exchange_url: WebURL; } diff --git a/core/merchant/post-private-webhooks.rst b/core/merchant/post-private-webhooks.rst @@ -44,7 +44,7 @@ event_type: WebhookEventType; // URL of the webhook where the customer will be redirected. - url: string; + url: WebURL; // Method used by the webhook http_method: string; diff --git a/core/merchant/post-templates-TEMPLATE_ID.rst b/core/merchant/post-templates-TEMPLATE_ID.rst @@ -131,7 +131,7 @@ // Website to which access is being sold. // Will become the fulfillment URL in the contract. - website: string; + website: WebURL; // Client Paivana ID to grant access to. // This becomes the "session_id" for session-based diff --git a/design-documents/046-mumimo-contracts.rst b/design-documents/046-mumimo-contracts.rst @@ -110,7 +110,7 @@ The contract terms v1 will have the following structure: // available). Returned also at the public order endpoint // for people other than the actual buyer (hence public, // in case order IDs are guessable). - public_reorder_url?: string; + public_reorder_url?: WebURL; // Time when this contract was generated. timestamp: Timestamp; @@ -128,7 +128,7 @@ The contract terms v1 will have the following structure: // Base URL of the (public!) merchant backend API. // Must be an absolute URL that ends with a slash. - merchant_base_url: string; + merchant_base_url: WebURL; // More info about the merchant (same as in v0). merchant: Merchant; @@ -146,6 +146,9 @@ The contract terms v1 will have the following structure: // order ID is generated server-side and needs to be // in the URL). // Note that this placeholder can only be used once. + // Because of that placeholder, the value given here is merely a + // string and not yet a `WebURL`; only after the substitution has + // been performed is the result a `WebURL`. // Either fulfillment_url or fulfillment_message must be specified. fulfillment_url?: string; @@ -253,7 +256,7 @@ The contract terms v1 will have the following structure: class: "ration"; // Base URL of the ration authority. - ration_authority_url: string; + ration_authority_url: WebURL; }; .. ts:def:: DDContractInputToken @@ -292,7 +295,7 @@ The contract terms v1 will have the following structure: // Base URL of the exchange that will issue the // coins. - exchange_url: string; + exchange_url: WebURL; }; .. ts:def:: DDContractOutputTaxReceipt @@ -302,7 +305,7 @@ The contract terms v1 will have the following structure: // Base URL of the donation authority that will // issue the tax receipt. - donau_url: string; + donau_url: WebURL; }; .. ts:def:: DDContractOutputToken diff --git a/taler-merchant-pos-terminal.rst b/taler-merchant-pos-terminal.rst @@ -96,7 +96,7 @@ The elements of the JSON file are defined as follows: interface BackendConfiguration { // The URL to the Taler Merchant Backend (including instance if applicable) - base_url: string; + base_url: WebURL; // The API key used for authentication api_key: string;