<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anton</title>
    <description>The latest articles on DEV Community by Anton (@amlkyctech).</description>
    <link>https://dev.to/amlkyctech</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4226102%2F65dd9a3d-d32e-4272-8358-cfbf8d4e617f.png</url>
      <title>DEV Community: Anton</title>
      <link>https://dev.to/amlkyctech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/amlkyctech"/>
    <language>en</language>
    <item>
      <title>AML checks</title>
      <dc:creator>Anton</dc:creator>
      <pubDate>Wed, 04 Nov 2026 11:49:23 +0000</pubDate>
      <link>https://dev.to/amlkyctech/aml-checks-4dc7</link>
      <guid>https://dev.to/amlkyctech/aml-checks-4dc7</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb1v9lz305yds3zl7vhtg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb1v9lz305yds3zl7vhtg.png" alt=" " width="799" height="418"&gt;&lt;/a&gt;&lt;br&gt;
I integrated AML checks into my code. The API request was the easy part.&lt;/p&gt;

&lt;p&gt;I was adding wallet screening to a product that processes crypto payments. I wanted the team to see a risk assessment before deciding what to do with an address.&lt;/p&gt;

&lt;p&gt;The first request was straightforward. My backend sent the wallet address, currency and network to AMLKYC.TECH:&lt;/p&gt;

&lt;p&gt;PUT /api/fast-check&lt;/p&gt;

&lt;p&gt;For a USDT transfer on TRON, I used currency=usdt and network=trx. That distinction matters because a check for USDT and a check for TRX at the same address are different assessments.&lt;/p&gt;

&lt;p&gt;The API returned a check ID, which I saved alongside our internal payment record. Then I fetched the result with:&lt;/p&gt;

&lt;p&gt;GET /api/fast-check/{id}&lt;/p&gt;

&lt;p&gt;The part I spent more time on was handling the period between those requests. A newly submitted check enters a queue. I kept the payment in a “screening pending” state and waited for the check to finish before reading its risk score and labels.&lt;/p&gt;

&lt;p&gt;I also had to account for repeat checks. If I submit an address we have checked before, the response can still contain data from the previous run while the new one is processing. Showing that old score as a fresh result would give our review team the wrong picture.&lt;/p&gt;

&lt;p&gt;Once the new result was ready, I stored the score, relevant risk details and check timestamp. Higher-risk cases went to a person for review, with a link back to the screening record.&lt;/p&gt;

&lt;p&gt;The integration taught me something familiar from payment systems: returning a result is only one part of the workflow. The status, timing and evidence behind it determine whether the result is useful.&lt;/p&gt;

&lt;p&gt;If you’re building crypto payments, exchange software or a wallet product, the API documentation is here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://amlkyc.tech/docs/api" rel="noopener noreferrer"&gt;https://amlkyc.tech/docs/api&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How are you handling pending checks in your own payment flow?&lt;/p&gt;

&lt;h1&gt;
  
  
  AML #CryptoPayments #FinTech #API #BlockchainAnalytics
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
