SAP OData

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 setKeyRows
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_SupplierSupplier407
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_SupplierPurchasingOrgSupplier, PurchasingOrganization813
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_SupplierCompanySupplier, CompanyCode582
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_SupplierPartnerFuncSupplier, PurchasingOrganization, SupplierSubrange, Plant, PartnerFunction, PartnerCounter1209
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartnerBusinessPartner462
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartnerTaxNumberBusinessPartner, BPTaxType736
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BuPaIdentificationBusinessPartner, BPIdentificationType, BPIdentificationNumber579
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartnerAddressBusinessPartner, AddressID545
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BuPaAddressUsageBusinessPartner, ValidityEndDate, AddressUsage, AddressID545
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_AddressEmailAddressAddressID, Person, OrdinalNumber562
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_AddressPhoneNumberAddressID, Person, OrdinalNumber509
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_AddressHomePageURLAddressID, Person, OrdinalNumber, ValidityStartDate, IsDefaultURLAddress207
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartnerBankBusinessPartner, BankIdentification474
/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BPContactToFuncAndDeptRelationshipNumber, BusinessPartnerCompany, BusinessPartnerPerson, ValidityEndDate261

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$filterMatched
A_SupplierPurchasingIsBlocked eq true22 / 407
A_SupplierPostingIsBlocked eq true or PaymentIsBlockedForSupplier eq true22 / 407
A_SupplierDeletionIndicator eq true18 / 407
A_SupplierPurchasingOrgPurchasingIsBlockedForSupplier eq true56 / 813
A_SupplierPurchasingOrgDeletionIndicator eq true46 / 813
A_SupplierCompanySupplierIsBlockedForPosting eq true or DeletionIndicator eq true33 / 582
A_SupplierPartnerFuncPartnerFunction ne 'LF'396 / 1209
A_BuPaAddressUsageAddressUsage eq 'XXDEFAULT' and ValidityEndDate lt datetime'9999-12-31T00:00:00'57 / 545
A_BusinessPartnerBankValidityEndDate 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.

SupplierVAT / register / DUNSPurch. orgsCompany codes
0001000001 CleanWorks Facility Supplies AG (cleanworks)FR45812345678 · 8123456781000, 40001000, 4000
0001000002 OfficePro Supplies AG (officepro)GB098765432 · 098765431000, 20001000, 2000
0001000003 PrintMax Document Solutions GmbH (printmax)FR12532123456 · 5321234561000, 40001000, 4000
0001000004 SafeGuard Industrial Safety GmbH (safeguard)DE834567890 · HRB 73456710001000
0001000005 TechLine Systems GmbH (techline)DE823456789 · HRB 72345610001000
0001000006 WorkSpace Interiors GmbH (workspace)3622414521000, 30001000, 3000
0001000007 Würth Industriebedarf GmbH (wurth)DE812345678 · HRB 71234510001000

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.

EndpointBodyEffect
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

FieldTypeExample
BusinessPartnerstring0001000001
Supplierstring0001000001
SupplierNamestringCleanWorks Facility Supplies AG
SupplierFullNamestringCleanWorks Facility Supplies AG
PurchasingIsBlockedbooleanfalse
DeletionIndicatorbooleanfalse
SupplierAccountGroupstringZLIE
PostingIsBlockedbooleanfalse
PaymentIsBlockedForSupplierbooleanfalse
SupplierProcurementBlockstring(empty)
VATRegistrationstringFR45812345678
TaxNumber1string812345678
TaxNumber2string(empty)
TaxNumber3string(empty)
TaxNumber4string(empty)
TaxNumber5string(empty)
SupplierCorporateGroupstring(empty)
LanguagestringFR
CountrystringFR
Industrystring(empty)
IsNaturalPersonstring(empty)
CreationDatestring/Date(1705276800000)/
LastChangeDateTimestring/Date(1780272000000+0000)/

6. A_SupplierPurchasingOrg

FieldTypeExample
Supplierstring0001000001
PurchasingOrganizationstring1000
PurchaseOrderCurrencystringEUR
PaymentTermsstring0001
IncotermsClassificationstringDDP
IncotermsVersionstring2020
IncotermsTransferLocationstringFrankfurt am Main
IncotermsLocation1stringFrankfurt am Main
IncotermsLocation2string(empty)
PurchasingIsBlockedForSupplierbooleanfalse
DeletionIndicatorbooleanfalse
InvoiceIsGoodsReceiptBasedbooleantrue
InvoiceIsMMServiceEntryBasedbooleanfalse
EvaldReceiptSettlementIsActivebooleanfalse
SupplierConfirmationControlKeystring(empty)
IsOrderAcknRqdbooleanfalse
MinimumOrderAmountstring0.00
PurchasingGroupstring003
SupplierABCClassificationCodestring(empty)
MaterialPlannedDeliveryDurnstring17
CalculationSchemaGroupCodestring01
PurOrdAutoGenerationIsAllowedbooleanfalse
ShippingConditionstring(empty)
SupplierRespSalesPersonNamestring(empty)
SupplierPhoneNumberstring+33 4 72 10 20 30

7. A_SupplierCompany

FieldTypeExample
Supplierstring0001000001
CompanyCodestring1000
SupplierIsBlockedForPostingbooleanfalse
DeletionIndicatorbooleanfalse
PaymentTermsstring0001
PaymentBlockingReasonstring(empty)
PaymentMethodsListstringTU
ReconciliationAccountstring0021200000
HouseBankstringCOMM1
AccountingClerkstring02
APARToleranceGroupstring(empty)
IsToBeCheckedForDuplicatesbooleantrue
CashPlanningGroupstringA2
AlternativePayeeAccountNumberstring(empty)
LayoutSortingRulestring009
SupplierClerkstring(empty)

8. A_SupplierPartnerFunc

FieldTypeExample
Supplierstring0001000001
PurchasingOrganizationstring1000
SupplierSubrangestring(empty)
Plantstring(empty)
PartnerFunctionstringLF
PartnerCounterstring000
DefaultPartnerbooleantrue
ReferenceSupplierstring0001000001
CreationDatestring/Date(1705276800000)/
CreatedByUserstringMIGRATION
AuthorizationGroupstring(empty)

9. A_BusinessPartner

FieldTypeExample
BusinessPartnerstring0001000001
BusinessPartnerCategorystring2
BusinessPartnerFullNamestringCleanWorks Facility Supplies AG
BusinessPartnerGroupingstringBP02
BusinessPartnerNamestringCleanWorks Facility Supplies AG
FirstNamestring(empty)
LastNamestring(empty)
OrganizationBPName1stringCleanWorks Facility Supplies AG
OrganizationBPName2string(empty)
OrganizationBPName3string(empty)
OrganizationBPName4string(empty)
SearchTerm1stringCLEANWORKS
SearchTerm2stringLYON
LegalFormstringSA
LanguagestringFR
CorrespondenceLanguagestringFR
OrganizationFoundationDatestring/Date(1389916800000)/
Industrystring(empty)
IsNaturalPersonstring(empty)
BusinessPartnerIsBlockedbooleanfalse
IsMarkedForArchivingbooleanfalse
Supplierstring0001000001
Customerstring(empty)
CreationDatestring/Date(1705276800000)/
LastChangeDatestring/Date(1780272000000)/

10. A_BusinessPartnerTaxNumber

FieldTypeExample
BusinessPartnerstring0001000001
BPTaxTypestringFR0
BPTaxNumberstringFR45812345678
BPTaxLongNumberstring(empty)
AuthorizationGroupstring(empty)

11. A_BuPaIdentification

FieldTypeExample
BusinessPartnerstring0001000001
BPIdentificationTypestringBUP002
BPIdentificationNumberstring812345678
BPIdnNmbrIssuingInstitutestringRCS Lyon
BPIdentificationEntryDatestring/Date(1705276800000)/
CountrystringFR
Regionstring(empty)
ValidityStartDatestring/Date(1705276800000)/
ValidityEndDatestring/Date(253402214400000)/
AuthorizationGroupstring(empty)

12. A_BusinessPartnerAddress

FieldTypeExample
BusinessPartnerstring0001000001
AddressIDstring20001
ValidityStartDatestring/Date(1705276800000)/
ValidityEndDatestring/Date(253402214400000)/
AuthorizationGroupstring(empty)
AddressTimeZonestringCET
CareOfNamestring(empty)
CityNamestringLyon
CountrystringFR
Districtstring(empty)
FullNamestringCleanWorks Facility Supplies AG
HouseNumberstring8
LanguagestringFR
POBoxstring(empty)
POBoxPostalCodestring(empty)
PostalCodestring69007
PrfrdCommMediumTypestringINT
Regionstring(empty)
StreetNamestringAvenue des Champs
TaxJurisdictionstring(empty)

13. A_BuPaAddressUsage

FieldTypeExample
BusinessPartnerstring0001000001
ValidityEndDatestring/Date(253402214400000)/
AddressUsagestringXXDEFAULT
AddressIDstring20001
ValidityStartDatestring/Date(1705276800000)/
StandardUsagebooleantrue
AuthorizationGroupstring(empty)

14. A_AddressEmailAddress

FieldTypeExample
AddressIDstring20001
Personstring(empty)
OrdinalNumberstring1
IsDefaultEmailAddressbooleantrue
EmailAddressstringorders@cleanworks.example
SearchEmailAddressstringORDERS@CLEANWORKS.EX
AddressCommunicationRemarkTextstring(empty)

15. A_AddressPhoneNumber

FieldTypeExample
AddressIDstring20001
Personstring(empty)
OrdinalNumberstring1
DestinationLocationCountrystringFR
IsDefaultPhoneNumberbooleantrue
PhoneNumberstring04 72 10 20 30
PhoneNumberExtensionstring(empty)
InternationalPhoneNumberstring+33472102030
PhoneNumberTypestring1
AddressCommunicationRemarkTextstring(empty)

16. A_AddressHomePageURL

FieldTypeExample
AddressIDstring20001
Personstring(empty)
OrdinalNumberstring1
ValidityStartDatestring/Date(1705276800000)/
IsDefaultURLAddressbooleantrue
SearchURLAddressstringWWW.CLEANWORKS.EXAMPLE
AddressCommunicationRemarkTextstring(empty)
URLFieldLengthnumber30
WebsiteURLstringhttps://www.cleanworks.example

17. A_BusinessPartnerBank

FieldTypeExample
BusinessPartnerstring0001000001
BankIdentificationstring0001
BankCountryKeystringFR
BankNamestringBNP Paribas
BankNumberstring30004
SWIFTCodestringBNPAFRPPXXX
BankControlKeystring(empty)
BankAccountHolderNamestringCleanWorks Facility Supplies AG
BankAccountNamestring(empty)
ValidityStartDatestring/Date(1705276800000+0000)/
ValidityEndDatestring/Date(253402214400000+0000)/
IBANstringFR2330004000013167255153956
IBANValidityStartDatestring/Date(1705276800000)/
BankAccountstring31672551539
BankAccountReferenceTextstring(empty)
CollectionAuthIndbooleanfalse
CityNamestringParis
AuthorizationGroupstring(empty)

18. A_BPContactToFuncAndDept

FieldTypeExample
RelationshipNumberstring11000
BusinessPartnerCompanystring100001
BusinessPartnerPersonstring8000089000
ContactPersonFunctionstringM3
ContactPersonDepartmentstring0001
EmailAddressstringanja.dvorak@brenntag.example
PhoneNumberstring021/100000
ValidityEndDatestring/Date(253402214400000)/
ContactPersonAuthorityTypestring(empty)
ContactPersonDepartmentNamestring(empty)
ContactPersonFunctionNamestring(empty)
ContactPersonRemarkTextstring(empty)
ContactPersonVIPTypestring(empty)
FaxNumberstring(empty)
FaxNumberExtensionstring(empty)
PhoneNumberExtensionstring(empty)
RelationshipCategorystringBUR001

OpenAPI: specs/sap-business-partner-v2.yaml. Inspect calls against this host in /debug/requests.