Legal Person Condensed Flow
Create complete transactions between legal entities (corporations, partnerships, trusts) with automatic KYC screening in a single API call.
Use Case
Ideal for business-to-business transactions where either the originator, beneficiary, or both are legal entities rather than individuals.
Request
Endpoint: POST https://api.trpcontinuum.com/trp/transactions/condensed
Headers:
Content-Type: application/json
Authorization: Bearer {your-token}
Request Body:
{
"transaction": {
"network": "bitcoin",
"virtualAsset": "Bitcoin (BTC)",
"amount": "500000.00",
"beneficiaryWalletAddress": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
"originatorWalletAddress": "bc1qabc123def456ghi789jkl012mno345pqr678stu",
"memo": "Corporate payment",
"purpose": "Business transaction"
},
"beneficiary": {
"beneficiaryVaspId": "vasp_123456",
"beneficiaryIsLegalPerson": true,
"beneficiaryLegalName": "Global Finance Corp",
"beneficiaryOrganization": "Global Finance Corp",
"dateOfIncorporation": "2015-08-20",
"placeOfIncorporation": "London, UK",
"beneficiaryIdNumber": "GB987654321",
"beneficiaryIdType": "LEIX",
"beneficiaryIdCountryOfIssue": "GB",
"beneficiaryRegistrationAuthority": "Companies House",
"buildingNumber": "456",
"streetName": "Corporate Avenue",
"townName": "London",
"postCode": "SW1A 1AA",
"country": "GB"
},
"originator": {
"originatorIsLegalPerson": true,
"originatorLegalName": "TechCorp Solutions Inc.",
"originatorDateOfIncorporation": "2010-05-15",
"originatorPlaceOfIncorporation": "Delaware, US",
"originatorRegistrationAuthority": "Delaware Secretary of State",
"originatorIdNumber": "DEL123456789",
"originatorIdType": "LEIX",
"originatorIdCountryOfIssue": "US",
"originatorAddressLine1": "1000 Corporate Blvd",
"originatorAddressLine2": "Suite 500",
"originatorCity": "San Francisco",
"originatorState": "CA",
"originatorPostalCode": "94105",
"originatorCountry": "US"
},
"forceApproveKyc": false
}
Response Examples
Success (No KYC Matches)
{
"success": true,
"data": {
"id": "txn_corp123",
"status": "Client Info Pending Send",
"network": "bitcoin",
"virtualAsset": "Bitcoin (BTC)",
"amount": "500000.00",
"beneficiaryWalletAddress": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
"originatorWalletAddress": "bc1qabc123def456ghi789jkl012mno345pqr678stu",
"beneficiary": {
"beneficiaryLegalName": "Global Finance Corp",
"beneficiaryVaspId": "vasp_123456",
"dateOfIncorporation": "2015-08-20"
},
"originator": {
"originatorLegalName": "TechCorp Solutions Inc.",
"originatorDateOfIncorporation": "2010-05-15"
},
"kycCheck": {
"hasMatches": false,
"totalMatches": 0,
"beneficiaryChecked": true,
"originatorChecked": true,
"entityType": "legal_person",
"screenedAt": "2024-08-07T10:00:00Z"
},
"createdAt": "2024-08-07T10:00:00Z",
"updatedAt": "2024-08-07T10:00:00Z"
}
}
Success (KYC Matches Found)
{
"success": true,
"data": {
"id": "txn_corp456",
"status": "KYC Beneficiary Pending Review",
"network": "bitcoin",
"virtualAsset": "Bitcoin (BTC)",
"amount": "500000.00",
"kycCheck": {
"hasMatches": true,
"totalMatches": 1,
"beneficiaryMatches": 1,
"originatorMatches": 0,
"topMatch": {
"score": 0.92,
"name": "Global Finance Corp",
"riskLevel": "high",
"sources": ["sanctions", "enforcement"],
"details": {
"incorporationDate": "2015-08-20",
"jurisdiction": "GB",
"matchType": "company_name_jurisdiction"
}
},
"matches": [
{
"score": 0.92,
"name": "Global Finance Corp",
"type": "beneficiary",
"sources": ["sanctions", "enforcement"],
"entityType": "Company",
"jurisdiction": "GB"
}
],
"entityType": "legal_person",
"screenedAt": "2024-08-07T10:00:00Z"
},
"createdAt": "2024-08-07T10:00:00Z",
"updatedAt": "2024-08-07T10:00:00Z"
}
}
Required Fields
Transaction
network- Blockchain networkvirtualAsset- Asset nameamount- Transaction amount as stringbeneficiaryWalletAddress- Recipient wallet addressoriginatorWalletAddress- Sender wallet address
Beneficiary (Legal Person)
beneficiaryVaspId- Target VASP identifierbeneficiaryIsLegalPerson- Must betruebeneficiaryLegalName- Official company/entity namedateOfIncorporation- Date of incorporation/formation (YYYY-MM-DD format)placeOfIncorporation- Place of incorporation/formationcountry- Country code (ISO 3166-1 alpha-2)
Originator (Legal Person)
originatorIsLegalPerson- Must betrueoriginatorLegalName- Official company/entity nameoriginatorDateOfIncorporation- Date of incorporation/formation (YYYY-MM-DD format)originatorPlaceOfIncorporation- Place of incorporation/formationoriginatorCountry- Country code (ISO 3166-1 alpha-2)
Optional Fields
Enhanced Beneficiary Data
beneficiaryOrganization- Organization name (if different from legal name)beneficiaryIdNumber- Registration number/LEIbeneficiaryIdType- ID type ("LEIX", "REGISTRATION_NUMBER", "TAX_ID")beneficiaryIdCountryOfIssue- Issuing countrybeneficiaryRegistrationAuthority- Registration authority- Address fields:
buildingNumber,streetName,townName,postCode
Enhanced Originator Data
originatorIdNumber- Registration number/LEIoriginatorIdType- ID type ("LEIX", "REGISTRATION_NUMBER", "TAX_ID")originatorIdCountryOfIssue- Issuing countryoriginatorRegistrationAuthority- Registration authority- Address fields:
originatorAddressLine1,originatorAddressLine2,originatorCity,originatorState,originatorPostalCode
Transaction Metadata
memo- Transaction descriptionpurpose- Transaction purpose
Legal Entity Types
Supported Entity Types
- Corporation - Limited liability companies, PLCs
- Partnership - General and limited partnerships
- Trust - Trusts and foundations
- Government Entity - Government departments and agencies
- Non-Profit - NGOs and charitable organizations
ID Types
- LEIX - Legal Entity Identifier (preferred)
- REGISTRATION_NUMBER - Company registration number
- TAX_ID - Tax identification number
- OTHER - Other official identifier
KYC Processing for Legal Entities
Automatic Screening
Legal entities are screened against:
- Sanctions Lists: Entity-specific sanctions (OFAC SDN, EU, UN)
- Enforcement Actions: Regulatory enforcement lists
- Ownership Screening: Beneficial ownership checks
- PEP Connections: Politically exposed person associations
- High-Risk Jurisdictions: Geographic risk assessment
Enhanced Due Diligence
For high-value transactions (over $100,000):
- Beneficial ownership analysis
- Enhanced sanctions screening
- Regulatory compliance checks
- Source of funds verification
Mixed Entity Transactions
Legal Person to Natural Person
{
"beneficiary": {
"beneficiaryIsLegalPerson": false,
"beneficiaryFirstName": "John",
"beneficiaryLastName": "Doe",
// ... natural person fields
},
"originator": {
"originatorIsLegalPerson": true,
"originatorLegalName": "Corporate Sender Inc.",
// ... legal person fields
}
}
Natural Person to Legal Person
{
"beneficiary": {
"beneficiaryIsLegalPerson": true,
"beneficiaryLegalName": "Recipient Corp Ltd",
// ... legal person fields
},
"originator": {
"originatorIsLegalPerson": false,
"originatorFirstName": "Jane",
"originatorLastName": "Smith",
// ... natural person fields
}
}
Code Examples
JavaScript/Node.js
const axios = require('axios');
async function createLegalPersonTransaction() {
try {
const response = await axios.post('https://api.trpcontinuum.com/trp/transactions/condensed', {
transaction: {
network: "ethereum",
virtualAsset: "Ethereum (ETH)",
amount: "1000000.00",
beneficiaryWalletAddress: "0x742C4B4f7c1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e",
originatorWalletAddress: "0x123abc456def789ghi012jkl345mno678pqr901stu",
memo: "Corporate acquisition payment",
purpose: "Business acquisition"
},
beneficiary: {
beneficiaryVaspId: "vasp_corp_456",
beneficiaryIsLegalPerson: true,
beneficiaryLegalName: "Target Acquisition Corp",
dateOfIncorporation: "2018-03-15",
placeOfIncorporation: "Singapore",
country: "SG",
beneficiaryIdNumber: "201812345G",
beneficiaryIdType: "REGISTRATION_NUMBER",
beneficiaryRegistrationAuthority: "ACRA Singapore"
},
originator: {
originatorIsLegalPerson: true,
originatorLegalName: "Acquiring Company Ltd",
originatorDateOfIncorporation: "2010-01-20",
originatorPlaceOfIncorporation: "Delaware, US",
originatorCountry: "US",
originatorIdNumber: "DE123456789",
originatorIdType: "LEIX",
originatorRegistrationAuthority: "Delaware Secretary of State"
}
}, {
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
if (response.data.success) {
const transaction = response.data.data;
if (transaction.kycCheck.hasMatches) {
console.log(`Corporate transaction ${transaction.id} held for compliance review`);
console.log(`Risk assessment required for ${transaction.kycCheck.totalMatches} entity matches`);
// Notify compliance team
} else {
console.log(`Corporate transaction ${transaction.id} approved`);
console.log(`Amount: ${transaction.amount} ${transaction.virtualAsset}`);
// Proceed with transaction
}
}
} catch (error) {
console.error('Legal entity transaction failed:', error.response?.data);
}
}
Python
import requests
from datetime import datetime
def create_legal_person_transaction():
payload = {
"transaction": {
"network": "ethereum",
"virtualAsset": "Ethereum (ETH)",
"amount": "1000000.00",
"beneficiaryWalletAddress": "0x742C4B4f7c1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e",
"originatorWalletAddress": "0x123abc456def789ghi012jkl345mno678pqr901stu",
"memo": "Corporate acquisition payment",
"purpose": "Business acquisition"
},
"beneficiary": {
"beneficiaryVaspId": "vasp_corp_456",
"beneficiaryIsLegalPerson": True,
"beneficiaryLegalName": "Target Acquisition Corp",
"dateOfIncorporation": "2018-03-15",
"placeOfIncorporation": "Singapore",
"country": "SG",
"beneficiaryIdNumber": "201812345G",
"beneficiaryIdType": "REGISTRATION_NUMBER"
},
"originator": {
"originatorIsLegalPerson": True,
"originatorLegalName": "Acquiring Company Ltd",
"originatorDateOfIncorporation": "2010-01-20",
"originatorPlaceOfIncorporation": "Delaware, US",
"originatorCountry": "US",
"originatorIdNumber": "DE123456789",
"originatorIdType": "LEIX"
}
}
response = requests.post(
'https://api.trpcontinuum.com/trp/transactions/condensed',
json=payload,
headers={
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
)
if response.status_code == 200:
data = response.json()
if data['success']:
transaction = data['data']
if transaction['kycCheck']['hasMatches']:
print(f"Corporate transaction {transaction['id']} requires review")
print(f"Entity screening found {transaction['kycCheck']['totalMatches']} matches")
# Log match details for compliance team
for match in transaction['kycCheck'].get('matches', []):
print(f"- {match['name']} (Score: {match['score']}, Sources: {match['sources']})")
else:
print(f"Corporate transaction {transaction['id']} approved automatically")
print(f"Status: {transaction['status']}")
else:
print(f"Transaction failed: {data.get('message', 'Unknown error')}")
else:
print(f"HTTP Error: {response.status_code} - {response.text}")
Compliance Requirements
Enhanced Due Diligence Triggers
- Transaction amount > $100,000
- High-risk jurisdictions
- Sanctions list matches
- PEP connections
- Adverse media mentions
Required Documentation
- Certificate of Incorporation
- Articles of Association
- Beneficial Ownership Information
- Board Resolutions (for large transactions)
- Financial Statements (if required)
Beneficial Ownership
For legal entities, beneficial ownership screening includes:
- Ultimate beneficial owners (over 25% ownership)
- Senior management officials
- Board of directors
- Authorized signatories
Common Errors
Invalid Entity Data
{
"success": false,
"error": "INVALID_ENTITY_DATA",
"message": "Legal entity information incomplete or invalid",
"details": {
"missing_fields": ["dateOfIncorporation", "placeOfIncorporation"],
"invalid_fields": {
"beneficiaryIdType": "Invalid ID type for legal entities, expected: LEIX, REGISTRATION_NUMBER, TAX_ID"
}
}
}
Entity Not Found
{
"success": false,
"error": "ENTITY_VERIFICATION_FAILED",
"message": "Could not verify legal entity existence",
"details": {
"entityName": "Non-existent Corp",
"jurisdiction": "US",
"suggestion": "Verify entity name and registration details"
}
}
Testing
Test Legal Entities
Low Risk (No Matches):
- Beneficiary: "Test Corporation Ltd" / Incorporation: "2020-01-01"
- Originator: "Demo Business Inc" / Incorporation: "2019-01-01"
High Risk (Will Generate Matches):
- Beneficiary: "Rosneft Oil Company" / Incorporation: "1993-01-01" / Country: "RU"
- Originator: "Bank of Kunlun" / Incorporation: "2006-01-01" / Country: "CN"
Jurisdiction Testing
Different jurisdictions may trigger different screening levels:
- High Risk: Iran, North Korea, Syria
- Medium Risk: Russia, Belarus, Myanmar
- Standard Risk: US, UK, EU countries