taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

api-ebisync.rst (3116B)


      1 ..
      2   This file is part of GNU TALER.
      3 
      4   Copyright (C) 2025 Taler Systems SA
      5 
      6   TALER is free software; you can redistribute it and/or modify it under the
      7   terms of the GNU Affero General Public License as published by the Free Software
      8   Foundation; either version 2.1, or (at your option) any later version.
      9 
     10   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
     11   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more details.
     13 
     14   You should have received a copy of the GNU Affero General Public License along with
     15   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
     16 
     17 =================
     18 Taler EbiSync API
     19 =================
     20 
     21 .. contents:: Table of Contents
     22   :local:
     23 
     24 Version History
     25 ---------------
     26 
     27 The current protocol version is ``v0``.
     28 
     29 Introduction
     30 ------------
     31 
     32 LibEuFin EbiSync API.
     33 
     34 
     35 Config
     36 ------
     37 
     38 .. http:get:: /config
     39 
     40   Return the protocol version and configuration information about the bank.
     41   This specification corresponds to ``current`` protocol being version **v11**.
     42 
     43   **Response:**
     44 
     45   :http:statuscode:`200 OK`:
     46     Response is a `Config`.
     47 
     48   **Details:**
     49 
     50   .. ts:def:: Config
     51 
     52     interface Config {
     53       // Name of the API.
     54       name: "taler-ebisync";
     55 
     56       // libtool-style representation of the Bank protocol version, see
     57       // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning
     58       // The format is "current:revision:age".
     59       version: string;
     60 
     61       // SPA display version to be used in user interfaces.
     62       spa_version: string;
     63     }
     64 
     65 Web UI
     66 ------
     67 
     68 The web UI served under ``/``.
     69 
     70 Submit
     71 ------
     72 
     73 .. http:get:: /submit
     74 
     75   Obtains a list of the orders that can be used.
     76 
     77   **Response:**
     78 
     79   :http:statuscode:`200 OK`:
     80     The server responds with a `ListSubmitOrders` object.
     81   :http:statuscode:`401 Unauthorized`:
     82     Invalid or missing credentials.
     83   :http:statuscode:`403 Forbidden`:
     84     Missing rights.
     85 
     86   **Details:**
     87 
     88   .. ts:def:: ListSubmitOrders
     89 
     90     interface ListSubmitOrders {
     91       orders: SubmitOrder[];
     92     }
     93 
     94   .. ts:def:: SubmitOrder
     95 
     96     interface SubmitOrder {
     97       // EBICS order id to uniquely identify this order
     98       id: string;
     99 
    100       // EBICS order description provided by the EBICS server
    101       description: string;
    102     }
    103 
    104 .. http:post:: /submit
    105 
    106   Submit an file to the EBICS server using a chosen order.
    107 
    108   **Request:**
    109 
    110   :formparam file: The file to submit.
    111   :formparam order: The is of the EBICS order to use.
    112 
    113   **Response:**
    114 
    115   :http:statuscode:`200 OK`:
    116     Response is a `SubmitResponse`.
    117   :http:statuscode:`400 Bad request`:
    118     Input data was invalid.
    119   :http:statuscode:`401 Unauthorized`:
    120     Invalid or missing credentials.
    121   :http:statuscode:`403 Forbidden`:
    122     Missing rights.
    123   :http:statuscode:`409 Conflict`:
    124     EBICS server validation error.
    125   :http:statuscode:`502 Bad Gateway`:
    126     EBICS server connection error.
    127 
    128   **Details:**
    129 
    130   .. ts:def:: SubmitResponse
    131 
    132     interface SubmitResponse {
    133       // EBICS upload order ID
    134       order: string;
    135     }