Contents

POST /management/wire#

This request will be used to enable a wire method (exchange bank account).

Request:

The request must be a WireSetupRequest.

Response:

204 No content:

The wire method was successfully enabled.

400 Bad Request:

The payto URI or another parameter is malformed. This response comes with a standard ErrorDetail response with a code of TALER_EC_GENERIC_PAYTO_URI_MALFORMED or TALER_EC_GENERIC_PARAMETER_MALFORMED.

403 Forbidden:

A master signature is invalid. Return with error codes of: - TALER_EC_EXCHANGE_MANAGEMENT_WIRE_ADD_SIGNATURE_INVALID - TALER_EC_EXCHANGE_MANAGEMENT_WIRE_DETAILS_SIGNATURE_INVALID

409 Conflict:

The exchange has a more recent request related to this wire method (replay detected). Returned with an error code of TALER_EC_EXCHANGE_MANAGEMENT_WIRE_MORE_RECENT_PRESENT.

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 WireSetupRequest {

  // Full payto:// URL identifying the account and wire method
  payto_uri: string;

  // Signature using the exchange's offline key
  // over a TALER_MasterWireDetailsPS
  // with purpose TALER_SIGNATURE_MASTER_WIRE_DETAILS.
  master_sig_wire: EddsaSignature;

  // Signature using the exchange's offline key over a
  // TALER_MasterAddWirePS
  // with purpose TALER_SIGNATURE_MASTER_WIRE_ADD.
  master_sig_add: EddsaSignature;

  // When does the wire method become active?
  // Should be the time when the signature was created,
  // using the (monotonic!) local time of the system
  // with the offline master public key. Note that
  // even if the time is in the future, the wire method will
  // become active immediately! Used ONLY to detect replay attacks.
  validity_start: Timestamp;

  // Base URL of a conversion service.
  // Only given if available.
  conversion_url?: string;

  // Base URL of a open banking gateway service.
  // Only given if available.
  // @since protocol **v34**.
  open_banking_gateway?: string;

  // Base URL of a wire transfer gateway service.
  // Only given if available.
  // @since protocol **v34**.
  wire_transfer_gateway?: string;

  // Restrictions imposed on crediting the account.
  credit_restrictions: AccountRestriction[];

  // Restrictions imposed on debiting the account.
  debit_restrictions: AccountRestriction[];

  // Display label wallets should use to show this
  // bank account.
  // @since protocol **v19**.
  bank_label?: string;

  // *Signed* integer with the display priority for
  // this bank account.
  // @since protocol **v19**.
  priority?: Integer;

}