Contents

POST [/instances/$INSTANCE]/private/transfers#

Inform the backend over an incoming wire transfer. The backend should inquire about the details with the exchange and mark the respective orders as wired. Note that the request will fail if the WTID is not unique (which should be guaranteed by a correct exchange). This request is idempotent and should also be used to merely re-fetch the transfer information from the merchant’s database (assuming we got a non-error response from the exchange before).

Required permission: transfers-write

Request:

The request must provide transfer information.

Response:

204 No content:

The wire transfer is now confirmed at the merchant.

404 Not found:

The instance or account are unknown to the exchange. Returned with TALER_EC_MERCHANT_GENERIC_INSTANCE_UNKNOWN or TALER_EC_MERCHANT_GENERIC_ACCOUNT_UNKNOWN.

400 Bad Request:

The request body is malformed.

409 Conflict:

The wire transfer identifier is already known to us, but for a different amount. Returned with TALER_EC_MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_SUBMISSION.

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_STORE_FAILED.

Details:

interface TransferInformation {
  // How much was wired to the merchant (minus fees).
  credit_amount: Amount;

  // Raw wire transfer identifier identifying the wire transfer (a base32-encoded value).
  wtid: WireTransferIdentifierRawP;

  // Full payto://-URI of the bank account that received the wire transfer.
  payto_uri: string;

  // Base URL of the exchange that made the wire transfer.
  exchange_url: string;
}