> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lendflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dun & Bradstreet Business Credit

## Dun & Bradstreet Business Credit

Use the **Dun & Bradstreet Business Credit** Workflow Builder block to match a business to a D‑U‑N‑S Number and retrieve company, financial-strength, payment, and trade-risk information.

## Services

The block ID is `dnb_business_credit`. It is available for business entities and is related to these exact service IDs:

| Service | Service ID | Provider block requested | Dependency |
| - | - | - | - |
| Company Entity Resolution (Level 1) | `dnb_cer_l1` | The best candidate from D\&B business match | Runs D\&B Business Match and uses the first returned candidate. |
| Company Information (Level 2) | `dnb_ci_l2` | `companyinfo_L2_v1` | Requires a D‑U‑N‑S Number. |
| Payment Insights (Level 3) | `dnb_pi_l3` | `paymentinsight_L3_v1` | Requires a D‑U‑N‑S Number. |
| Financial Strength Insights (Level 2) | `dnb_fi_l2` | `financialstrengthinsight_L2_v1` | Requires a D‑U‑N‑S Number. |
| Financial Strength Insights (Level 3) | `dnb_fi_l3` | `financialstrengthinsight_L3_v1` | Requires a D‑U‑N‑S Number. |
| Financial Strength Insights (Level 4) | `dnb_fi_l4` | `financialstrengthinsight_L4_v1` | Requires a D‑U‑N‑S Number. |
| Derived Trade Insights (Level 1) | `dnb_dti_l1` | `dtri_L1_v1` | Requires a D‑U‑N‑S Number. |

## Requirements

| Application field | Requirement | Notes |
| - | - | - |
| Existing D‑U‑N‑S Number | Conditional | Required unless automatic business matching is used. |
| Business legal name | Conditional | Required for automatic matching when no D‑U‑N‑S Number is stored. |
| Business country | Conditional | Required for automatic matching when no D‑U‑N‑S Number is stored; use a two-letter country code. |
| Business street, address line 2, city, state, and postal code | Optional | Improves match quality; state and postal code must be valid for the selected country. |
| Business telephone and email | Optional | Improves match quality. |
| EIN | Optional | Improves matching for a US business. |
| Canadian business number | Optional | Improves matching for a Canadian business. |

When automatic matching is used, Lendflow selects the first candidate and stores its D‑U‑N‑S Number. A dependent service cannot run if matching returns no candidate or no D‑U‑N‑S Number.

## API flow

1. Create or update an application with the matching fields above, or provide a previously resolved D‑U‑N‑S Number.
2. Publish a Data Orchestration template that runs the required service.
3. Call [Execute Data Orchestration](/api-reference/data-orchestration/execute-data-orchestration):

```json theme={"system"}
{
  "application_id": "00000000-0000-0000-0000-000000000000",
  "template_id": "11111111-1111-1111-1111-111111111111"
}
```

The endpoint schedules asynchronous execution and returns a Data Orchestration log resource. A successful scheduling response does not mean the provider request has finished.

4. Read the execution log with [Get Data Orchestration Log](/api-reference/data-orchestration/get-data-orchestration-log) at `GET /api/applications/{application_id}/data_orchestration_logs/{log_id}`.
5. Retrieve provider responses with [Get Commercial Data](/api-reference/workflow-management/get-commercial-data) at `GET /api/applications/{application_id}/commercial_data`. To limit the response, repeat the `services[]` query parameter with exact service IDs, for example:

```text theme={"system"}
GET /api/applications/{application_id}/commercial_data?services[]=dnb_fi_l4&services[]=dnb_pi_l3
```

Responses are under `data.commercial_data.dnb`; stored request payloads are under `data.request_data.dnb`; and latest service messages are under `data.statuses.dnb`.

## Data Orchestration availability

The **Business Credit** Data Orchestration category exposes conditions for Financial Strength Insights Levels 2–4, Payment Insights, and Derived Trade Insights. Company Information conditions are exposed in the **KYB** category. Company Entity Resolution contributes the D\&B business-match presence condition.

Add the service before a condition that reads its result. Report conditions are synchronous prerequisites from the workflow's perspective: if no stored report exists, the condition does not have a value to evaluate. Each supported report also provides a **Has Unexpected Error?** condition based on its latest finished underwriting attempt.

## What the services return

| Result area | Commercial-data path | What it contains |
| - | - | - |
| Entity resolution | `data.commercial_data.dnb.cer_l1` | The selected match candidate, including organization identity and match quality. |
| Company information | `data.commercial_data.dnb.ci_l2` | Organization identity, registration, industry, employee, revenue, and corporate-linkage data when available. |
| Payment insights | `data.commercial_data.dnb.pi_l3` | PAYDEX, summarized trade experiences, past-due amounts, and industry payment norms. |
| Financial strength L2 | `data.commercial_data.dnb.fi_l2` | Core delinquency, failure, standard-rating, layoff, and emerging-market risk indicators. |
| Financial strength L3 | `data.commercial_data.dnb.fi_l3` | L2 areas plus raw scores and risk-incidence measures. |
| Financial strength L4 | `data.commercial_data.dnb.fi_l4` | L3 areas plus credit-limit, viability, and portfolio-comparison measures. |
| Derived trade insights | `data.commercial_data.dnb.dti_l1` | Three- and twelve-month PAYDEX scores with account and supplier coverage. |

## Representative response

This shortened, sanitized example shows the response envelope and representative result areas. The complete provider payload varies by service and data availability.

```json theme={"system"}
{
  "data": {
    "statuses": {
      "dnb": {
        "fi_l4": "Success",
        "pi_l3": "Success",
        "dti_l1": "Success"
      }
    },
    "commercial_data": {
      "dnb": {
        "fi_l4": {
          "organization": {
            "duns": "123456789",
            "primaryName": "Example Manufacturing LLC",
            "dnbAssessment": {
              "creditLimitRecommendation": {
                "maximumRecommendedLimit": { "value": 50000, "currency": "USD" }
              }
            }
          }
        },
        "pi_l3": {
          "organization": {
            "businessTrading": [
              {
                "currency": "USD",
                "summary": [{ "paydexScore": 80, "totalExperiencesCount": 12 }]
              }
            ]
          }
        },
        "dti_l1": {
          "organization": {
            "dtri": {
              "currentPaydex": {
                "threeMonthsDataCoverage": { "paydexScore": 78 },
                "twelveMonthsDataCoverage": { "paydexScore": 80 }
              }
            }
          }
        }
      }
    }
  }
}
```

## Key response attributes

### Identity and request status

| Attribute | Type | Meaning | Possible values or units | When returned |
| - | - | - | - | - |
| `organization.duns` | string | D\&B's organization identifier. | Nine-digit D‑U‑N‑S Number. | When D\&B resolves an organization. |
| `organization.primaryName` | string | Primary organization name in D\&B. | Text. | When present in the selected data block. |
| `blockStatus[].status` | string | Status of each provider block. | Provider status such as `ok`. | In D\&B data-block responses. |
| `blockStatus[].reason` | string or null | Provider explanation for a block status. | Text or `null`. | `null` when D\&B has no reason to report. |

### Financial strength

| Attribute | Type | Meaning | Possible values or units | When returned |
| - | - | - | - | - |
| `dnbAssessment.creditLimitRecommendation.maximumRecommendedLimit.value` | number or null | D\&B's maximum recommended credit exposure. | Monetary amount; currency is defined alongside the value. | Financial Strength L4 when available. |
| Delinquency and failure scores | number or null | Relative risk of severe late payment or business failure. | Raw score, class score, national percentile, or percentage depending on the field. | By selected Financial Strength level and data coverage. |
| Viability and portfolio-comparison measures | number or null | L4 measures of viability and peer-relative risk. | Class score, bad-rate percentage, incidence percentage, or risk level. | Financial Strength L4 when available. |

### Payment and trade

| Attribute | Type | Meaning | Possible values or units | When returned |
| - | - | - | - | - |
| `businessTrading[].summary[].paydexScore` | number or null | Payment timeliness based on reported trade experiences. | `81–100` early, `80` on time, `1–79` late, `0` 180+ days late. | Payment Insights when sufficient trade data exists. |
| `businessTrading[].summary[].totalExperiencesCount` | number or null | Number of reported payment experiences. | Count. | Payment Insights when available. |
| `businessTrading[].summary[].totalPastDueAmount` | number or null | Amount beyond agreed payment terms. | Monetary amount in `businessTrading[].currency`. | Payment Insights when reported. |
| `dtri.currentPaydex.threeMonthsDataCoverage.paydexScore` | number or null | PAYDEX calculated from three months of data. | `0–100`. | Derived Trade Insights when sufficient data exists. |
| `dtri.currentPaydex.twelveMonthsDataCoverage.paydexScore` | number or null | PAYDEX calculated from twelve months of data. | `0–100`. | Derived Trade Insights when sufficient data exists. |

## Null and missing values

* A successful request can contain `null` fields when D\&B does not have enough source data for that measure.
* Arrays can be empty and optional objects can be absent. Treat missing and `null` as unavailable, not as zero or false.
* Commercial-data keys for requested filters are present even when their latest stored response is `null`.
* A report can contain usable data while an individual D\&B block reports a non-`ok` status; inspect `blockStatus` before evaluating fields.

## Statuses and errors

| Signal | Meaning |
| - | - |
| `Not yet started` | No service log exists for that service. |
| `Started` | The asynchronous provider job began. |
| `Success` | The job completed without an application-level exception. Inspect `blockStatus` and the payload for field-level availability. |
| Failure message | Authentication, validation, no-match, or provider failure. The latest message is returned in `data.statuses.dnb`. |

Common failures include a missing legal name or country during match, invalid country-specific state or postal code, no match candidate, no D‑U‑N‑S Number, inability to obtain a D\&B token, and a provider `error.errorMessage`. Provider-unavailable failures may be retried by the job; other failures are recorded for the service.

## FAQ

<AccordionGroup>
  <Accordion title="Do I need to supply a D‑U‑N‑S Number?">
    No. If it is absent, Lendflow runs D\&B Business Match from the legal name
    and country, stores the first candidate's D‑U‑N‑S Number, and then requests
    the selected report. Supplying a verified D‑U‑N‑S Number avoids that lookup
    for data-block services.
  </Accordion>

  <Accordion title="Are the seven services one combined report?">
    No. They are separate service IDs and provider block requests. Select only
    the services required by your workflow and retrieve each result at its own
    `data.commercial_data.dnb` path.
  </Accordion>

  <Accordion title="Does a null PAYDEX score mean zero?">
    No. `null` or a missing field means the measure was not returned. A numeric
    score of `0` is a real PAYDEX value indicating payment 180 or more days
    late.
  </Accordion>

  <Accordion title="Where can I use D&B results in Data Orchestration?">
    Financial Strength, Payment Insights, and Derived Trade conditions are in
    **Business Credit**. Company Information conditions are in **KYB**.
    Entity-resolution output supports the D\&B match-presence condition.
  </Accordion>
</AccordionGroup>
