> This is Payabli documentation. For a complete page index, fetch https://docs.payabli.com/llms.txt — append .md to any page URL for lightweight markdown. For section-level indexes, query parameters, and other AI-optimized access methods, see https://docs.payabli.com/ai-agents.md

# Manage business entities with the API

> Learn how to create, read, update, and deactivate boarding business entities with the Payabli API

> **Note**
>
> Intelligent boarding is in beta. To opt in, reach out to your Payabli contact.

A business is the legal entity behind a paypoint: the company you're boarding, with its legal details, people, and payment methods. Use the businesses API to create and manage those records as you board a paypoint. For how businesses fit into the wider model, see the [boarding overview](/guides/pay-ops-boarding-object-model-overview).

## Considerations

* The boarding API uses OAuth2. Send a Bearer token on every request. See [OAuth2 authentication](/developers/oauth-authentication).
* A business belongs to an organization. Set `parentReference` to the organization's entrypoint to place the business there, or omit it to use the organization your credential belongs to.
* Reads mask sensitive fields such as `taxReference` (only the last four digits are shown). Use the unmasked endpoint when you need the raw values.

## Create a business

Send a `POST` request to `/v2/businesses` with the business's legal details. New businesses start in `Draft`. See the [API reference](/developers/api-reference/businesses/create-a-business) for this endpoint for full documentation.

### Request

POST [https://api-sandbox.payabli.com/api/v2/businesses](https://api-sandbox.payabli.com/api/v2/businesses)

```curl
curl -X POST https://api-sandbox.payabli.com/api/v2/businesses \
     -H "Authorization: Bearer <token>" \
     -H "Content-Type: application/json" \
     -d '{
  "legalName": "Rose Gardens LLC",
  "externalId": "rg-001",
  "legalStructure": "llc",
  "website": "https://example.com",
  "merchantCatCode": "5814",
  "phone": [
    "3055551212"
  ],
  "emails": [
    "ops@example.com"
  ],
  "paymentMethods": [
    {
      "type": "bank_account",
      "name": "Operating account",
      "financialInstitution": "Bank of Example",
      "ownerType": "business",
      "accountType": "checking",
      "accountNumber": "123456789",
      "routingNumber": "021000021",
      "usage": [
        "deposits",
        "billing"
      ],
      "isDefault": true
    },
    {
      "type": "bank_account",
      "name": "Payout account",
      "financialInstitution": "Bank of Example",
      "ownerType": "business",
      "accountType": "checking",
      "accountNumber": "987654321",
      "routingNumber": "021000021",
      "usage": [
        "payOutFunding"
      ],
      "isDefault": false
    }
  ],
  "taxReference": "477498993",
  "parentReference": "8cfec329267"
}'
```

```typescript
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient({
        bearerAuth: {
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET",
        },
    });
    await client.businesses.createBusiness({
        externalId: "rg-001",
        legalName: "Rose Gardens LLC",
        legalStructure: "llc",
        website: "https://example.com",
        merchantCatCode: "5814",
        phone: [
            "3055551212",
        ],
        emails: [
            "ops@example.com",
        ],
        paymentMethods: [
            {
                type: "bank_account",
                name: "Operating account",
                financialInstitution: "Bank of Example",
                ownerType: "business",
                accountType: "checking",
                accountNumber: "123456789",
                routingNumber: "021000021",
                usage: [
                    "deposits",
                    "billing",
                ],
                isDefault: true,
            },
            {
                type: "bank_account",
                name: "Payout account",
                financialInstitution: "Bank of Example",
                ownerType: "business",
                accountType: "checking",
                accountNumber: "987654321",
                routingNumber: "021000021",
                usage: [
                    "payOutFunding",
                ],
                isDefault: false,
            },
        ],
        taxReference: "477498993",
        parentReference: "8cfec329267",
    });
}
main();

```

```python
from payabli import payabli, BusinessPaymentMethod

client = payabli(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET",
)

client.businesses.create_business(
    external_id="rg-001",
    legal_name="Rose Gardens LLC",
    legal_structure="llc",
    website="https://example.com",
    merchant_cat_code="5814",
    phone=[
        "3055551212"
    ],
    emails=[
        "ops@example.com"
    ],
    payment_methods=[
        BusinessPaymentMethod(
            type="bank_account",
            name="Operating account",
            financial_institution="Bank of Example",
            owner_type="business",
            account_type="checking",
            account_number="123456789",
            routing_number="021000021",
            usage=[
                "deposits",
                "billing"
            ],
            is_default=True,
        ),
        BusinessPaymentMethod(
            type="bank_account",
            name="Payout account",
            financial_institution="Bank of Example",
            owner_type="business",
            account_type="checking",
            account_number="987654321",
            routing_number="021000021",
            usage=[
                "payOutFunding"
            ],
            is_default=False,
        )
    ],
    tax_reference="477498993",
    parent_reference="8cfec329267",
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;
import io.github.payabli.api.types.BusinessPaymentMethod;
import io.github.payabli.api.types.CreateBusinessRequest;
import io.github.payabli.api.types.CreateBusinessRequestLegalStructure;
import java.util.Arrays;
import java.util.Optional;

public class Example {
    public static void main(String[] args) {
        PayabliApiClient client = PayabliApiClient.withCredentials("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
            .build()
        ;

        client.businesses().createBusiness(
            CreateBusinessRequest
                .builder()
                .legalName("Rose Gardens LLC")
                .externalId("rg-001")
                .legalStructure(CreateBusinessRequestLegalStructure.LLC)
                .website("https://example.com")
                .merchantCatCode("5814")
                .phone(
                    Optional.of(
                        Arrays.asList("3055551212")
                    )
                )
                .emails(
                    Optional.of(
                        Arrays.asList("ops@example.com")
                    )
                )
                .paymentMethods(
                    Optional.of(
                        Arrays.asList(
                            BusinessPaymentMethod
                                .builder()
                                .type("bank_account")
                                .name("Operating account")
                                .financialInstitution("Bank of Example")
                                .ownerType("business")
                                .accountType("checking")
                                .accountNumber("123456789")
                                .routingNumber("021000021")
                                .usage(
                                    Optional.of(
                                        Arrays.asList("deposits", "billing")
                                    )
                                )
                                .isDefault(true)
                                .build(),
                            BusinessPaymentMethod
                                .builder()
                                .type("bank_account")
                                .name("Payout account")
                                .financialInstitution("Bank of Example")
                                .ownerType("business")
                                .accountType("checking")
                                .accountNumber("987654321")
                                .routingNumber("021000021")
                                .usage(
                                    Optional.of(
                                        Arrays.asList("payOutFunding")
                                    )
                                )
                                .isDefault(false)
                                .build()
                        )
                    )
                )
                .taxReference("477498993")
                .parentReference("8cfec329267")
                .build()
        );
    }
}
```

```csharp
using PayabliApi;
using System.Threading.Tasks;
using System.Collections.Generic;

public partial class Examples
{
    public async Task Example() {
        var client = new PayabliApiClient(
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET"
        );

        await client.Businesses.CreateBusinessAsync(
            new CreateBusinessRequest {
                ExternalId = "rg-001",
                LegalName = "Rose Gardens LLC",
                LegalStructure = CreateBusinessRequestLegalStructure.Llc,
                Website = "https://example.com",
                MerchantCatCode = "5814",
                Phone = new List<string>(){
                    "3055551212",
                }
                ,
                Emails = new List<string>(){
                    "ops@example.com",
                }
                ,
                PaymentMethods = new List<BusinessPaymentMethod>(){
                    new BusinessPaymentMethod {
                        Type = "bank_account",
                        Name = "Operating account",
                        FinancialInstitution = "Bank of Example",
                        OwnerType = "business",
                        AccountType = "checking",
                        AccountNumber = "123456789",
                        RoutingNumber = "021000021",
                        Usage = new List<string>(){
                            "deposits",
                            "billing",
                        }
                        ,
                        IsDefault = true
                    },
                    new BusinessPaymentMethod {
                        Type = "bank_account",
                        Name = "Payout account",
                        FinancialInstitution = "Bank of Example",
                        OwnerType = "business",
                        AccountType = "checking",
                        AccountNumber = "987654321",
                        RoutingNumber = "021000021",
                        Usage = new List<string>(){
                            "payOutFunding",
                        }
                        ,
                        IsDefault = false
                    },
                }
                ,
                TaxReference = "477498993",
                ParentReference = "8cfec329267"
            }
        );
    }

}

```

```go
package example

import (
    context "context"

    payabli "github.com/payabli/sdk-go"
    client "github.com/payabli/sdk-go/client"
    option "github.com/payabli/sdk-go/option"
)

func do() {
    client := client.NewClient(
        option.WithClientCredentials(
            "YOUR_CLIENT_ID",
            "YOUR_CLIENT_SECRET",
        ),
    )
    request := &payabli.CreateBusinessRequest{
        LegalName: "Rose Gardens LLC",
        ExternalId: payabli.String(
            "rg-001",
        ),
        LegalStructure: payabli.CreateBusinessRequestLegalStructureLlc.Ptr(),
        Website: payabli.String(
            "https://example.com",
        ),
        MerchantCatCode: payabli.String(
            "5814",
        ),
        Phone: []string{
            "3055551212",
        },
        Emails: []string{
            "ops@example.com",
        },
        PaymentMethods: []*payabli.BusinessPaymentMethod{
            &payabli.BusinessPaymentMethod{
                Type: payabli.String(
                    "bank_account",
                ),
                Name: payabli.String(
                    "Operating account",
                ),
                FinancialInstitution: payabli.String(
                    "Bank of Example",
                ),
                OwnerType: payabli.String(
                    "business",
                ),
                AccountType: payabli.String(
                    "checking",
                ),
                AccountNumber: payabli.String(
                    "123456789",
                ),
                RoutingNumber: payabli.String(
                    "021000021",
                ),
                Usage: []string{
                    "deposits",
                    "billing",
                },
                IsDefault: payabli.Bool(
                    true,
                ),
            },
            &payabli.BusinessPaymentMethod{
                Type: payabli.String(
                    "bank_account",
                ),
                Name: payabli.String(
                    "Payout account",
                ),
                FinancialInstitution: payabli.String(
                    "Bank of Example",
                ),
                OwnerType: payabli.String(
                    "business",
                ),
                AccountType: payabli.String(
                    "checking",
                ),
                AccountNumber: payabli.String(
                    "987654321",
                ),
                RoutingNumber: payabli.String(
                    "021000021",
                ),
                Usage: []string{
                    "payOutFunding",
                },
                IsDefault: payabli.Bool(
                    false,
                ),
            },
        },
        TaxReference: payabli.String(
            "477498993",
        ),
        ParentReference: payabli.String(
            "8cfec329267",
        ),
    }
    client.Businesses.CreateBusiness(
        context.TODO(),
        request,
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;
use Payabli\Types\CreateBusinessRequest;
use Payabli\Types\CreateBusinessRequestLegalStructure;
use Payabli\Types\BusinessPaymentMethod;

$client = new PayabliClient(
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
);
$client->businesses->createBusiness(
    new CreateBusinessRequest([
        'externalId' => 'rg-001',
        'legalName' => 'Rose Gardens LLC',
        'legalStructure' => CreateBusinessRequestLegalStructure::Llc->value,
        'website' => 'https://example.com',
        'merchantCatCode' => '5814',
        'phone' => [
            '3055551212',
        ],
        'emails' => [
            'ops@example.com',
        ],
        'paymentMethods' => [
            new BusinessPaymentMethod([
                'type' => 'bank_account',
                'name' => 'Operating account',
                'financialInstitution' => 'Bank of Example',
                'ownerType' => 'business',
                'accountType' => 'checking',
                'accountNumber' => '123456789',
                'routingNumber' => '021000021',
                'usage' => [
                    'deposits',
                    'billing',
                ],
                'isDefault' => true,
            ]),
            new BusinessPaymentMethod([
                'type' => 'bank_account',
                'name' => 'Payout account',
                'financialInstitution' => 'Bank of Example',
                'ownerType' => 'business',
                'accountType' => 'checking',
                'accountNumber' => '987654321',
                'routingNumber' => '021000021',
                'usage' => [
                    'payOutFunding',
                ],
                'isDefault' => false,
            ]),
        ],
        'taxReference' => '477498993',
        'parentReference' => '8cfec329267',
    ]),
);

```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/v2/businesses")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"legalName\": \"Rose Gardens LLC\",\n  \"externalId\": \"rg-001\",\n  \"legalStructure\": \"llc\",\n  \"website\": \"https://example.com\",\n  \"merchantCatCode\": \"5814\",\n  \"phone\": [\n    \"3055551212\"\n  ],\n  \"emails\": [\n    \"ops@example.com\"\n  ],\n  \"paymentMethods\": [\n    {\n      \"type\": \"bank_account\",\n      \"name\": \"Operating account\",\n      \"financialInstitution\": \"Bank of Example\",\n      \"ownerType\": \"business\",\n      \"accountType\": \"checking\",\n      \"accountNumber\": \"123456789\",\n      \"routingNumber\": \"021000021\",\n      \"usage\": [\n        \"deposits\",\n        \"billing\"\n      ],\n      \"isDefault\": true\n    },\n    {\n      \"type\": \"bank_account\",\n      \"name\": \"Payout account\",\n      \"financialInstitution\": \"Bank of Example\",\n      \"ownerType\": \"business\",\n      \"accountType\": \"checking\",\n      \"accountNumber\": \"987654321\",\n      \"routingNumber\": \"021000021\",\n      \"usage\": [\n        \"payOutFunding\"\n      ],\n      \"isDefault\": false\n    }\n  ],\n  \"taxReference\": \"477498993\",\n  \"parentReference\": \"8cfec329267\"\n}"

response = http.request(request)
puts response.read_body
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "legalName": "Rose Gardens LLC",
  "externalId": "rg-001",
  "legalStructure": "llc",
  "website": "https://example.com",
  "merchantCatCode": "5814",
  "phone": ["3055551212"],
  "emails": ["ops@example.com"],
  "paymentMethods": [
    [
      "type": "bank_account",
      "name": "Operating account",
      "financialInstitution": "Bank of Example",
      "ownerType": "business",
      "accountType": "checking",
      "accountNumber": "123456789",
      "routingNumber": "021000021",
      "usage": ["deposits", "billing"],
      "isDefault": true
    ],
    [
      "type": "bank_account",
      "name": "Payout account",
      "financialInstitution": "Bank of Example",
      "ownerType": "business",
      "accountType": "checking",
      "accountNumber": "987654321",
      "routingNumber": "021000021",
      "usage": ["payOutFunding"],
      "isDefault": false
    ]
  ],
  "taxReference": "477498993",
  "parentReference": "8cfec329267"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/v2/businesses")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

The response returns the new business's reference and initial status:

### Response (201)

```json
{
  "success": true,
  "message": "Business created successfully",
  "traceId": "0HNNKQIN7BJO1:00000015",
  "data": {
    "businessUuid": "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    "businessStatus": "Draft",
    "createdAt": "2026-08-10T19:15:47.6946557Z",
    "_links": {
      "self": "/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55"
    }
  }
}
```

The `businessUuid` in the response is the reference you use to read and manage the business.

> **Note**
>
> Payabli normalizes `legalStructure` to a canonical value. If you send `llc`, reads return `LimitedLiabilityCompany`.

## Get a business

Send a `GET` request to `/v2/businesses/{businessReference}`. Sensitive fields such as `taxReference` are masked. See the [API reference](/developers/api-reference/businesses/get-a-business) for this endpoint for full documentation.

### Request

GET [https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}](https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference})

```curl
curl https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55 \
     -H "Authorization: Bearer <token>"
```

```typescript
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient({
        bearerAuth: {
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET",
        },
    });
    await client.businesses.getBusiness("019fed1a-3d6e-75d3-a81e-cba3874b0a55");
}
main();

```

```python
from payabli import payabli

client = payabli(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET",
)

client.businesses.get_business(
    business_reference="019fed1a-3d6e-75d3-a81e-cba3874b0a55",
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;

public class Example {
    public static void main(String[] args) {
        PayabliApiClient client = PayabliApiClient.withCredentials("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
            .build()
        ;

        client.businesses().getBusiness("019fed1a-3d6e-75d3-a81e-cba3874b0a55");
    }
}
```

```csharp
using PayabliApi;
using System.Threading.Tasks;

public partial class Examples
{
    public async Task Example() {
        var client = new PayabliApiClient(
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET"
        );

        await client.Businesses.GetBusinessAsync(
            "019fed1a-3d6e-75d3-a81e-cba3874b0a55"
        );
    }

}

```

```go
package example

import (
    context "context"

    client "github.com/payabli/sdk-go/client"
    option "github.com/payabli/sdk-go/option"
)

func do() {
    client := client.NewClient(
        option.WithClientCredentials(
            "YOUR_CLIENT_ID",
            "YOUR_CLIENT_SECRET",
        ),
    )
    client.Businesses.GetBusiness(
        context.TODO(),
        "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;

$client = new PayabliClient(
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
);
$client->businesses->getBusiness(
    '019fed1a-3d6e-75d3-a81e-cba3874b0a55',
);

```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

The response returns the business's detail with sensitive fields masked:

### Response (200)

```json
{
  "success": true,
  "message": "Business retrieved successfully",
  "traceId": "0HNNKQIN7BJO3:00000008",
  "data": {
    "businessUuid": "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    "legalName": "Rose Gardens LLC",
    "legalStructure": "LimitedLiabilityCompany",
    "incorporationState": "GA",
    "taxIdCountry": "US",
    "taxExemptClassification": null,
    "license": "LIC-48213",
    "licenseState": "GA",
    "taxReference": "****8993",
    "businessStatus": "Draft",
    "parentReference": "8cfec329267",
    "createdAt": "2026-08-10T19:15:47.694655",
    "lastUpdated": "2026-08-10T19:15:47.694655",
    "_links": {
      "self": "/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55"
    },
    "externalId": "rg-001",
    "website": "https://example.com",
    "merchantCatCode": "5814",
    "phone": [
      "3055551212"
    ],
    "emails": [
      "ops@example.com"
    ],
    "addressDetails": [],
    "paymentMethods": [
      {
        "type": "bank_account",
        "name": "Operating account",
        "financialInstitution": "Bank of Example",
        "ownerType": "business",
        "accountType": "checking",
        "accountNumber": "****6789",
        "routingNumber": "****0021",
        "usage": [
          "deposits",
          "billing"
        ],
        "isDefault": true
      },
      {
        "type": "bank_account",
        "name": "Payout account",
        "financialInstitution": "Bank of Example",
        "ownerType": "business",
        "accountType": "checking",
        "accountNumber": "****4321",
        "routingNumber": "****0021",
        "usage": [
          "payOutFunding"
        ],
        "isDefault": false
      }
    ],
    "isTaxExempt": false,
    "certificationDetails": []
  }
}
```

## Get unmasked business detail

To read the raw values of masked fields, send a `GET` request to `/v2/businesses/{businessReference}/unmasked`. See the [API reference](/developers/api-reference/businesses/get-a-business-unmasked) for this endpoint for full documentation.

### Request

GET [https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}/unmasked](https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}/unmasked)

```curl
curl https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/unmasked \
     -H "Authorization: Bearer <token>"
```

```typescript
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient({
        bearerAuth: {
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET",
        },
    });
    await client.businesses.getBusinessUnmasked("019fed1a-3d6e-75d3-a81e-cba3874b0a55");
}
main();

```

```python
from payabli import payabli

client = payabli(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET",
)

client.businesses.get_business_unmasked(
    business_reference="019fed1a-3d6e-75d3-a81e-cba3874b0a55",
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;

public class Example {
    public static void main(String[] args) {
        PayabliApiClient client = PayabliApiClient.withCredentials("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
            .build()
        ;

        client.businesses().getBusinessUnmasked("019fed1a-3d6e-75d3-a81e-cba3874b0a55");
    }
}
```

```csharp
using PayabliApi;
using System.Threading.Tasks;

public partial class Examples
{
    public async Task Example() {
        var client = new PayabliApiClient(
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET"
        );

        await client.Businesses.GetBusinessUnmaskedAsync(
            "019fed1a-3d6e-75d3-a81e-cba3874b0a55"
        );
    }

}

```

```go
package example

import (
    context "context"

    client "github.com/payabli/sdk-go/client"
    option "github.com/payabli/sdk-go/option"
)

func do() {
    client := client.NewClient(
        option.WithClientCredentials(
            "YOUR_CLIENT_ID",
            "YOUR_CLIENT_SECRET",
        ),
    )
    client.Businesses.GetBusinessUnmasked(
        context.TODO(),
        "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;

$client = new PayabliClient(
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
);
$client->businesses->getBusinessUnmasked(
    '019fed1a-3d6e-75d3-a81e-cba3874b0a55',
);

```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/unmasked")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/unmasked")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

The response returns the same detail with sensitive fields unmasked:

### Response (200)

```json
{
  "success": true,
  "message": "Business retrieved successfully",
  "traceId": "0HNNKQIN7BJO3:00000009",
  "data": {
    "businessUuid": "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    "legalName": "Rose Gardens LLC",
    "legalStructure": "LimitedLiabilityCompany",
    "incorporationState": "GA",
    "taxIdCountry": "US",
    "taxExemptClassification": null,
    "license": "LIC-48213",
    "licenseState": "GA",
    "taxReference": "477498993",
    "businessStatus": "Draft",
    "parentReference": "8cfec329267",
    "createdAt": "2026-08-10T19:15:47.694655",
    "lastUpdated": "2026-08-10T19:15:47.694655",
    "_links": {
      "self": "/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55"
    },
    "externalId": "rg-001",
    "website": "https://example.com",
    "merchantCatCode": "5814",
    "phone": [
      "3055551212"
    ],
    "emails": [
      "ops@example.com"
    ],
    "addressDetails": [],
    "paymentMethods": [
      {
        "type": "bank_account",
        "name": "Operating account",
        "financialInstitution": "Bank of Example",
        "ownerType": "business",
        "accountType": "checking",
        "accountNumber": "123456789",
        "routingNumber": "021000021",
        "usage": [
          "deposits",
          "billing"
        ],
        "isDefault": true
      },
      {
        "type": "bank_account",
        "name": "Payout account",
        "financialInstitution": "Bank of Example",
        "ownerType": "business",
        "accountType": "checking",
        "accountNumber": "987654321",
        "routingNumber": "021000021",
        "usage": [
          "payOutFunding"
        ],
        "isDefault": false
      }
    ],
    "isTaxExempt": false,
    "certificationDetails": []
  }
}
```

## List businesses

Send a `GET` request to `/v2/businesses`. Filter and page the results with the query parameters: `status`, `name`, `merchantCatCode`, `legalStructure`, `limit`, `page`, `sortBy`, and `sortOrder`. See the [API reference](/developers/api-reference/businesses/list-businesses) for this endpoint for full documentation.

### Request

GET [https://api-sandbox.payabli.com/api/v2/businesses](https://api-sandbox.payabli.com/api/v2/businesses)

```curl
curl -G https://api-sandbox.payabli.com/api/v2/businesses \
     -H "Authorization: Bearer <token>" \
     -d limit=1 \
     -d page=1
```

```typescript
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient({
        bearerAuth: {
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET",
        },
    });
    await client.businesses.listBusinesses({
        limit: 1,
        page: 1,
    });
}
main();

```

```python
from payabli import payabli

client = payabli(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET",
)

client.businesses.list_businesses(
    limit=1,
    page=1,
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;
import io.github.payabli.api.resources.businesses.requests.ListBusinessesBusinessesRequest;

public class Example {
    public static void main(String[] args) {
        PayabliApiClient client = PayabliApiClient.withCredentials("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
            .build()
        ;

        client.businesses().listBusinesses(
            ListBusinessesBusinessesRequest
                .builder()
                .limit(1)
                .page(1)
                .build()
        );
    }
}
```

```csharp
using PayabliApi;
using System.Threading.Tasks;

public partial class Examples
{
    public async Task Example() {
        var client = new PayabliApiClient(
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET"
        );

        await client.Businesses.ListBusinessesAsync(
            new ListBusinessesBusinessesRequest {
                Limit = 1,
                Page = 1
            }
        );
    }

}

```

```go
package example

import (
    context "context"

    payabli "github.com/payabli/sdk-go"
    client "github.com/payabli/sdk-go/client"
    option "github.com/payabli/sdk-go/option"
)

func do() {
    client := client.NewClient(
        option.WithClientCredentials(
            "YOUR_CLIENT_ID",
            "YOUR_CLIENT_SECRET",
        ),
    )
    request := &payabli.ListBusinessesBusinessesRequest{
        Limit: payabli.Int(
            1,
        ),
        Page: payabli.Int(
            1,
        ),
    }
    client.Businesses.ListBusinesses(
        context.TODO(),
        request,
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;
use Payabli\Businesses\Requests\ListBusinessesBusinessesRequest;

$client = new PayabliClient(
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
);
$client->businesses->listBusinesses(
    new ListBusinessesBusinessesRequest([
        'limit' => 1,
        'page' => 1,
    ]),
);

```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/v2/businesses?limit=1&page=1")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/v2/businesses?limit=1&page=1")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

The response returns a page of businesses with pagination metadata:

### Response (200)

```json
{
  "success": true,
  "message": "Businesses retrieved successfully",
  "traceId": "0HNNKQIN7BJO2:00000024",
  "data": {
    "data": [
      {
        "businessUuid": "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
        "legalName": "Rose Gardens LLC",
        "businessStatus": "Draft",
        "parentReference": "8cfec329267",
        "createdAt": "2026-08-10T19:15:47.694655",
        "lastUpdated": "2026-08-10T19:15:47.694655",
        "_links": {
          "self": "/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55"
        }
      }
    ],
    "pagination": {
      "page": 1,
      "totalPages": 1,
      "totalRecords": 1,
      "pageSize": 1,
      "hasNext": false,
      "hasPrevious": false
    }
  }
}
```

## Update a business

Send a `PATCH` request to `/v2/businesses/{businessReference}` with only the fields you want to change. See the [API reference](/developers/api-reference/businesses/update-a-business) for this endpoint for full documentation.

### Request

PATCH [https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}](https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference})

```curl
curl -X PATCH https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55 \
     -H "Authorization: Bearer <token>" \
     -H "Content-Type: application/json" \
     -d '{
  "website": "https://example.org"
}'
```

```typescript
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient({
        bearerAuth: {
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET",
        },
    });
    await client.businesses.updateBusiness("019fed1a-3d6e-75d3-a81e-cba3874b0a55", {
        website: "https://example.org",
    });
}
main();

```

```python
from payabli import payabli

client = payabli(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET",
)

client.businesses.update_business(
    business_reference="019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    website="https://example.org",
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;
import io.github.payabli.api.resources.businesses.requests.UpdateBusinessRequest;

public class Example {
    public static void main(String[] args) {
        PayabliApiClient client = PayabliApiClient.withCredentials("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
            .build()
        ;

        client.businesses().updateBusiness(
            "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
            UpdateBusinessRequest
                .builder()
                .website("https://example.org")
                .build()
        );
    }
}
```

```csharp
using PayabliApi;
using System.Threading.Tasks;

public partial class Examples
{
    public async Task Example() {
        var client = new PayabliApiClient(
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET"
        );

        await client.Businesses.UpdateBusinessAsync(
            businessReference: "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
            request: new UpdateBusinessRequest {
                Website = "https://example.org"
            }
        );
    }

}

```

```go
package example

import (
    context "context"

    payabli "github.com/payabli/sdk-go"
    client "github.com/payabli/sdk-go/client"
    option "github.com/payabli/sdk-go/option"
)

func do() {
    client := client.NewClient(
        option.WithClientCredentials(
            "YOUR_CLIENT_ID",
            "YOUR_CLIENT_SECRET",
        ),
    )
    request := &payabli.UpdateBusinessRequest{
        Website: payabli.String(
            "https://example.org",
        ),
    }
    client.Businesses.UpdateBusiness(
        context.TODO(),
        "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
        request,
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;
use Payabli\Businesses\Requests\UpdateBusinessRequest;

$client = new PayabliClient(
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
);
$client->businesses->updateBusiness(
    '019fed1a-3d6e-75d3-a81e-cba3874b0a55',
    new UpdateBusinessRequest([
        'website' => 'https://example.org',
    ]),
);

```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"website\": \"https://example.org\"\n}"

response = http.request(request)
puts response.read_body
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = ["website": "https://example.org"] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PATCH"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

The response confirms the update and returns the new timestamp:

### Response (200)

```json
{
  "success": true,
  "message": "Business updated successfully",
  "traceId": "0HNNKQIN7BJO1:00000016",
  "data": {
    "businessUuid": "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    "lastUpdated": "2026-08-10T19:15:47.9553337Z",
    "_links": {
      "self": "/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55"
    }
  }
}
```

## Deactivate a business

Send a `DELETE` request to `/v2/businesses/{businessReference}`. This is a soft delete: the business moves to `Deactivated` and the record is kept. See the [API reference](/developers/api-reference/businesses/deactivate-a-business) for this endpoint for full documentation.

### Request

DELETE [https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}](https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference})

```curl
curl -X DELETE https://api-sandbox.payabli.com/api/v2/businesses/019fed33-615d-77b6-afaa-46e7ac9bf36e \
     -H "Authorization: Bearer <token>" \
     -H "Content-Type: application/json" \
     -d '{
  "reason": "Duplicate record"
}'
```

```typescript
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient({
        bearerAuth: {
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET",
        },
    });
    await client.businesses.deactivateBusiness("019fed33-615d-77b6-afaa-46e7ac9bf36e", {
        reason: "Duplicate record",
    });
}
main();

```

```python
from payabli import payabli

client = payabli(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET",
)

client.businesses.deactivate_business(
    business_reference="019fed33-615d-77b6-afaa-46e7ac9bf36e",
    reason="Duplicate record",
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;
import io.github.payabli.api.resources.businesses.requests.DeactivateBusinessRequest;

public class Example {
    public static void main(String[] args) {
        PayabliApiClient client = PayabliApiClient.withCredentials("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
            .build()
        ;

        client.businesses().deactivateBusiness(
            "019fed33-615d-77b6-afaa-46e7ac9bf36e",
            DeactivateBusinessRequest
                .builder()
                .reason("Duplicate record")
                .build()
        );
    }
}
```

```csharp
using PayabliApi;
using System.Threading.Tasks;

public partial class Examples
{
    public async Task Example() {
        var client = new PayabliApiClient(
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET"
        );

        await client.Businesses.DeactivateBusinessAsync(
            businessReference: "019fed33-615d-77b6-afaa-46e7ac9bf36e",
            request: new DeactivateBusinessRequest {
                Reason = "Duplicate record"
            }
        );
    }

}

```

```go
package example

import (
    context "context"

    payabli "github.com/payabli/sdk-go"
    client "github.com/payabli/sdk-go/client"
    option "github.com/payabli/sdk-go/option"
)

func do() {
    client := client.NewClient(
        option.WithClientCredentials(
            "YOUR_CLIENT_ID",
            "YOUR_CLIENT_SECRET",
        ),
    )
    request := &payabli.DeactivateBusinessRequest{
        Reason: payabli.String(
            "Duplicate record",
        ),
    }
    client.Businesses.DeactivateBusiness(
        context.TODO(),
        "019fed33-615d-77b6-afaa-46e7ac9bf36e",
        request,
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;
use Payabli\Businesses\Requests\DeactivateBusinessRequest;

$client = new PayabliClient(
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
);
$client->businesses->deactivateBusiness(
    '019fed33-615d-77b6-afaa-46e7ac9bf36e',
    new DeactivateBusinessRequest([
        'reason' => 'Duplicate record',
    ]),
);

```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/v2/businesses/019fed33-615d-77b6-afaa-46e7ac9bf36e")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"reason\": \"Duplicate record\"\n}"

response = http.request(request)
puts response.read_body
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = ["reason": "Duplicate record"] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/v2/businesses/019fed33-615d-77b6-afaa-46e7ac9bf36e")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "DELETE"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

The response confirms the deactivation:

### Response (200)

```json
{
  "success": true,
  "message": "Business deactivated successfully",
  "traceId": "0HNNKQIN7BJQM:0000003D",
  "data": {
    "businessUuid": "019fed33-615d-77b6-afaa-46e7ac9bf36e",
    "businessStatus": "Deactivated",
    "deactivatedAt": "2026-08-10T19:43:15.3804295Z",
    "reason": "Duplicate record",
    "_links": {
      "self": "/v2/businesses/019fed33-615d-77b6-afaa-46e7ac9bf36e"
    }
  }
}
```

## Manage the people on a business

A business's people (owners, directors, signers, contacts, authorized users, and employees) connect to it through links. A person can have links to more than one business, and each link carries its own role, ownership, job title, and contact details. This section covers the link. To create a person or manage their own details, see [Manage people with the API](/guides/pay-ops-developer-people-manage).

The link's contact fields (`primaryEmail`, `secondaryEmail`, `primaryPhoneNumber`, `secondaryPhoneNumber`) and addresses belong to the relationship, not the person. Use them for how to reach the person about this business. They don't change the person's own contact details.

The link also sets whether the person signs the business's boarding applications, with `isSigner`. Only an owner can be the signer. A business has one signer, and every application needs one before you validate or submit it. Setting `isSigner` to `true` on one person removes it from everyone else on the business.

Link people who don't own part of the business as `Employee`. Application validation holds every other role to the owner requirements.

### Link a person to a business

Send a `POST` request to `/v2/businesses/{businessReference}/people` with the `personReference` of a person you've already created and their role in `personType`. For an owner, `ownershipPercentage` is required, from 0 to 100. If the business's combined ownership would go over 100%, the request fails with `400`. See the [API reference](/developers/api-reference/businesses/link-a-person-to-a-business) for this endpoint for full documentation.

### Request

POST [https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}/people](https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}/people)

```curl
curl -X POST https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people \
     -H "Authorization: Bearer <token>" \
     -H "Content-Type: application/json" \
     -d '{
  "personReference": "01a0014d-ce1a-7110-9bac-c4c59647a88d",
  "personType": "Owner",
  "ownershipPercentage": 100,
  "isPrimaryController": true,
  "isSigner": true,
  "title": "CEO",
  "primaryEmail": "contact@example.com",
  "secondaryEmail": "contact.alt@example.net",
  "primaryPhoneNumber": "3055551212",
  "secondaryPhoneNumber": "3055559876",
  "billingAddress": {
    "addressLine1": "123 Main Street",
    "cityLocality": "Miami",
    "stateProvince": "FL",
    "postalCode": "33101",
    "country": "US",
    "type": "billing"
  },
  "mailingAddress": {
    "addressLine1": "456 Oak Avenue",
    "cityLocality": "Miami",
    "stateProvince": "FL",
    "postalCode": "33102",
    "country": "US",
    "type": "mailing"
  }
}'
```

```typescript
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient({
        bearerAuth: {
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET",
        },
    });
    await client.businesses.linkBusinessPerson("019fed1a-3d6e-75d3-a81e-cba3874b0a55", {
        personReference: "01a0014d-ce1a-7110-9bac-c4c59647a88d",
        personType: "Owner",
        ownershipPercentage: 100,
        isPrimaryController: true,
        isSigner: true,
        title: "CEO",
        primaryEmail: "contact@example.com",
        secondaryEmail: "contact.alt@example.net",
        primaryPhoneNumber: "3055551212",
        secondaryPhoneNumber: "3055559876",
        billingAddress: {
            addressLine1: "123 Main Street",
            cityLocality: "Miami",
            stateProvince: "FL",
            postalCode: "33101",
            country: "US",
            type: "billing",
        },
        mailingAddress: {
            addressLine1: "456 Oak Avenue",
            cityLocality: "Miami",
            stateProvince: "FL",
            postalCode: "33102",
            country: "US",
            type: "mailing",
        },
    });
}
main();

```

```python
from payabli import payabli, PersonAddressRequest

client = payabli(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET",
)

client.businesses.link_business_person(
    business_reference="019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    person_reference="01a0014d-ce1a-7110-9bac-c4c59647a88d",
    person_type="Owner",
    ownership_percentage=100,
    is_primary_controller=True,
    is_signer=True,
    title="CEO",
    primary_email="contact@example.com",
    secondary_email="contact.alt@example.net",
    primary_phone_number="3055551212",
    secondary_phone_number="3055559876",
    billing_address=PersonAddressRequest(
        address_line_1="123 Main Street",
        city_locality="Miami",
        state_province="FL",
        postal_code="33101",
        country="US",
        type="billing",
    ),
    mailing_address=PersonAddressRequest(
        address_line_1="456 Oak Avenue",
        city_locality="Miami",
        state_province="FL",
        postal_code="33102",
        country="US",
        type="mailing",
    ),
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;
import io.github.payabli.api.resources.businesses.requests.LinkBusinessPersonRequest;
import io.github.payabli.api.types.PersonAddressRequest;
import io.github.payabli.api.types.PersonAddressType;
import io.github.payabli.api.types.PersonType;

public class Example {
    public static void main(String[] args) {
        PayabliApiClient client = PayabliApiClient.withCredentials("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
            .build()
        ;

        client.businesses().linkBusinessPerson(
            "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
            LinkBusinessPersonRequest
                .builder()
                .personReference("01a0014d-ce1a-7110-9bac-c4c59647a88d")
                .personType(PersonType.OWNER)
                .ownershipPercentage(100.0)
                .isPrimaryController(true)
                .isSigner(true)
                .title("CEO")
                .primaryEmail("contact@example.com")
                .secondaryEmail("contact.alt@example.net")
                .primaryPhoneNumber("3055551212")
                .secondaryPhoneNumber("3055559876")
                .billingAddress(
                    PersonAddressRequest
                        .builder()
                        .addressLine1("123 Main Street")
                        .cityLocality("Miami")
                        .stateProvince("FL")
                        .postalCode("33101")
                        .country("US")
                        .type(PersonAddressType.BILLING)
                        .build()
                )
                .mailingAddress(
                    PersonAddressRequest
                        .builder()
                        .addressLine1("456 Oak Avenue")
                        .cityLocality("Miami")
                        .stateProvince("FL")
                        .postalCode("33102")
                        .country("US")
                        .type(PersonAddressType.MAILING)
                        .build()
                )
                .build()
        );
    }
}
```

```csharp
using PayabliApi;
using System.Threading.Tasks;

public partial class Examples
{
    public async Task Example() {
        var client = new PayabliApiClient(
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET"
        );

        await client.Businesses.LinkBusinessPersonAsync(
            businessReference: "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
            request: new LinkBusinessPersonRequest {
                PersonReference = "01a0014d-ce1a-7110-9bac-c4c59647a88d",
                PersonType = PersonType.Owner,
                OwnershipPercentage = 100,
                IsPrimaryController = true,
                IsSigner = true,
                Title = "CEO",
                PrimaryEmail = "contact@example.com",
                SecondaryEmail = "contact.alt@example.net",
                PrimaryPhoneNumber = "3055551212",
                SecondaryPhoneNumber = "3055559876",
                BillingAddress = new PersonAddressRequest {
                    AddressLine1 = "123 Main Street",
                    CityLocality = "Miami",
                    StateProvince = "FL",
                    PostalCode = "33101",
                    Country = "US",
                    Type = PersonAddressType.Billing
                },
                MailingAddress = new PersonAddressRequest {
                    AddressLine1 = "456 Oak Avenue",
                    CityLocality = "Miami",
                    StateProvince = "FL",
                    PostalCode = "33102",
                    Country = "US",
                    Type = PersonAddressType.Mailing
                }
            }
        );
    }

}

```

```go
package example

import (
    context "context"

    payabli "github.com/payabli/sdk-go"
    client "github.com/payabli/sdk-go/client"
    option "github.com/payabli/sdk-go/option"
)

func do() {
    client := client.NewClient(
        option.WithClientCredentials(
            "YOUR_CLIENT_ID",
            "YOUR_CLIENT_SECRET",
        ),
    )
    request := &payabli.LinkBusinessPersonRequest{
        PersonReference: "01a0014d-ce1a-7110-9bac-c4c59647a88d",
        PersonType: payabli.PersonTypeOwner.Ptr(),
        OwnershipPercentage: payabli.Float64(
            100,
        ),
        IsPrimaryController: payabli.Bool(
            true,
        ),
        IsSigner: payabli.Bool(
            true,
        ),
        Title: payabli.String(
            "CEO",
        ),
        PrimaryEmail: payabli.String(
            "contact@example.com",
        ),
        SecondaryEmail: payabli.String(
            "contact.alt@example.net",
        ),
        PrimaryPhoneNumber: payabli.String(
            "3055551212",
        ),
        SecondaryPhoneNumber: payabli.String(
            "3055559876",
        ),
        BillingAddress: &payabli.PersonAddressRequest{
            AddressLine1: payabli.String(
                "123 Main Street",
            ),
            CityLocality: payabli.String(
                "Miami",
            ),
            StateProvince: payabli.String(
                "FL",
            ),
            PostalCode: payabli.String(
                "33101",
            ),
            Country: payabli.String(
                "US",
            ),
            Type: payabli.PersonAddressTypeBilling.Ptr(),
        },
        MailingAddress: &payabli.PersonAddressRequest{
            AddressLine1: payabli.String(
                "456 Oak Avenue",
            ),
            CityLocality: payabli.String(
                "Miami",
            ),
            StateProvince: payabli.String(
                "FL",
            ),
            PostalCode: payabli.String(
                "33102",
            ),
            Country: payabli.String(
                "US",
            ),
            Type: payabli.PersonAddressTypeMailing.Ptr(),
        },
    }
    client.Businesses.LinkBusinessPerson(
        context.TODO(),
        "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
        request,
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;
use Payabli\Businesses\Requests\LinkBusinessPersonRequest;
use Payabli\Types\PersonType;
use Payabli\Types\PersonAddressRequest;
use Payabli\Types\PersonAddressType;

$client = new PayabliClient(
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
);
$client->businesses->linkBusinessPerson(
    '019fed1a-3d6e-75d3-a81e-cba3874b0a55',
    new LinkBusinessPersonRequest([
        'personReference' => '01a0014d-ce1a-7110-9bac-c4c59647a88d',
        'personType' => PersonType::Owner->value,
        'ownershipPercentage' => 100,
        'isPrimaryController' => true,
        'isSigner' => true,
        'title' => 'CEO',
        'primaryEmail' => 'contact@example.com',
        'secondaryEmail' => 'contact.alt@example.net',
        'primaryPhoneNumber' => '3055551212',
        'secondaryPhoneNumber' => '3055559876',
        'billingAddress' => new PersonAddressRequest([
            'addressLine1' => '123 Main Street',
            'cityLocality' => 'Miami',
            'stateProvince' => 'FL',
            'postalCode' => '33101',
            'country' => 'US',
            'type' => PersonAddressType::Billing->value,
        ]),
        'mailingAddress' => new PersonAddressRequest([
            'addressLine1' => '456 Oak Avenue',
            'cityLocality' => 'Miami',
            'stateProvince' => 'FL',
            'postalCode' => '33102',
            'country' => 'US',
            'type' => PersonAddressType::Mailing->value,
        ]),
    ]),
);

```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"personReference\": \"01a0014d-ce1a-7110-9bac-c4c59647a88d\",\n  \"personType\": \"Owner\",\n  \"ownershipPercentage\": 100,\n  \"isPrimaryController\": true,\n  \"isSigner\": true,\n  \"title\": \"CEO\",\n  \"primaryEmail\": \"contact@example.com\",\n  \"secondaryEmail\": \"contact.alt@example.net\",\n  \"primaryPhoneNumber\": \"3055551212\",\n  \"secondaryPhoneNumber\": \"3055559876\",\n  \"billingAddress\": {\n    \"addressLine1\": \"123 Main Street\",\n    \"cityLocality\": \"Miami\",\n    \"stateProvince\": \"FL\",\n    \"postalCode\": \"33101\",\n    \"country\": \"US\",\n    \"type\": \"billing\"\n  },\n  \"mailingAddress\": {\n    \"addressLine1\": \"456 Oak Avenue\",\n    \"cityLocality\": \"Miami\",\n    \"stateProvince\": \"FL\",\n    \"postalCode\": \"33102\",\n    \"country\": \"US\",\n    \"type\": \"mailing\"\n  }\n}"

response = http.request(request)
puts response.read_body
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "personReference": "01a0014d-ce1a-7110-9bac-c4c59647a88d",
  "personType": "Owner",
  "ownershipPercentage": 100,
  "isPrimaryController": true,
  "isSigner": true,
  "title": "CEO",
  "primaryEmail": "contact@example.com",
  "secondaryEmail": "contact.alt@example.net",
  "primaryPhoneNumber": "3055551212",
  "secondaryPhoneNumber": "3055559876",
  "billingAddress": [
    "addressLine1": "123 Main Street",
    "cityLocality": "Miami",
    "stateProvince": "FL",
    "postalCode": "33101",
    "country": "US",
    "type": "billing"
  ],
  "mailingAddress": [
    "addressLine1": "456 Oak Avenue",
    "cityLocality": "Miami",
    "stateProvince": "FL",
    "postalCode": "33102",
    "country": "US",
    "type": "mailing"
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

The response returns the new link:

### Response (201)

```json
{
  "success": true,
  "message": "Person linked to business successfully",
  "traceId": "0HNOIMDG0IS4U:00000147",
  "data": {
    "businessReference": "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    "personReference": "01a0014d-ce1a-7110-9bac-c4c59647a88d",
    "personType": "owner",
    "beneficialOwner": true,
    "isPrimaryController": true,
    "isSigner": true,
    "title": "CEO",
    "primaryEmail": "contact@example.com",
    "secondaryEmail": "contact.alt@example.net",
    "primaryPhoneNumber": "3055551212",
    "secondaryPhoneNumber": "3055559876",
    "createdAt": "2026-08-14T17:24:31.3877241Z",
    "updatedAt": "2026-08-14T17:24:31.3877241Z",
    "_links": {
      "self": "/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people/01a0014d-ce1a-7110-9bac-c4c59647a88d",
      "business": "/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55",
      "person": "/v2/people/01a0014d-ce1a-7110-9bac-c4c59647a88d"
    },
    "ownershipPercentage": 100,
    "billingAddressUuid": "019fed1a-6e41-7194-84c8-98ae0219799a",
    "mailingAddressUuid": "019fed1a-6e43-7768-b3b4-607c374f7730"
  }
}
```

Reads return `personType` in lowercase, so `Owner` comes back as `owner`. Payabli sets `beneficialOwner` for you. The link returns its addresses as `billingAddressUuid` and `mailingAddressUuid` references rather than the full addresses.

> **Tip**
>
> To create a person and link them in one request, include a `businessRelationship` object when you [create the person](/guides/pay-ops-developer-people-manage#create-a-person).

### List a business's people

Send a `GET` request to `/v2/businesses/{businessReference}/people`. See the [API reference](/developers/api-reference/businesses/list-business-people) for this endpoint for full documentation.

### Request

GET [https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}/people](https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}/people)

```curl
curl https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people \
     -H "Authorization: Bearer <token>"
```

```typescript
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient({
        bearerAuth: {
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET",
        },
    });
    await client.businesses.listBusinessPeople("019fed1a-3d6e-75d3-a81e-cba3874b0a55");
}
main();

```

```python
from payabli import payabli

client = payabli(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET",
)

client.businesses.list_business_people(
    business_reference="019fed1a-3d6e-75d3-a81e-cba3874b0a55",
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;

public class Example {
    public static void main(String[] args) {
        PayabliApiClient client = PayabliApiClient.withCredentials("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
            .build()
        ;

        client.businesses().listBusinessPeople("019fed1a-3d6e-75d3-a81e-cba3874b0a55");
    }
}
```

```csharp
using PayabliApi;
using System.Threading.Tasks;

public partial class Examples
{
    public async Task Example() {
        var client = new PayabliApiClient(
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET"
        );

        await client.Businesses.ListBusinessPeopleAsync(
            "019fed1a-3d6e-75d3-a81e-cba3874b0a55"
        );
    }

}

```

```go
package example

import (
    context "context"

    client "github.com/payabli/sdk-go/client"
    option "github.com/payabli/sdk-go/option"
)

func do() {
    client := client.NewClient(
        option.WithClientCredentials(
            "YOUR_CLIENT_ID",
            "YOUR_CLIENT_SECRET",
        ),
    )
    client.Businesses.ListBusinessPeople(
        context.TODO(),
        "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;

$client = new PayabliClient(
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
);
$client->businesses->listBusinessPeople(
    '019fed1a-3d6e-75d3-a81e-cba3874b0a55',
);

```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

The response returns every link on the business:

### Response (200)

```json
{
  "success": true,
  "message": "Business people retrieved successfully",
  "traceId": "0HNOIME81PD14:00000004",
  "data": [
    {
      "businessReference": "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
      "personReference": "01a0014d-ce1a-7110-9bac-c4c59647a88d",
      "personType": "owner",
      "beneficialOwner": true,
      "isPrimaryController": true,
      "isSigner": true,
      "title": "CEO",
      "primaryEmail": "contact@example.com",
      "secondaryEmail": "contact.alt@example.net",
      "primaryPhoneNumber": "3055551212",
      "secondaryPhoneNumber": "3055559876",
      "createdAt": "2026-08-14T17:24:31.3877241Z",
      "updatedAt": "2026-08-14T17:24:31.3877241Z",
      "_links": {
        "self": "/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people/01a0014d-ce1a-7110-9bac-c4c59647a88d",
        "business": "/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55",
        "person": "/v2/people/01a0014d-ce1a-7110-9bac-c4c59647a88d"
      },
      "ownershipPercentage": 100
    }
  ]
}
```

### Get a business-person link

Send a `GET` request to `/v2/businesses/{businessReference}/people/{personReference}`. See the [API reference](/developers/api-reference/businesses/get-a-business-person-link) for this endpoint for full documentation.

### Request

GET [https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}/people/\{personReference}](https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}/people/\{personReference})

```curl
curl https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people/01a0014d-ce1a-7110-9bac-c4c59647a88d \
     -H "Authorization: Bearer <token>"
```

```typescript
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient({
        bearerAuth: {
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET",
        },
    });
    await client.businesses.getBusinessPerson("019fed1a-3d6e-75d3-a81e-cba3874b0a55", "01a0014d-ce1a-7110-9bac-c4c59647a88d");
}
main();

```

```python
from payabli import payabli

client = payabli(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET",
)

client.businesses.get_business_person(
    business_reference="019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    person_reference="01a0014d-ce1a-7110-9bac-c4c59647a88d",
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;

public class Example {
    public static void main(String[] args) {
        PayabliApiClient client = PayabliApiClient.withCredentials("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
            .build()
        ;

        client.businesses().getBusinessPerson("019fed1a-3d6e-75d3-a81e-cba3874b0a55", "01a0014d-ce1a-7110-9bac-c4c59647a88d");
    }
}
```

```csharp
using PayabliApi;
using System.Threading.Tasks;

public partial class Examples
{
    public async Task Example() {
        var client = new PayabliApiClient(
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET"
        );

        await client.Businesses.GetBusinessPersonAsync(
            "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
            "01a0014d-ce1a-7110-9bac-c4c59647a88d"
        );
    }

}

```

```go
package example

import (
    context "context"

    client "github.com/payabli/sdk-go/client"
    option "github.com/payabli/sdk-go/option"
)

func do() {
    client := client.NewClient(
        option.WithClientCredentials(
            "YOUR_CLIENT_ID",
            "YOUR_CLIENT_SECRET",
        ),
    )
    client.Businesses.GetBusinessPerson(
        context.TODO(),
        "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
        "01a0014d-ce1a-7110-9bac-c4c59647a88d",
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;

$client = new PayabliClient(
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
);
$client->businesses->getBusinessPerson(
    '019fed1a-3d6e-75d3-a81e-cba3874b0a55',
    '01a0014d-ce1a-7110-9bac-c4c59647a88d',
);

```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people/01a0014d-ce1a-7110-9bac-c4c59647a88d")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people/01a0014d-ce1a-7110-9bac-c4c59647a88d")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

The response returns the link:

### Response (200)

```json
{
  "success": true,
  "message": "Business person retrieved successfully",
  "traceId": "0HNOIME81PCS8:00000410",
  "data": {
    "businessReference": "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    "personReference": "01a0014d-ce1a-7110-9bac-c4c59647a88d",
    "personType": "owner",
    "beneficialOwner": true,
    "isPrimaryController": true,
    "isSigner": true,
    "title": "CEO",
    "primaryEmail": "contact@example.com",
    "secondaryEmail": "contact.alt@example.net",
    "primaryPhoneNumber": "3055551212",
    "secondaryPhoneNumber": "3055559876",
    "createdAt": "2026-08-14T17:24:31.3877241Z",
    "updatedAt": "2026-08-14T17:24:31.3877241Z",
    "_links": {
      "self": "/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people/01a0014d-ce1a-7110-9bac-c4c59647a88d",
      "business": "/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55",
      "person": "/v2/people/01a0014d-ce1a-7110-9bac-c4c59647a88d"
    },
    "ownershipPercentage": 100
  }
}
```

### Update a business-person link

Send a `PATCH` request to `/v2/businesses/{businessReference}/people/{personReference}` with only the fields you want to change. Omitted fields keep their values. See the [API reference](/developers/api-reference/businesses/update-a-business-person-link) for this endpoint for full documentation.

### Request

PATCH [https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}/people/\{personReference}](https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}/people/\{personReference})

```curl
curl -X PATCH https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people/01a0014d-ce1a-7110-9bac-c4c59647a88d \
     -H "Authorization: Bearer <token>" \
     -H "Content-Type: application/json" \
     -d '{
  "isPrimaryController": true,
  "primaryEmail": "updated.contact@example.com"
}'
```

```typescript
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient({
        bearerAuth: {
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET",
        },
    });
    await client.businesses.updateBusinessPerson("019fed1a-3d6e-75d3-a81e-cba3874b0a55", "01a0014d-ce1a-7110-9bac-c4c59647a88d", {
        isPrimaryController: true,
        primaryEmail: "updated.contact@example.com",
    });
}
main();

```

```python
from payabli import payabli

client = payabli(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET",
)

client.businesses.update_business_person(
    business_reference="019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    person_reference="01a0014d-ce1a-7110-9bac-c4c59647a88d",
    is_primary_controller=True,
    primary_email="updated.contact@example.com",
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;
import io.github.payabli.api.resources.businesses.requests.UpdateBusinessPersonRequest;

public class Example {
    public static void main(String[] args) {
        PayabliApiClient client = PayabliApiClient.withCredentials("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
            .build()
        ;

        client.businesses().updateBusinessPerson(
            "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
            "01a0014d-ce1a-7110-9bac-c4c59647a88d",
            UpdateBusinessPersonRequest
                .builder()
                .isPrimaryController(true)
                .primaryEmail("updated.contact@example.com")
                .build()
        );
    }
}
```

```csharp
using PayabliApi;
using System.Threading.Tasks;

public partial class Examples
{
    public async Task Example() {
        var client = new PayabliApiClient(
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET"
        );

        await client.Businesses.UpdateBusinessPersonAsync(
            businessReference: "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
            personReference: "01a0014d-ce1a-7110-9bac-c4c59647a88d",
            request: new UpdateBusinessPersonRequest {
                IsPrimaryController = true,
                PrimaryEmail = "updated.contact@example.com"
            }
        );
    }

}

```

```go
package example

import (
    context "context"

    payabli "github.com/payabli/sdk-go"
    client "github.com/payabli/sdk-go/client"
    option "github.com/payabli/sdk-go/option"
)

func do() {
    client := client.NewClient(
        option.WithClientCredentials(
            "YOUR_CLIENT_ID",
            "YOUR_CLIENT_SECRET",
        ),
    )
    request := &payabli.UpdateBusinessPersonRequest{
        IsPrimaryController: payabli.Bool(
            true,
        ),
        PrimaryEmail: payabli.String(
            "updated.contact@example.com",
        ),
    }
    client.Businesses.UpdateBusinessPerson(
        context.TODO(),
        "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
        "01a0014d-ce1a-7110-9bac-c4c59647a88d",
        request,
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;
use Payabli\Businesses\Requests\UpdateBusinessPersonRequest;

$client = new PayabliClient(
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
);
$client->businesses->updateBusinessPerson(
    '019fed1a-3d6e-75d3-a81e-cba3874b0a55',
    '01a0014d-ce1a-7110-9bac-c4c59647a88d',
    new UpdateBusinessPersonRequest([
        'isPrimaryController' => true,
        'primaryEmail' => 'updated.contact@example.com',
    ]),
);

```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people/01a0014d-ce1a-7110-9bac-c4c59647a88d")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"isPrimaryController\": true,\n  \"primaryEmail\": \"updated.contact@example.com\"\n}"

response = http.request(request)
puts response.read_body
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "isPrimaryController": true,
  "primaryEmail": "updated.contact@example.com"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people/01a0014d-ce1a-7110-9bac-c4c59647a88d")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PATCH"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

The response returns the updated link:

### Response (200)

```json
{
  "success": true,
  "message": "Business person updated successfully",
  "traceId": "0HNOIME81PCS8:00000582",
  "data": {
    "businessReference": "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    "personReference": "01a0014d-ce1a-7110-9bac-c4c59647a88d",
    "personType": "owner",
    "beneficialOwner": true,
    "isPrimaryController": true,
    "isSigner": true,
    "title": "CEO",
    "primaryEmail": "updated.contact@example.com",
    "secondaryEmail": "contact.alt@example.net",
    "primaryPhoneNumber": "3055551212",
    "secondaryPhoneNumber": "3055559876",
    "createdAt": "2026-08-14T17:24:31.3877241Z",
    "updatedAt": "2026-08-14T17:26:08.9110000Z",
    "_links": {
      "self": "/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people/01a0014d-ce1a-7110-9bac-c4c59647a88d",
      "business": "/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55",
      "person": "/v2/people/01a0014d-ce1a-7110-9bac-c4c59647a88d"
    },
    "ownershipPercentage": 100
  }
}
```

### Unlink a person from a business

Send a `DELETE` request to `/v2/businesses/{businessReference}/people/{personReference}`. This removes the link but keeps the person record. A successful unlink returns `204` with no body. See the [API reference](/developers/api-reference/businesses/unlink-a-person-from-a-business) for this endpoint for full documentation.

### Request

DELETE [https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}/people/\{personReference}](https://api-sandbox.payabli.com/api/v2/businesses/\{businessReference}/people/\{personReference})

```curl
curl -X DELETE https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people/01a0014d-ce1a-7110-9bac-c4c59647a88d \
     -H "Authorization: Bearer <token>"
```

```typescript
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient({
        bearerAuth: {
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET",
        },
    });
    await client.businesses.unlinkBusinessPerson("019fed1a-3d6e-75d3-a81e-cba3874b0a55", "01a0014d-ce1a-7110-9bac-c4c59647a88d");
}
main();

```

```python
from payabli import payabli

client = payabli(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET",
)

client.businesses.unlink_business_person(
    business_reference="019fed1a-3d6e-75d3-a81e-cba3874b0a55",
    person_reference="01a0014d-ce1a-7110-9bac-c4c59647a88d",
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;

public class Example {
    public static void main(String[] args) {
        PayabliApiClient client = PayabliApiClient.withCredentials("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
            .build()
        ;

        client.businesses().unlinkBusinessPerson("019fed1a-3d6e-75d3-a81e-cba3874b0a55", "01a0014d-ce1a-7110-9bac-c4c59647a88d");
    }
}
```

```csharp
using PayabliApi;
using System.Threading.Tasks;

public partial class Examples
{
    public async Task Example() {
        var client = new PayabliApiClient(
            clientId: "YOUR_CLIENT_ID",
            clientSecret: "YOUR_CLIENT_SECRET"
        );

        await client.Businesses.UnlinkBusinessPersonAsync(
            "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
            "01a0014d-ce1a-7110-9bac-c4c59647a88d"
        );
    }

}

```

```go
package example

import (
    context "context"

    client "github.com/payabli/sdk-go/client"
    option "github.com/payabli/sdk-go/option"
)

func do() {
    client := client.NewClient(
        option.WithClientCredentials(
            "YOUR_CLIENT_ID",
            "YOUR_CLIENT_SECRET",
        ),
    )
    client.Businesses.UnlinkBusinessPerson(
        context.TODO(),
        "019fed1a-3d6e-75d3-a81e-cba3874b0a55",
        "01a0014d-ce1a-7110-9bac-c4c59647a88d",
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;

$client = new PayabliClient(
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
);
$client->businesses->unlinkBusinessPerson(
    '019fed1a-3d6e-75d3-a81e-cba3874b0a55',
    '01a0014d-ce1a-7110-9bac-c4c59647a88d',
);

```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people/01a0014d-ce1a-7110-9bac-c4c59647a88d")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/v2/businesses/019fed1a-3d6e-75d3-a81e-cba3874b0a55/people/01a0014d-ce1a-7110-9bac-c4c59647a88d")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "DELETE"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

## Related resources

See these related resources to help you get the most out of Payabli.

#### References

* **[Required fields for boarding applications](/guides/pay-ops-boarding-kyc-fields-overview)** - Learn more about the Know Your Customer (KYC) and Know Your Business (KYB) fields required for merchant boarding
* **[Funding accounts](/guides/pay-ops-boarding-funding-accounts-overview)** - Understand who owns a paypoint's bank accounts and how usages decide which money each account handles

#### Related topics

* **[Intelligent boarding overview](/guides/pay-ops-boarding-object-model-overview)** - Understand the objects and application lifecycle behind intelligent boarding paypoints on Payabli
* **[Decision guide: Merchant boarding](/guides/pay-ops-boarding-decision)** - Choose how your platform boards merchants with intelligent boarding
* **[Manage people with the API](/guides/pay-ops-developer-people-manage)** - Learn how to create, read, update, and search the people behind a business with the Payabli API