Creating accounts

Accounts

The Accounts resource represents the core entity in Due.
An account can be:

  • Business – registered company, merchant, or platform
  • Individual – freelancer, sole trader, or personal account

Every payment, balance, and compliance flow in Due is linked to an account.

When you create an account, you immediately get:

  • KYC/KYB link – to verify identity or company details
  • Terms of Service link – for accepting the ToS & Privacy Policy before transacting

Core Concepts

  1. Account Types

    • business → For companies and legal entities.
    • individual → For natural persons.
  2. Country Codes

    • Must follow ISO 3166-1 alpha-2 (e.g., BR, GB, US).
  3. Categories

    • Must be selected from Due’s allowed list (e.g., accounting_bookkeeping, ecommerce, consulting).
    • Lists differ for business and individual accounts — request these before integration.
  4. KYC / KYB Process

    • Response includes kyc.link — append it to the appropriate base URL with app.* prefix :

      • Sandbox → https://app.sandbox.due.network
      • Production → https://app.due.network
    • Example:

      https://app.due.network/api/bp/redirect/kyc/sumsub/sumsub_xXxExampleId12345
  5. Terms of Service Acceptance

    • Response includes tos.link.

    • Append to the base URL and optionally add a redirect:

      https://app.due.network/tos/ta_exampletosid12345?redirect=https%3A%2F%2Fyourapp.com%2Fonboarding%2Fsuccess
  6. KYC Status Values

    • pending – Not yet reviewed.
    • passed – Approved.
    • resubmission_required – Needs additional documentation.
    • failed – Verification failed.
  7. Authentication

    • All calls require:

      Authorization: Bearer your_api_key

Create Account

JSON

curl --request POST \
  --url https://api.due.network/v1/accounts \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "business",
    "name": "Rio Co",
    "email": "[email protected]",
    "country": "BR",
    "category": "accounting_bookkeeping"
  }'

Parameters

FieldTypeRequiredDescription
typestringAllowed values: business, individual.
namestringLegal name of the account holder or company.
emailstringContact email address.
countrystringISO-2 country code.
categorystringCategory from Due’s allowed list.

Example Response – Production (Redacted & Randomised)

{
  "id": "acct_XyZpT7HhAJFq12345",
  "type": "business",
  "name": "Rio Co.",
  "email": "[email protected]",
  "country": "BR",
  "category": "accounting_bookkeeping",
  "status": "active",
  "statusLog": [
    {
      "status": "onboarding",
      "timestamp": "2025-08-10T09:21:06.000Z"
    },
    {
      "status": "active",
      "timestamp": "2025-08-10T09:22:13.000Z"
    }
  ],
  "kyc": {
    "status": "passed",
    "link": "/api/bp/redirect/kyc/sumsub/sumsub_ExAmPlE123456"
  },
  "tos": {
    "id": "ta_AbCdEf123456",
    "entityName": "Due Brasil Ltda",
    "status": "accepted",
    "link": "/tos/ta_AbCdEf123456",
    "documentLinks": {
      "tos": "https://****.s3.eu-west-2.amazonaws.com/documents/tos/TOS.pdf",
      "privacyPolicy": "https://****.s3.eu-west-2.amazonaws.com/documents/tos/PP.pdf"
    },
    "acceptedAt": "2025-08-10T09:22:13.000Z"
  }
}

Get Account by ID

Retrieves full account details, including status history, KYC status, and ToS acceptance.

curl --request GET \
  --url https://api.due.network/v1/accounts/acct_XyZpT7HhAJFq12345 \
  -H "Authorization: Bearer your_api_key"

Example Response

{
  "id": "acct_XyZpT7HhAJFq12345",
  "type": "business",
  "name": "Rio Co.",
  "email": "[email protected]",
  "country": "BR",
  "category": "accounting_bookkeeping",
  "status": "active",
  "statusLog": [
    {
      "status": "onboarding",
      "timestamp": "2025-08-10T09:21:06.000Z"
    },
    {
      "status": "active",
      "timestamp": "2025-08-10T09:22:13.000Z"
    }
  ],
  "kyc": {
    "status": "passed",
    "link": "/api/bp/redirect/kyc/sumsub/sumsub_ExAmPlE123456"
  },
  "tos": {
    "id": "ta_AbCdEf123456",
    "entityName": "Due Brasil Ltda",
    "status": "accepted",
    "link": "/tos/ta_AbCdEf123456",
    "documentLinks": {
      "tos": "https://****.s3.eu-west-2.amazonaws.com/documents/tos/TOS.pdf",
      "privacyPolicy": "https://****.s3.eu-west-2.amazonaws.com/documents/tos/PP.pdf"
    },
    "acceptedAt": "2025-08-10T09:22:13.000Z"
  }
}

List Accounts

Lists all accounts linked to your API key.

# List active accounts
curl -H "Authorization: Bearer your_api_key" \
https://api.due.network/v1/accounts

# List all accounts, including inactive
curl -H "Authorization: Bearer your_api_key" \
"https://api.due.network/v1/accounts

Example Response

[
  {
    "id": "acct_XyZpT7HhAJFq12345",
    "type": "business",
    "name": "Rio Co.",
    "email": "[email protected]",
    "country": "BR",
    "status": "active"
  },
  {
    "id": "acct_QwErTyUiOp123456",
    "type": "individual",
    "name": "Jane Doe",
    "email": "[email protected]",
    "country": "US",
    "status": "onboarding"
  }
]

Best Practices

  • Create accounts early in your onboarding flow so users can complete KYC and accept ToS without delay.
  • Always store theaccount.id — all transactions reference it.
  • Poll or subscribe to webhooks for KYC status updates.
  • Use the redirect query parameter on ToS URLs to send users back into your application post-acceptance.