Business Partner Fields
The BusinessPartners master fields in SAP B1 โ CardCode, CardType (customer/supplier/lead), currency, payment terms, credit limit, addresses, and contacts.
A Business Partner (BP) is a customer, a vendor/supplier, or a lead. It is one of
the two pillars of master data (the other is the Item, see the Item Fields
reference), and every sales and purchasing document requires one โ the header’s
CardCode points here.
In the Service Layer the BP master is the BusinessPartners entity (object code
oBusinessPartners, 2). Most implementation problems trace back to bad BP data:
duplicates, the wrong type, missing addresses, or no credit limit. The fields below
are what a document draws its defaults from.
Identity and type
| Field | Type | Meaning | Required? |
|---|---|---|---|
CardCode | Edm.String | Unique identifier, max 15 chars. The primary key used everywhere as CardCode. | Yes |
CardType | SAPB1.BoCardTypes | Customer / Supplier / Lead โ see the C/S/L meaning below. | Yes |
CardName | Edm.String | Display name of the partner. | Yes |
CardForeignName | Edm.String | Name in a foreign/secondary language. | No |
GroupCode | Edm.Int32 | Classification group (BusinessPartnerGroups) for reporting and G/L determination. | No |
FederalTaxID | Edm.String | Tax registration number (VAT ID / EIN). | No |
The C / S / L type meaning
CardType is the field that decides what a partner is, and getting it wrong
(e.g. a supplier created as a customer) is a classic data error that cannot be
changed once the partner has transactions. The three values:
| CardType | Letter | Meaning |
|---|---|---|
cCustomer | C | A customer โ someone you sell to. Appears on sales documents (quotation, order, delivery, A/R invoice). Posts to the A/R control account. |
cSupplier | S | A supplier / vendor โ someone you buy from. Appears on purchasing documents (PO, GRPO, A/P invoice). Posts to the A/P control account. |
cLid | L | A lead โ a prospect not yet a customer. Can appear only on quotations/opportunities; must be converted to a customer before an order can bill it. |
(cLid is the internal enum name for “lead”; the letter on the SAP form is L.)
Financial terms
These fields set the commercial defaults that flow onto every document raised against the partner. Getting them wrong is a cash-flow and risk problem, not just a data one.
| Field | Type | Meaning | Required? |
|---|---|---|---|
Currency | Edm.String | Default transaction currency. ## denotes an “all currencies” BP. | No |
PriceListNum | Edm.Int32 | Default price list applied when pricing document lines. | No |
PayTermsGrpCode | Edm.Int32 | Payment terms group (net 30, 2/10 net 30, โฆ) โ drives DocDueDate. | No |
CreditLimit | Edm.Double | Maximum open balance allowed. Exceeding it can block/warn on new documents. | No |
MaxCommitment | Edm.Double | Maximum total commitment (open orders + open invoices). | No |
SalesPersonCode | Edm.Int32 | Default sales employee credited on the partner’s documents. | No |
DiscountPercent | Edm.Double | Default customer/supplier discount. | No |
VatLiable | SAPB1.BoVatStatus | Tax treatment (liable / exempt / EU). | No |
CurrentAccountBalance | Edm.Double | Current open balance (read-only). | Read-only |
A missing CreditLimit means the company takes on unlimited risk; the wrong
PayTermsGrpCode means invoices fall due at the wrong time.
Addresses
A BP can have many addresses โ several ship-to and several bill-to. On a document,
the header’s ShipToCode / PayToCode select which one to use. Addresses live in
the BPAddresses collection.
Field (on BPAddresses) | Type | Meaning |
|---|---|---|
AddressName | Edm.String | The address code/label (what ShipToCode/PayToCode reference). |
AddressType | SAPB1.BoAddressType | bo_ShipTo (delivery) or bo_BillTo (billing). |
Street | Edm.String | Street line. |
City | Edm.String | City. |
ZipCode | Edm.String | Postal code. |
State | Edm.String | State / province code. |
Country | Edm.String | Country code. |
A partner with no default addresses is a common cause of failed deliveries โ the document has nowhere to ship to or bill.
Contacts
Named people at the partner live in the ContactEmployees collection. The
header’s ContactPersonCode selects one for a given document.
Field (on ContactEmployees) | Type | Meaning |
|---|---|---|
Name | Edm.String | Contact’s name (the code referenced by ContactPersonCode). |
Phone1 | Edm.String | Primary phone. |
E_Mail | Edm.String | Email address. |
Position | Edm.String | Job title / role. |
Active | SAPB1.BoYesNoEnum | Whether the contact is still active. |
Common data problems
- Duplicate records โ the same customer created twice under different
CardCodes, splitting their history and balance. - Wrong
CardTypeโ a supplier created as a customer (or vice versa); it cannot be corrected after transactions exist. - Missing default addresses โ deliveries fail with nowhere to ship.
- No
CreditLimitโ unlimited credit exposure. - Wrong
PayTermsGrpCodeโ invoices due at the wrong time.
Discovering user-defined fields
BPs commonly carry UDFs (User-Defined Fields), which appear with a U_ prefix. The
BP table is OCRD; list its UDFs with:
GET /b1s/v1/UserFieldsMD?$filter=TableName eq 'OCRD'