From b4e641db6d18897018f198834e731574b2770084 Mon Sep 17 00:00:00 2001 From: MS Date: Mon, 18 May 2020 10:56:59 +0200 Subject: update API --- libeufin/api-sandbox.rst | 196 +++++++---------------------------------------- 1 file changed, 28 insertions(+), 168 deletions(-) diff --git a/libeufin/api-sandbox.rst b/libeufin/api-sandbox.rst index ee298d85..015b8d59 100644 --- a/libeufin/api-sandbox.rst +++ b/libeufin/api-sandbox.rst @@ -1,189 +1,49 @@ + Sandbox API ########### -Entities -======== - -Bank Account - ... - -EBICS Host - -EBICS Subscriber - ... - -EBICS Partner - ... - - - HTTP API ======== +.. + Payments. -.. http:post:: /ebicsweb +.. http:post:: /admin/payments + + Adds a new payment to the book. - Submit an EBICS request to the sandbox. +.. + Host management. +.. http:post:: /admin/ebics/hosts + + Creates a new Ebics host. -.. http:post:: /admin/customers +.. http:get:: /admin/ebics/hosts + + Shows the list of all the hosts existing + in the system. - Create a new customer. A customer identifies a human that - may own multiple bank accounts. +.. + Subscriber management. - When creating a customer, one EBICS subscriber is automatically - created for the customer. +.. http:post:: /admin/ebics/subscribers - In the future, we might add an API to create multiple additional subscribers for - a customer. + Creates a new subscriber. - When creating a new customer, an ID will be assigned automatically. +.. http:get:: /admin/ebics/subscribers - .. code-block:: tsref + Shows the list of all the subscribers existing + in the system. - interface CustomerCreationRequest { - // human-readable name for the customer - name: string; - } +.. http:post:: /admin/ebics/bank-accounts -.. http:get:: /admin/customers/:id + Associates a new bank account to an existing subscriber. - Get information about a customer. +.. + Main EBICS service. - .. ts:def:: CustomerInfo +.. http:post:: /ebicsweb - interface CustomerInfo { - ebicsInfo?: CustomerEbicsInfo; - finTsInfo?: CustomerFinTsInfo; - } - - .. ts:def:: CustomerEbicsInfo - - interface CustomerEbicsInfo { - ebicsHostId: string; - ebicsParterId: string; - ebicsUserId: string; - - // Info for the customer's "main subscriber" - subscriberInitializationState: "NEW" | "PARTIALLY_INITIALIZED_INI" | "PARTIALLY_INITIALIZED_HIA" | "READY" | "INITIALIZED"; - } - - .. ts:def:: CustomerFinTsInfo - - // TODO - -.. http:post:: /admin/customers/:id/ebics/keyletter - - Accept the information from the customer's ("virtual") INI-Letter and HIA-Letter - and change the key's state as required. - - .. code-block:: tsref - - interface KeyLetterRequest { - - ini: { - // The user ID that participates in a EBICS subscriber. - userId: string; - - // The customer ID specific to the bank (therefore not - // participating in a EBICS subscriber). - customerId: string; - - // Human name of the user - name: string; - - // As per specification, this value is: - // "Date of processing of the corresponding EBICS order". DD.MM.YYYY format. - date: string; - - // As per specification, this value is: - // "Time of processing of the corresponding EBICS order". HH:MM:SS format. - time: string; - - // Identification token of the bank. Not required to obey to any particular standard. - recipient: string; - - // Electronic signature version. Admitted values: A005, A006. - version: string; - - // Length in bits of the key exponent. - public_exponent_length: number; - // RSA key exponent in hexadecimaml notation. - public_exponent: string; - - // Length in bits of the key modulus. - public_modulus_length: number; - // RSA key modulus in hexadecimaml notation. - public_modulus: string; - - // RSA key hash. - // - // A005, A005 versions require hash type SHA-256. - hash: string; - } - - hia: { - // The user ID that participates in a EBICS subscriber. - userId: string; - - // The customer ID specific to the bank (therefore not - // participating in a EBICS subscriber). - customerId: string; - - // Human name of the user - name: string; - - // As per specification, this value is: - // "Date of processing of the corresponding EBICS order". DD.MM.YYYY format. - date: string; - - // As per specification, this value is: - // "Time of processing of the corresponding EBICS order". HH:MM:SS format. - time: string; - - // Identification token of the bank. Not required to obey to any particular standard. - recipient: string; - - //////////////////////////////////////////////////// - // Identification and Authentication key details. // - //////////////////////////////////////////////////// - - // Identification and authentication signature version. - // Admitted value: X002. - ia_version: string; - - // length of the exponent, in bits. - ia_public_exponent_length: number; - // RSA key exponent in hexadecimaml notation. - ia_public_exponent: string; - - // length of the modulus, in bits. - ia_public_modulus_length: number; - // RSA key modulus in hexadecimaml notation. - ia_public_modulus: string; - - // SHA-256 hash of the identification and authentication key. - ia_hash: string; - - ///////////////////////////// - // Encryption key details. // - ///////////////////////////// - - // Encryption version. Admitted value: E002. - enc_version: string; - - // length of the exponent, in bits. - enc_public_exponent_length: number; - // RSA key exponent in hexadecimaml notation. - enc_public_exponent: string; - - // length of the modulus, in bits. - enc_public_modulus_length: number; - // RSA key modulus in hexadecimaml notation. - enc_public_modulus: string; - - // SHA-256 hash of the encryption key. - enc_hash: string; - } - } + Serves all the Ebics requests. -- cgit v1.2.3