get-aml-OFFICER_PUB-accounts.rst (4606B)
1 .. http:get:: /aml/$OFFICER_PUB/accounts 2 3 **Request:** 4 5 *Accept*: 6 The client may specify the desired MIME-type for the result. 7 Supported are the usual "application/json", but also 8 "text/csv" (RFC 4180) 9 and "application/vnd.ms-excel" (XML of Excel 2003). 10 11 *Taler-AML-Officer-Signature*: 12 The client must provide Base-32 encoded EdDSA signature with 13 ``$OFFICER_PRIV``, affirming the desire to obtain AML data. Note that 14 this is merely a simple authentication mechanism, the details of the 15 request are not protected by the signature. 16 17 This endpoint was introduced in this form in protocol **v31**. 18 19 :query limit: 20 *Optional*. takes value of the form ``N (-N)``, so that at 21 most ``N`` values strictly older (younger) than ``start`` are returned. 22 Defaults to ``-20`` to return the last 20 entries (before ``start``). 23 :query offset: 24 *Optional*. Row number threshold, see ``delta`` for its 25 interpretation. Defaults to ``INT64_MAX``, namely the biggest row id 26 possible in the database. 27 :query investigation: 28 *Optional*. If set to yes, only return accounts that are under 29 AML investigation, if no only accounts that are not under investigation. 30 Do not give (or use "all") to see all accounts regardless of 31 investigation status. 32 :query open: 33 *Optional*. If set to yes, only return accounts that are open, 34 which means they crossed some initial limit and now have custom rules. 35 Do not give (or use "all") to see all accounts regardless of 36 open status. 37 :query high_risk: 38 *Optional*. If set to yes, only return accounts that were flagged 39 as high risk. 40 Do not give (or use "all") to see all accounts regardless of 41 risk status. 42 43 **Response:** 44 45 :http:statuscode:`200 OK`: 46 The response will be an `AmlAccountsResponse` message (if the 47 client's header "Accept" was "application/json"). Other encodings 48 may differ in the exact returned data and format. 49 :http:statuscode:`204 No content`: 50 There are no accounts at all (within the specified constraints). 51 :http:statuscode:`403 Forbidden`: 52 The signature is invalid. 53 :http:statuscode:`404 Not found`: 54 The designated AML account is not known. 55 :http:statuscode:`409 Conflict`: 56 The designated AML account is not enabled. 57 58 **Details:** 59 60 .. ts:def:: AmlAccountsResponse 61 62 interface AmlAccountsResponse { 63 64 // Array of customer accounts matching the query. 65 accounts: CustomerAccountSummary[]; 66 } 67 68 .. ts:def:: CustomerAccountSummary 69 70 interface CustomerAccountSummary { 71 72 // Which payto-address is this record about. 73 // Identifies a GNU Taler wallet or an affected bank account. 74 h_payto: NormalizedPaytoHash; 75 76 // Full payto URL of the account that the decision is 77 // about. 78 full_payto: string; 79 80 // True if the account was assessed as being high risk. 81 high_risk: boolean; 82 83 // Latest comments about the account (if any). 84 comments?: string; 85 86 // Row of the account in the exchange tables. Useful to filter 87 // by offset. 88 rowid: Integer; 89 90 // When was the account opened? "never" if it was never opened. 91 open_time: Timestamp; 92 93 // When was the account opened? "never" if it was never closed. 94 close_time: Timestamp; 95 96 // True if the account is under investigation by AML staff 97 // after this decision. 98 to_investigate: boolean; 99 100 } 101 102 .. ts:def:: AccountProperties 103 104 // All fields in this object are optional. The actual 105 // properties collected depend fully on the discretion 106 // of the exchange operator; 107 // however, some common fields are standardized 108 // and thus described here. 109 interface AccountProperties { 110 111 // True if this is a politically exposed account. 112 // Rules for classifying accounts as politically 113 // exposed are country-dependent. 114 pep?: boolean; 115 116 // True if this is a sanctioned account. 117 // Rules for classifying accounts as sanctioned 118 // are country-dependent. 119 sanctioned?: boolean; 120 121 // True if this is a high-risk account. 122 // Rules for classifying accounts as at-risk 123 // are exchange operator-dependent. 124 high_risk?: boolean; 125 126 // Business domain of the account owner. 127 // The list of possible business domains is 128 // operator- or country-dependent. 129 business_domain?: string; 130 131 // Is the client's account currently frozen? 132 is_frozen?: boolean; 133 134 // Was the client's account reported to the authorities? 135 was_reported?: boolean; 136 137 }