Tutorial: Regulatory Custody by providing customers KYC data

Marcel Nellesen

Chief Product Officer, Tangany

Product: 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

  1. Demo account: contact Tangany’s sales & support team to obtain a free demo account to use the Tangany Customers API.

  2. For further details visit our API documentation at https://docs.tangany.com.

  3. 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:

GET /customers

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"
}
}
POST /customers

If your post call has been successful there now should be an existing customer:

GET /customers

Result:

GET /customers

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:

GET /customers/:customerId/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.

POST /customers/:customerId/documents

For the post body we need to attach the sample pdf:

POST /customers/:customerId/documents

The list

GET /customers/:customerId/documents

should now contain this KYC document.

GET /customers/:customerId/documents

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
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:

POST /wallet-links

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.