exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

generate-kyc-basedb.conf (3290B)


      1 # This file is in the public domain.
      2 #
      3 # Configuration for the KYC/AML reference database used by test-kyc.sh.
      4 # It is the ordinary auditor reference configuration plus a KYC setup that
      5 # is deliberately easy to drive from a shell script: every rule that we
      6 # trigger resolves to a FORM measure, and a form can be satisfied with two
      7 # plain HTTP requests (GET /kyc-info/$TOKEN, POST /kyc-upload/$ID).
      8 @INLINE@ generate-auditor-basedb.conf
      9 
     10 [exchange]
     11 # A purse must not outlive the denominations of the coins in it, see the
     12 # comment on PURSE_EXPIRATION_LIMIT in exchange.conf.
     13 PURSE_EXPIRATION_LIMIT = 3 years
     14 ENABLE_KYC = YES
     15 
     16 
     17 # ------------------------------------------------------------------
     18 # Boilerplate that every KYC configuration needs: the FREEZE measure
     19 # is the fallback whenever an AML program fails or a check expires,
     20 # and NONE is a program that imposes no new rules at all.
     21 # ------------------------------------------------------------------
     22 
     23 [KYC-MEASURE-FREEZE]
     24 CHECK_NAME = SKIP
     25 CONTEXT = {}
     26 PROGRAM = FREEZE
     27 
     28 [AML-PROGRAM-FREEZE]
     29 COMMAND = taler-exchange-helper-measure-freeze
     30 ENABLED = true
     31 DESCRIPTION = Freeze the account
     32 DESCRIPTION_I18N = {}
     33 FALLBACK = FREEZE
     34 
     35 [AML-PROGRAM-NONE]
     36 COMMAND = /bin/true
     37 ENABLED = true
     38 DESCRIPTION = Impose no new rules
     39 DESCRIPTION_I18N = {}
     40 FALLBACK = FREEZE
     41 
     42 
     43 # ------------------------------------------------------------------
     44 # C1/M1/P1: ask for a full name and a date of birth.  Once the form
     45 # has been submitted, taler-exchange-helper-measure-test-form raises
     46 # every limit to TESTKUDOS:1000, which un-blocks the account.
     47 # ------------------------------------------------------------------
     48 
     49 [KYC-CHECK-C1]
     50 TYPE = FORM
     51 FORM_NAME = full_name_and_birthdate
     52 DESCRIPTION = Provide your full name and date of birth
     53 DESCRIPTION_I18N = {}
     54 OUTPUTS = FULL_NAME DATE_OF_BIRTH
     55 FALLBACK = FREEZE
     56 
     57 [KYC-MEASURE-M1]
     58 CHECK_NAME = C1
     59 CONTEXT = {}
     60 PROGRAM = P1
     61 
     62 [AML-PROGRAM-P1]
     63 COMMAND = taler-exchange-helper-measure-test-form
     64 ENABLED = true
     65 DESCRIPTION = Check FULL_NAME and DATE_OF_BIRTH
     66 DESCRIPTION_I18N = {}
     67 FALLBACK = FREEZE
     68 
     69 
     70 # ------------------------------------------------------------------
     71 # The rules.  The AGGREGATE threshold sits below the TESTKUDOS:4 that
     72 # the reference wallet pays each merchant but above zero, which is
     73 # what makes the two interesting states reachable from a script: a
     74 # merchant may still accept the order (nothing has been aggregated
     75 # yet, so it is within its limit), the exchange accepts the coins,
     76 # and only the wire transfer is held back until measure M1 has been
     77 # passed.  That held-back transfer is the KYC-induced lag the auditor
     78 # has to report.
     79 #
     80 # WITHDRAW has a threshold well above what the reference wallet ever
     81 # withdraws, so the rule is recorded in the configuration -- and thus
     82 # exercised by the exchange -- without blocking the interaction that
     83 # produces the rest of the reference database.
     84 # ------------------------------------------------------------------
     85 
     86 [KYC-RULE-AGGREGATE]
     87 OPERATION_TYPE = AGGREGATE
     88 ENABLED = YES
     89 EXPOSED = YES
     90 IS_AND_COMBINATOR = YES
     91 THRESHOLD = TESTKUDOS:3
     92 TIMEFRAME = 1d
     93 NEXT_MEASURES = M1
     94 
     95 [KYC-RULE-WITHDRAW]
     96 OPERATION_TYPE = WITHDRAW
     97 ENABLED = YES
     98 EXPOSED = YES
     99 IS_AND_COMBINATOR = YES
    100 THRESHOLD = TESTKUDOS:100
    101 TIMEFRAME = 1d
    102 NEXT_MEASURES = M1