merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

account_kyc_get_status.h (3434B)


      1 /*
      2    This file is part of TALER
      3    Copyright (C) 2022, 2026 Taler Systems SA
      4 
      5    TALER is free software; you can redistribute it and/or modify it under the
      6    terms of the GNU General Public License as published by the Free Software
      7    Foundation; either version 3, or (at your option) any later version.
      8 
      9    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
     10    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     11    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12 
     13    You should have received a copy of the GNU General Public License along with
     14    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
     15  */
     16 /**
     17  * @file src/include/merchant-database/account_kyc_get_status.h
     18  * @brief implementation of the account_kyc_get_status function for Postgres
     19  * @author Christian Grothoff
     20  */
     21 #ifndef MERCHANT_DATABASE_ACCOUNT_KYC_GET_STATUS_H
     22 #define MERCHANT_DATABASE_ACCOUNT_KYC_GET_STATUS_H
     23 
     24 #include <taler/taler_util.h>
     25 #include <taler/taler_json_lib.h>
     26 #include "merchantdb_lib.h"
     27 
     28 
     29 struct TALER_MERCHANTDB_PostgresContext;
     30 /* Callback typedefs */
     31 /**
     32  * Function called from ``account_kyc_get_status``
     33  * with KYC status information for this merchant.
     34  *
     35  * @param cls closure
     36  * @param h_wire hash of the wire account
     37  * @param payto_uri payto:// URI of the merchant's bank account
     38  * @param exchange_url base URL of the exchange for which this is a status
     39  * @param last_check when did we last get an update on our KYC status from the exchange
     40  * @param kyc_ok true if we satisfied the KYC requirements
     41  * @param access_token access token for the KYC SPA, NULL if we cannot access it yet (need KYC auth wire transfer)
     42  * @param last_http_status last HTTP status from /kyc-check
     43  * @param last_ec last Taler error code from /kyc-check
     44  * @param in_aml_review true if the account is pending review
     45  * @param jlimits JSON array of applicable AccountLimits, or NULL if unknown (like defaults apply)
     46  */
     47 typedef void
     48 (*TALER_MERCHANTDB_KycCallback)(
     49   void *cls,
     50   const struct TALER_MerchantWireHashP *h_wire,
     51   struct TALER_FullPayto payto_uri,
     52   const char *exchange_url,
     53   struct GNUNET_TIME_Timestamp last_check,
     54   bool kyc_ok,
     55   const struct TALER_AccountAccessTokenP *access_token,
     56   unsigned int last_http_status,
     57   enum TALER_ErrorCode last_ec,
     58   bool in_aml_review,
     59   const json_t *jlimits);
     60 
     61 /**
     62  * Check an instance's account's KYC status. Triggers
     63  * a request to taler-merchant-kyccheck to get a
     64  * KYC status update as a side-effect!
     65  *
     66  * @param pg database context
     67  * @param merchant_id merchant backend instance ID
     68  * @param h_wire hash of the wire account to check,
     69  *        NULL to check all accounts of the merchant
     70  * @param exchange_url base URL of the exchange to check,
     71  *        NULL to check all exchanges
     72  * @param kyc_cb KYC status callback to invoke
     73  * @param kyc_cb_cls closure for @a kyc_cb
     74  * @return database result code
     75  */
     76 enum GNUNET_DB_QueryStatus
     77 TALER_MERCHANTDB_account_kyc_get_status (struct TALER_MERCHANTDB_PostgresContext *pg,
     78                                          const char *merchant_id,
     79                                          const struct TALER_MerchantWireHashP *h_wire,
     80                                          const char *exchange_url,
     81                                          TALER_MERCHANTDB_KycCallback kyc_cb,
     82                                          void *kyc_cb_cls);
     83 
     84 #endif