Supplier master data
S/4HANA API_BUSINESS_PARTNER read surfaces for a supplier import: central, purchasing-org and company-code blocks, terms, partner functions, tax and identification numbers, addresses with communication data, and bank details. Scenario endpoints flip blocks, deletion flags and terms so an import can be tested end to end.
Base URL: https://mock-server.oscar-int.prc.re · Basic auth procureai / demo
1. Entity sets
All GET, flat (no $expand): join on the keys. Row counts are what this host serves now. Single reads use the key predicate, e.g. A_SupplierPurchasingOrg(Supplier='0001000007',PurchasingOrganization='1000').
| Entity set | Key | Rows |
|---|---|---|
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_Supplier | Supplier | 407 |
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_SupplierPurchasingOrg | Supplier, PurchasingOrganization | 813 |
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_SupplierCompany | Supplier, CompanyCode | 582 |
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_SupplierPartnerFunc | Supplier, PurchasingOrganization, SupplierSubrange, Plant, PartnerFunction, PartnerCounter | 1209 |
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartner | BusinessPartner | 462 |
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartnerTaxNumber | BusinessPartner, BPTaxType | 736 |
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BuPaIdentification | BusinessPartner, BPIdentificationType, BPIdentificationNumber | 579 |
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartnerAddress | BusinessPartner, AddressID | 545 |
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BuPaAddressUsage | BusinessPartner, ValidityEndDate, AddressUsage, AddressID | 545 |
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_AddressEmailAddress | AddressID, Person, OrdinalNumber | 562 |
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_AddressPhoneNumber | AddressID, Person, OrdinalNumber | 509 |
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_AddressHomePageURL | AddressID, Person, OrdinalNumber, ValidityStartDate, IsDefaultURLAddress | 207 |
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartnerBank | BusinessPartner, BankIdentification | 474 |
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BPContactToFuncAndDept | RelationshipNumber, BusinessPartnerCompany, BusinessPartnerPerson, ValidityEndDate | 261 |
Query options: $filter (eq/ne/gt/ge/lt/le, and/or, parentheses, startswith(), datetimeoffset'…'), $select, $top/$skip with d.__next, $inlinecount=allpages. Every row carries __metadata.
2. What varies
Blocks and deletion flags exist at every level, and time-dependent rows include expired ones, so an import that reads only the central flags or ignores ValidityEndDate visibly gets it wrong. Partner functions other than LF (supplier) are BA ordering address, RS invoicing party and WL goods supplier (EN: OA / PI / GS); some point at a different supplier.
| Entity set | $filter | Matched |
|---|---|---|
A_Supplier | PurchasingIsBlocked eq true | 22 / 407 |
A_Supplier | PostingIsBlocked eq true or PaymentIsBlockedForSupplier eq true | 22 / 407 |
A_Supplier | DeletionIndicator eq true | 18 / 407 |
A_SupplierPurchasingOrg | PurchasingIsBlockedForSupplier eq true | 56 / 813 |
A_SupplierPurchasingOrg | DeletionIndicator eq true | 46 / 813 |
A_SupplierCompany | SupplierIsBlockedForPosting eq true or DeletionIndicator eq true | 33 / 582 |
A_SupplierPartnerFunc | PartnerFunction ne 'LF' | 396 / 1209 |
A_BuPaAddressUsage | AddressUsage eq 'XXDEFAULT' and ValidityEndDate lt datetime'9999-12-31T00:00:00' | 57 / 545 |
A_BusinessPartnerBank | ValidityEndDate lt datetimeoffset'9999-12-31T00:00:00Z' | 67 / 474 |
3. Catalogue suppliers
Identifiers match the credit mock (/docs/credit-scoring), so a supplier imported from here resolves to the same Creditsafe or D&B subject. They start unblocked; use the scenarios below to block them.
| Supplier | VAT / register / DUNS | Purch. orgs | Company codes |
|---|---|---|---|
0001000001 CleanWorks Facility Supplies AG (cleanworks) | FR45812345678 · 812345678 | 1000, 4000 | 1000, 4000 |
0001000002 OfficePro Supplies AG (officepro) | GB098765432 · 09876543 | 1000, 2000 | 1000, 2000 |
0001000003 PrintMax Document Solutions GmbH (printmax) | FR12532123456 · 532123456 | 1000, 4000 | 1000, 4000 |
0001000004 SafeGuard Industrial Safety GmbH (safeguard) | DE834567890 · HRB 734567 | 1000 | 1000 |
0001000005 TechLine Systems GmbH (techline) | DE823456789 · HRB 723456 | 1000 | 1000 |
0001000006 WorkSpace Interiors GmbH (workspace) | 362241452 | 1000, 3000 | 1000, 3000 |
0001000007 Würth Industriebedarf GmbH (wurth) | DE812345678 · HRB 712345 | 1000 | 1000 |
4. Scenarios
Basic auth as above. supplier takes the number (padded or not) or a catalogue slug. Every change bumps A_Supplier.LastChangeDateTime (or sets it to an ISO changedAt), so LastChangeDateTime gt datetimeoffset'…' finds the supplier. Overrides persist in Postgres when DATABASE_URL is set.
| Endpoint | Body | Effect |
|---|---|---|
GET /api/scenarios/sap/suppliers | — | Current overrides, catalogue suppliers with their orgs and company codes |
POST /api/scenarios/sap/suppliers/block | {"supplier":"wurth","scope":"central","kind":"purchasing","reason":"01"} | scope central (kind purchasing | posting | payment), purchasingOrg (+ purchasingOrganization), companyCode (+ companyCode; kind posting | payment) |
POST /api/scenarios/sap/suppliers/unblock | {"supplier":"wurth"} | Same body as /block; clears the flag |
POST /api/scenarios/sap/suppliers/mark-deletion | {"supplier":"techline","scope":"purchasingOrg","purchasingOrganization":"1000"} | DeletionIndicator centrally, per purchasing org or per company code |
POST /api/scenarios/sap/suppliers/clear-deletion | {"supplier":"techline"} | Clears it again |
POST /api/scenarios/sap/suppliers/terms | {"supplier":"wurth","purchasingOrganization":"1000","terms":{"PaymentTerms":"ZB05"}} | Changes A_SupplierPurchasingOrg terms (currency, payment terms, Incoterms, IV flags, …) |
POST /api/scenarios/sap/suppliers/reset | — | Drops every override |
5. A_Supplier
| Field | Type | Example |
|---|---|---|
BusinessPartner | string | 0001000001 |
Supplier | string | 0001000001 |
SupplierName | string | CleanWorks Facility Supplies AG |
SupplierFullName | string | CleanWorks Facility Supplies AG |
PurchasingIsBlocked | boolean | false |
DeletionIndicator | boolean | false |
SupplierAccountGroup | string | ZLIE |
PostingIsBlocked | boolean | false |
PaymentIsBlockedForSupplier | boolean | false |
SupplierProcurementBlock | string | (empty) |
VATRegistration | string | FR45812345678 |
TaxNumber1 | string | 812345678 |
TaxNumber2 | string | (empty) |
TaxNumber3 | string | (empty) |
TaxNumber4 | string | (empty) |
TaxNumber5 | string | (empty) |
SupplierCorporateGroup | string | (empty) |
Language | string | FR |
Country | string | FR |
Industry | string | (empty) |
IsNaturalPerson | string | (empty) |
CreationDate | string | /Date(1705276800000)/ |
LastChangeDateTime | string | /Date(1780272000000+0000)/ |
6. A_SupplierPurchasingOrg
| Field | Type | Example |
|---|---|---|
Supplier | string | 0001000001 |
PurchasingOrganization | string | 1000 |
PurchaseOrderCurrency | string | EUR |
PaymentTerms | string | 0001 |
IncotermsClassification | string | DDP |
IncotermsVersion | string | 2020 |
IncotermsTransferLocation | string | Frankfurt am Main |
IncotermsLocation1 | string | Frankfurt am Main |
IncotermsLocation2 | string | (empty) |
PurchasingIsBlockedForSupplier | boolean | false |
DeletionIndicator | boolean | false |
InvoiceIsGoodsReceiptBased | boolean | true |
InvoiceIsMMServiceEntryBased | boolean | false |
EvaldReceiptSettlementIsActive | boolean | false |
SupplierConfirmationControlKey | string | (empty) |
IsOrderAcknRqd | boolean | false |
MinimumOrderAmount | string | 0.00 |
PurchasingGroup | string | 003 |
SupplierABCClassificationCode | string | (empty) |
MaterialPlannedDeliveryDurn | string | 17 |
CalculationSchemaGroupCode | string | 01 |
PurOrdAutoGenerationIsAllowed | boolean | false |
ShippingCondition | string | (empty) |
SupplierRespSalesPersonName | string | (empty) |
SupplierPhoneNumber | string | +33 4 72 10 20 30 |
7. A_SupplierCompany
| Field | Type | Example |
|---|---|---|
Supplier | string | 0001000001 |
CompanyCode | string | 1000 |
SupplierIsBlockedForPosting | boolean | false |
DeletionIndicator | boolean | false |
PaymentTerms | string | 0001 |
PaymentBlockingReason | string | (empty) |
PaymentMethodsList | string | TU |
ReconciliationAccount | string | 0021200000 |
HouseBank | string | COMM1 |
AccountingClerk | string | 02 |
APARToleranceGroup | string | (empty) |
IsToBeCheckedForDuplicates | boolean | true |
CashPlanningGroup | string | A2 |
AlternativePayeeAccountNumber | string | (empty) |
LayoutSortingRule | string | 009 |
SupplierClerk | string | (empty) |
8. A_SupplierPartnerFunc
| Field | Type | Example |
|---|---|---|
Supplier | string | 0001000001 |
PurchasingOrganization | string | 1000 |
SupplierSubrange | string | (empty) |
Plant | string | (empty) |
PartnerFunction | string | LF |
PartnerCounter | string | 000 |
DefaultPartner | boolean | true |
ReferenceSupplier | string | 0001000001 |
CreationDate | string | /Date(1705276800000)/ |
CreatedByUser | string | MIGRATION |
AuthorizationGroup | string | (empty) |
9. A_BusinessPartner
| Field | Type | Example |
|---|---|---|
BusinessPartner | string | 0001000001 |
BusinessPartnerCategory | string | 2 |
BusinessPartnerFullName | string | CleanWorks Facility Supplies AG |
BusinessPartnerGrouping | string | BP02 |
BusinessPartnerName | string | CleanWorks Facility Supplies AG |
FirstName | string | (empty) |
LastName | string | (empty) |
OrganizationBPName1 | string | CleanWorks Facility Supplies AG |
OrganizationBPName2 | string | (empty) |
OrganizationBPName3 | string | (empty) |
OrganizationBPName4 | string | (empty) |
SearchTerm1 | string | CLEANWORKS |
SearchTerm2 | string | LYON |
LegalForm | string | SA |
Language | string | FR |
CorrespondenceLanguage | string | FR |
OrganizationFoundationDate | string | /Date(1389916800000)/ |
Industry | string | (empty) |
IsNaturalPerson | string | (empty) |
BusinessPartnerIsBlocked | boolean | false |
IsMarkedForArchiving | boolean | false |
Supplier | string | 0001000001 |
Customer | string | (empty) |
CreationDate | string | /Date(1705276800000)/ |
LastChangeDate | string | /Date(1780272000000)/ |
10. A_BusinessPartnerTaxNumber
| Field | Type | Example |
|---|---|---|
BusinessPartner | string | 0001000001 |
BPTaxType | string | FR0 |
BPTaxNumber | string | FR45812345678 |
BPTaxLongNumber | string | (empty) |
AuthorizationGroup | string | (empty) |
11. A_BuPaIdentification
| Field | Type | Example |
|---|---|---|
BusinessPartner | string | 0001000001 |
BPIdentificationType | string | BUP002 |
BPIdentificationNumber | string | 812345678 |
BPIdnNmbrIssuingInstitute | string | RCS Lyon |
BPIdentificationEntryDate | string | /Date(1705276800000)/ |
Country | string | FR |
Region | string | (empty) |
ValidityStartDate | string | /Date(1705276800000)/ |
ValidityEndDate | string | /Date(253402214400000)/ |
AuthorizationGroup | string | (empty) |
12. A_BusinessPartnerAddress
| Field | Type | Example |
|---|---|---|
BusinessPartner | string | 0001000001 |
AddressID | string | 20001 |
ValidityStartDate | string | /Date(1705276800000)/ |
ValidityEndDate | string | /Date(253402214400000)/ |
AuthorizationGroup | string | (empty) |
AddressTimeZone | string | CET |
CareOfName | string | (empty) |
CityName | string | Lyon |
Country | string | FR |
District | string | (empty) |
FullName | string | CleanWorks Facility Supplies AG |
HouseNumber | string | 8 |
Language | string | FR |
POBox | string | (empty) |
POBoxPostalCode | string | (empty) |
PostalCode | string | 69007 |
PrfrdCommMediumType | string | INT |
Region | string | (empty) |
StreetName | string | Avenue des Champs |
TaxJurisdiction | string | (empty) |
13. A_BuPaAddressUsage
| Field | Type | Example |
|---|---|---|
BusinessPartner | string | 0001000001 |
ValidityEndDate | string | /Date(253402214400000)/ |
AddressUsage | string | XXDEFAULT |
AddressID | string | 20001 |
ValidityStartDate | string | /Date(1705276800000)/ |
StandardUsage | boolean | true |
AuthorizationGroup | string | (empty) |
14. A_AddressEmailAddress
| Field | Type | Example |
|---|---|---|
AddressID | string | 20001 |
Person | string | (empty) |
OrdinalNumber | string | 1 |
IsDefaultEmailAddress | boolean | true |
EmailAddress | string | orders@cleanworks.example |
SearchEmailAddress | string | ORDERS@CLEANWORKS.EX |
AddressCommunicationRemarkText | string | (empty) |
15. A_AddressPhoneNumber
| Field | Type | Example |
|---|---|---|
AddressID | string | 20001 |
Person | string | (empty) |
OrdinalNumber | string | 1 |
DestinationLocationCountry | string | FR |
IsDefaultPhoneNumber | boolean | true |
PhoneNumber | string | 04 72 10 20 30 |
PhoneNumberExtension | string | (empty) |
InternationalPhoneNumber | string | +33472102030 |
PhoneNumberType | string | 1 |
AddressCommunicationRemarkText | string | (empty) |
16. A_AddressHomePageURL
| Field | Type | Example |
|---|---|---|
AddressID | string | 20001 |
Person | string | (empty) |
OrdinalNumber | string | 1 |
ValidityStartDate | string | /Date(1705276800000)/ |
IsDefaultURLAddress | boolean | true |
SearchURLAddress | string | WWW.CLEANWORKS.EXAMPLE |
AddressCommunicationRemarkText | string | (empty) |
URLFieldLength | number | 30 |
WebsiteURL | string | https://www.cleanworks.example |
17. A_BusinessPartnerBank
| Field | Type | Example |
|---|---|---|
BusinessPartner | string | 0001000001 |
BankIdentification | string | 0001 |
BankCountryKey | string | FR |
BankName | string | BNP Paribas |
BankNumber | string | 30004 |
SWIFTCode | string | BNPAFRPPXXX |
BankControlKey | string | (empty) |
BankAccountHolderName | string | CleanWorks Facility Supplies AG |
BankAccountName | string | (empty) |
ValidityStartDate | string | /Date(1705276800000+0000)/ |
ValidityEndDate | string | /Date(253402214400000+0000)/ |
IBAN | string | FR2330004000013167255153956 |
IBANValidityStartDate | string | /Date(1705276800000)/ |
BankAccount | string | 31672551539 |
BankAccountReferenceText | string | (empty) |
CollectionAuthInd | boolean | false |
CityName | string | Paris |
AuthorizationGroup | string | (empty) |
18. A_BPContactToFuncAndDept
| Field | Type | Example |
|---|---|---|
RelationshipNumber | string | 11000 |
BusinessPartnerCompany | string | 100001 |
BusinessPartnerPerson | string | 8000089000 |
ContactPersonFunction | string | M3 |
ContactPersonDepartment | string | 0001 |
EmailAddress | string | anja.dvorak@brenntag.example |
PhoneNumber | string | 021/100000 |
ValidityEndDate | string | /Date(253402214400000)/ |
ContactPersonAuthorityType | string | (empty) |
ContactPersonDepartmentName | string | (empty) |
ContactPersonFunctionName | string | (empty) |
ContactPersonRemarkText | string | (empty) |
ContactPersonVIPType | string | (empty) |
FaxNumber | string | (empty) |
FaxNumberExtension | string | (empty) |
PhoneNumberExtension | string | (empty) |
RelationshipCategory | string | BUR001 |
OpenAPI: specs/sap-business-partner-v2.yaml. Inspect calls against this host in /debug/requests.