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

# SAP Read Supplier

> Reads a supplier's master data, including the company-code terms and the purchasing-organization data.

Reads a supplier from SAP by business partner ID, following the same shape as `read_sap_customer`. Display name **"SAP Read Supplier"**. Off by default.

The business partner is returned with its supplier view expanded:

* `to_SupplierCompany` — per company code: payment terms, payment blocking reason, reconciliation account, posting block.
* `to_SupplierPurchasingOrg` — per purchasing organization: payment terms, incoterms and order currency.

<Warning>
  This view does not expose an ERS (self-billing) flag, whatever its name suggests. Whether a line is settled by self-billing is a property of the **purchase order item** — read `is_ers_allowed` from `sap_read_purchase_order`. Reading its absence here as "not ERS" sends an invoice to a supplier SAP is already paying automatically.
</Warning>

* `to_BusinessPartnerAddress` with email.

## Authentication and enablement

Requires a workspace SAP integration. `base_url` and `authorization` are injected. Enable the tool and bind the integration.

## Why the company code matters

Payment terms differ by company code for the same supplier — one real supplier is NET10 in company code 3000 and NET30 in 3100. An agent computing a due date has to read the terms for the company code the invoice is being booked in, not the first row returned.

## Inputs

| Field | Required | Notes |
| - | - | - |
| `business_partner_id` | yes | The supplier's business partner number. |

## Outputs

The business partner payload with the navigations above expanded, reduced to an agreed field set.

SAP returns around seventy fields on `A_BusinessPartner` alone, most of them empty for a supplier — personal-name parts, archiving flags, a `__metadata` block per entity. The tool keeps an allowlist and drops the rest, so a supplier read costs the agent a few hundred bytes rather than several kilobytes of empty strings. The allowlist lives in `backend/internal/tools/sap/supplier_response_fields.go`; SAP's `{"results": [...]}` envelope is preserved, so the shape is unchanged apart from the fields removed.

A field SAP did not send stays absent rather than appearing as `null`, so "not returned" and "returned empty" remain distinguishable.

## Limits and errors

* A business partner that is not a supplier returns successfully with an empty supplier view.
* An unknown ID returns SAP's own not-found error.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.