Tutorial: Regulatory Custody by providing customers KYC data
Marcel Nellesen
Chief Product Officer, TanganyProduct: Tangany Customers API & Tangany Custody API
Duration: 15 minutes (if experienced with Postman), 30 minutes.
Level: Beginner
Content:
Creation of a new customer, including KYC data
Upload of KYC documents
Creation of a wallet-link
Assigning the created customer to the created wallet
Learn how to implement regulatory custody with Tangany Customers API using the Custody API
This tutorial aims to provide you with a brief introduction to Tangany Regulated Custody.
Through using the Tangany Customers API and a wallet from the Tangany Custody API (formerly known as Wallet as a Service), you will learn how to handle and connect customers’ data to wallets to fulfill regulatory requirements.
The first step will be creating a new customer, whom you will then link to an existing wallet afterward.
Requirements
Demo account: contact Tangany’s sales & support team to obtain a free demo account to use the Tangany Customers API.
For further details visit our API documentation at https://docs.tangany.com.
Postman: visit our public postman collection. I recommend using a Postman desktop client to avoid cross-browser request issues.
Authentication
Before you can start calling the Tangany Customers API you need to make sure you’re authenticated. Open your Postman client with your already imported Tangany Customers API collection. Tangany provides an environment variable preset called Default (public) which can be found in the upper right on Postman. Edit this environment preset and fill in the subscription you received from Tangany’s sales team.
tangany-subscription
Head over to your imported Postman Collection “Tangany Customers API”. We will start with an easy task. First, let’s get a list of your currently existing customers by calling
GET /customers
The result should be an empty list:
Great! Your client is working, so now we can start using the Tangany Customers API!
Creating a customer via Tangany Customers API
Okay, let’s create your first customer by using
POST /customers
and providing a body containing
{"id": "35b64385-5a21-4700-a951-a517d99a4f40","environment": "testing","contract": {"isSigned": true,"signedDate": "2020-08-01","isCancelled": true,"cancelledDate": "2020-08-01"},"person": {"firstName": "Elizabeth","lastName": "Henderson","gender": "F","birthDate": "1977-04-14","birthPlace": "London","birthName": "Henderson","birthCountry": "GB","nationality": "GB","address": {"country": "GB","city": "SOUTHAMPTON","postcode": "SO53 5PD","streetName": "71 Cherry Court","streetNumber": "A. 813"},"email": "elizabeth.henderson@example.com","kyc": {"id": "2deb4908-8af3-4388-9d24-6a3d0e508c4a","date": "2020-05-01T13:15:45.000Z","method": "video_ident","document": {"country": "GB","nationality": "GB","number": "GB123456789","issuedBy": "Home Office Identify & Passport Service","issueDate": "2010-04-11","validUntil": "2025-04-11","type": "id_card"}},"pep": {"isExposed": false,"checkDate": "2020-05-11","source": null,"reason": "Ex-Partner of Minister Müstermann","isSanctioned": true}},"additionalAttributes": {"customCustomerSecondaryID": "627ce4b1-3c4b-4723-84ce-646aedc3d166"}}
If your post call has been successful there now should be an existing customer:
GET /customers
Result:
Copy your customer’s id into your clipboard.
Okay well done! Let’s assume that you want to add KYC documents to the freshly created customer. Before we upload any document lets check if there is already an existing document for this customer.
For that just parse the customerId from your clipboard to the path variable of the following method:
GET /customers/:customerId/documents
The result should be an empty list of existing documents:
Great, now let’s upload a KYC document for that customer. For that just create any sample PDF and open the following API method:
POST /customers/:customerId/documents
First, we need to parse the customerId as a parameter again.
For the post body we need to attach the sample pdf:
The list
GET /customers/:customerId/documents
should now contain this KYC document.
Congrats! You just onboarded your first customer including KYC data and documents. The next step is to connect your customer to its wallet or your omnibus wallet that you created in Tangany Custody API.
Connecting customers and wallets
The Customers API has, besides the core customers and KYC data, another path called wallet-links. This is the feature allowing you to connect wallets to customers. Before we can assign a customer to its wallet we need to create a so-called wallet link. This represents a wallet resource from Tangany Custody API or any external wallet.
For now, there should be no wallet links:
GET /wallet-links
Let’s assume there is an existing wallet for this customer in the Tangany Custody API and you own tangany-vault-URL and the id of the customer’s wallet.
POST /wallet-links
Place vault-URL, walletId, and customerId in the post body:
{"id": "35b64385-5a21-4700-a951-a517d99a4f40","type": "waas","vaultUrl": "{{tangany-vault-url}}","vaultWalletId": "{{tangany-walletId}}","assignment": {"customerId": "35b64385-5a21-4700-a951-a517d99a4f40"}}
The result should be:
After executing succesfully, there should now be at least one wallet link:
GET /wallet-links
For omnibus wallets, you would now be able to assign more/other customers to this wallet-link via
POST /wallet-links/:walletLinkId/assignments/
Great job! That’s it!
You successfully walked through the core features of the Tangany Customers API by setting up a new customer and linking this customer to a freshly created wallet link, targeting a wallet from the Tangany Custody API (Wallet as a Service).
A tutorial on how to send Ethereum transactions using our Tangany Custody API can be found HERE.
Read more
Keep learning and keep reading
Stay informed on the world of crypto regulation and read the latest about Tangany.