api-ebisync.rst (3500B)
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 RESTful 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 * Nothing depends on the ebisync API at this point. 30 31 **Version history:** 32 33 * ``v0``: Initial version. 34 35 **Upcoming versions:** 36 37 * None anticipated. 38 39 **Ideas for future version:** 40 41 * ``vXXX``: marker for features not yet targeted for release 42 43 44 45 Introduction 46 ------------ 47 48 LibEuFin EbiSync API. 49 50 51 Config 52 ------ 53 54 .. http:get:: /config 55 56 Return the protocol version and configuration information about the bank. 57 This specification corresponds to ``current`` protocol being version **v0**. 58 59 **Response:** 60 61 :http:statuscode:`200 OK`: 62 Response is a `Config`. 63 64 **Details:** 65 66 .. ts:def:: Config 67 68 interface Config { 69 // Name of the API. 70 name: "taler-ebisync"; 71 72 // libtool-style representation of the Bank protocol version, see 73 // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning 74 // The format is "current:revision:age". 75 version: string; 76 77 // URN of the implementation (needed to interpret 'revision' in version). 78 implementation: string; 79 80 // SPA display version to be used in user interfaces. 81 spa_version: string; 82 } 83 84 Web UI 85 ------ 86 87 The web UI served under ``/``. 88 89 Submit 90 ------ 91 92 .. http:get:: /submit 93 94 Obtains a list of the orders that can be used. 95 96 **Response:** 97 98 :http:statuscode:`200 OK`: 99 The server responds with a `ListSubmitOrders` object. 100 :http:statuscode:`401 Unauthorized`: 101 Invalid or missing credentials. 102 :http:statuscode:`403 Forbidden`: 103 Missing rights. 104 105 **Details:** 106 107 .. ts:def:: ListSubmitOrders 108 109 interface ListSubmitOrders { 110 orders: SubmitOrder[]; 111 } 112 113 .. ts:def:: SubmitOrder 114 115 interface SubmitOrder { 116 // EBICS order id to uniquely identify this order 117 id: string; 118 119 // EBICS order description provided by the EBICS server 120 description: string; 121 } 122 123 .. http:post:: /submit 124 125 Submit an file to the EBICS server using a chosen order. 126 127 **Request:** 128 129 :formparam file: The file to submit. 130 :formparam order: The is of the EBICS order to use. 131 132 **Response:** 133 134 :http:statuscode:`200 OK`: 135 Response is a `SubmitResponse`. 136 :http:statuscode:`400 Bad request`: 137 Input data was invalid. 138 :http:statuscode:`401 Unauthorized`: 139 Invalid or missing credentials. 140 :http:statuscode:`403 Forbidden`: 141 Missing rights. 142 :http:statuscode:`409 Conflict`: 143 EBICS server validation error. 144 :http:statuscode:`502 Bad Gateway`: 145 EBICS server connection error. 146 147 **Details:** 148 149 .. ts:def:: SubmitResponse 150 151 interface SubmitResponse { 152 // EBICS upload order ID 153 order: string; 154 }