Download the PHP package sashalenz/ebay-api without Composer
On this page you can find all versions of the php package sashalenz/ebay-api. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package ebay-api
eBay API SDK for Laravel
A modern Laravel package for interacting with the eBay API. This package provides a clean, fluent interface for working with eBay's Sell and Commerce APIs using Laravel Data objects for type safety.
Features
- ๐ Built for Laravel 12+ and PHP 8.4+
- ๐ OAuth 2.0 Application Token authentication with automatic token refresh
- ๐ค OAuth 2.0 User Token support for user-specific APIs (Post-Order, Identity)
- ๐ฆ Type-safe request/response handling with 190 Data classes using Spatie Laravel Data
- ๐ Auto-Injection - EbayClient automatically injected into Request classes
- ๐๏ธ Builder Pattern - Fluent interface for all complex requests with type-safe Data objects
- โ Request Validation - Automatic validation before sending requests with detailed error messages
- ๐ก Platform Notifications - Complete SOAP webhook system with Events, Queue Jobs, and GDPR compliance
- โ๏ธ Complete Sell Account API v1 - All 36 methods for account configuration (12 Data objects)
- โ๏ธ Complete Sell Account API v2 - All 4 methods for rate tables and payout settings
- ๐ฐ Complete Sell Finances API - All 7 methods for payouts and transactions (8 Data objects)
- ๐ฆ Complete Sell Fulfillment API - All 15 methods for order management and disputes (9 Data objects)
- ๐ Complete Sell Logistics API - All 6 methods for shipping quotes and labels (3 Data objects)
- ๐ Complete Sell Feed API - All 23 methods for feed management and reporting (6 Data objects)
- ๐ Complete Sell Metadata API - All 22 methods for marketplace policies and configurations (4 Data objects)
- ๐ Complete Sell Charity API - All 2 methods for charitable organizations (3 Data objects)
- ๐ Complete Sell Catalog API - All 2 methods for product search and discovery (3 Data objects)
- ๐ Complete Sell Notification API - All 21 methods for managing eBay push notifications (9 Data objects)
- ๐ฌ Complete Sell Negotiation API - All 2 methods for sending discount offers to interested buyers (3 Data objects)
- ๐ Complete Sell Marketing API - All 81 methods for Promoted Listings, campaigns, and promotions (11 Data objects, 7 Enums)
- ๐ก Complete Sell Recommendation API - 1 method for listing optimization suggestions (2 Data objects)
- ๐ Complete Sell Analytics API - All 4 methods for performance metrics and traffic reports (14 Data objects)
- ๐ Complete Sell Translation API - 1 method for translating item titles/descriptions between languages (2 Data objects)
- โ๏ธ Complete Sell Compliance API - All 2 methods for listing violations monitoring and corrective recommendations (7 Data objects)
- ๐ค Complete Sell Identity API - 1 method for retrieving authenticated user profile (OAuth login) (4 Data objects)
- ๐ฎ Complete Post-Order API - All 42 methods for managing cancellations, returns, cases, and inquiries (16 Data objects)
- ๐ฆ Complete Sell Stores API - All 8 methods for eBay Store management (3 Data objects)
- ๐ Complete Sell Inventory API - All 35 methods with full Data structure (43 Data objects)
- ๐ณ Complete Commerce Taxonomy API - All 9 methods with recursive Data support (21 Data objects)
- ๐ฏ Comprehensive Enums - 35 type-safe enums for all API constants
- ๐ Multi-marketplace support for all eBay marketplaces
- โก Built with Guzzle for reliable HTTP communication
- ๐งช Fully tested with Pest - 127 comprehensive tests with 100% Request class coverage
- ๐ช 10 Laravel Events - Real-time event system for eBay notifications
- ๐ Comprehensive documentation and examples
Installation
You can install the package via composer:
You can publish the config file with:
OAuth Authentication
Application Token (Client Credentials)
Used for most Sell APIs and Commerce APIs. Configured automatically from .env:
User Token (Authorization Code Flow)
Required for Post-Order API and Identity API. You must implement OAuth flow in your app:
Note: The UserToken automatically refreshes when expired using the refresh token.
This is the contents of the published config file:
Configuration
Add your eBay API credentials to your .env file:
OAuth Scopes
The package uses OAuth 2.0 Client Credentials (Application Token) for authentication. By default, it uses the base scope https://api.ebay.com/oauth/api_scope, which provides access to most public and seller-specific APIs.
If you need specific scopes, you can customize them in your .env:
โ ๏ธ Important: Using too many scopes or invalid scopes will result in invalid_scope error. Start with the base scope first.
Available Environments
sandbox- eBay Sandbox environment (for testing)production- eBay Production environment (for live data)
Available Marketplaces
The package supports all eBay marketplaces:
EBAY_US- United StatesEBAY_GB- United KingdomEBAY_CA- CanadaEBAY_AU- AustraliaEBAY_DE- GermanyEBAY_FR- France- And many more...
Usage
Automatic Data Mapping (Recommended)
The package automatically maps API responses to type-safe Data objects.
NEW: Client is auto-injected, no need to pass it manually!
Using the Facade
Using Dependency Injection
Sell API - Inventory Examples
Get a Single Inventory Item
Get All Inventory Items
Create or Update an Inventory Item (Builder Pattern)
Delete an Inventory Item
Create an Offer (Builder Pattern)
Bulk Operations
Commerce API - Taxonomy Examples
Get Default Category Tree ID
Get Category Suggestions
Get Category Tree
Get Category Subtree
Get Item Aspects For Category
Get Compatibility Properties
Get Compatibility Property Values
Get Expired Categories
Fetch Item Aspects
Sell API - Marketing Examples
Create a Promoted Listings Campaign
Manage Ads in Bulk
Create Item Promotion
Send Discount Offers to Interested Buyers
Available Request Classes
Sell API - Inventory Mapping (GraphQL)
AI-Powered Listing Creation (2/2):
StartListingPreviewsCreationRequest- Create listing previews from product data (GraphQL mutation)GetListingPreviewsCreationTaskRequest- Get task status and results (GraphQL query)
Commerce API - Media
Image (3/3):
CreateImageFromFileRequest,CreateImageFromUrlRequest,GetImageRequest
Video (3/3):
CreateVideoRequest,GetVideoRequest,UploadVideoRequest
Document (4/4):
CreateDocumentRequest,CreateDocumentFromUrlRequest,GetDocumentRequest,UploadDocumentRequest
Sell API - Catalog
Product Search (2/2):
GetProductRequest- Get details of a specific eBay catalog product by EPIDSearchProductsRequest- Search catalog products by query, GTIN, MPN, brand, category, aspects
Example usage:
Sell API - Stores
Store Management (8/8):
GetStoreRequest- Get store configurationGetStoreCategoriesRequest- Get all store categories (paginated)AddStoreCategoryRequest- Add new custom category (async)DeleteStoreCategoryRequest- Delete store categoryRenameStoreCategoryRequest- Rename store categoryMoveStoreCategoryRequest- Move category in hierarchyGetStoreTaskRequest- Get task statusGetStoreTasksRequest- Get all tasks (paginated)
Sell API - Inventory
InventoryItem (7/7):
GetInventoryItemRequest,GetInventoryItemsRequestCreateOrReplaceInventoryItemRequest,DeleteInventoryItemRequestBulkCreateOrReplaceInventoryItemRequest,BulkGetInventoryItemRequest,BulkUpdatePriceQuantityRequest
ProductCompatibility (3/3):
GetProductCompatibilityRequest,CreateOrReplaceProductCompatibilityRequest,DeleteProductCompatibilityRequest
InventoryItemGroup (3/3):
GetInventoryItemGroupRequest,CreateOrReplaceInventoryItemGroupRequest,DeleteInventoryItemGroupRequest
Location (7/7):
GetInventoryLocationRequest,GetInventoryLocationsRequestCreateInventoryLocationRequest,UpdateInventoryLocationRequest,DeleteInventoryLocationRequestEnableInventoryLocationRequest,DisableInventoryLocationRequest
Listing (4/4):
BulkMigrateListingRequest,GetSkuLocationMappingRequestCreateOrReplaceSkuLocationMappingRequest,DeleteSkuLocationMappingRequest
Offer (11/11):
GetOfferRequest,GetOffersRequest,CreateOfferRequest,UpdateOfferRequest,DeleteOfferRequestPublishOfferRequest,WithdrawOfferRequestPublishOfferByInventoryItemGroupRequest,WithdrawOfferByInventoryItemGroupRequestBulkCreateOfferRequest,BulkPublishOfferRequest,GetListingFeesRequest
Sell API - Metadata
Marketplace Policies (16/16):
GetAutomotivePartsCompatibilityPoliciesRequest,GetCategoryPoliciesRequest,GetClassifiedAdPoliciesRequestGetCurrenciesRequest,GetExtendedProducerResponsibilityPoliciesRequest,GetHazardousMaterialsLabelsRequestGetItemConditionPoliciesRequest,GetListingStructurePoliciesRequest,GetListingTypePoliciesRequestGetMotorsListingPoliciesRequest,GetNegotiatedPricePoliciesRequest,GetProductSafetyLabelsRequestGetRegulatoryPoliciesRequest,GetReturnPoliciesRequest,GetShippingPoliciesRequest,GetSiteVisibilityPoliciesRequest
Compatibility Data (5/5):
GetCompatibilitiesBySpecificationRequest,GetCompatibilityPropertyNamesRequest,GetCompatibilityPropertyValuesRequestGetMultiCompatibilityPropertyValuesRequest,GetProductCompatibilitiesRequest
Sales Tax (1/1):
GetSalesTaxJurisdictionsRequest
Sell API - Feed
Order Tasks (3/3):
CreateOrderTaskRequest,GetOrderTaskRequest,GetOrderTasksRequest
Inventory Tasks (3/3):
CreateInventoryTaskRequest,GetInventoryTaskRequest,GetInventoryTasksRequest
Generic Tasks (6/6):
CreateTaskRequest,GetTaskRequest,GetTasksRequestUploadFileRequest,GetInputFileRequest,GetResultFileRequest
Schedules (8/8):
CreateScheduleRequest,GetScheduleRequest,GetSchedulesRequest,UpdateScheduleRequest,DeleteScheduleRequestGetLatestResultFileRequest,GetScheduleTemplateRequest,GetScheduleTemplatesRequest
Customer Service Metrics (3/3):
CreateCustomerServiceMetricTaskRequest,GetCustomerServiceMetricTaskRequest,GetCustomerServiceMetricTasksRequest
Sell API - Account
Fulfillment Policies (6/6):
CreateFulfillmentPolicyRequest,GetFulfillmentPolicyRequest,GetFulfillmentPoliciesRequestGetFulfillmentPolicyByNameRequest,UpdateFulfillmentPolicyRequest,DeleteFulfillmentPolicyRequest
Payment Policies (6/6):
CreatePaymentPolicyRequest,GetPaymentPolicyRequest,GetPaymentPoliciesRequestGetPaymentPolicyByNameRequest,UpdatePaymentPolicyRequest,DeletePaymentPolicyRequest
Return Policies (6/6):
CreateReturnPolicyRequest,GetReturnPolicyRequest,GetReturnPoliciesRequestGetReturnPolicyByNameRequest,UpdateReturnPolicyRequest,DeleteReturnPolicyRequest
Custom Policies (4/4):
CreateCustomPolicyRequest,GetCustomPolicyRequest,GetCustomPoliciesRequest,UpdateCustomPolicyRequest
Sales Tax (4/4):
CreateOrReplaceSalesTaxRequest,GetSalesTaxRequest,GetSalesTaxesRequest,DeleteSalesTaxRequest
Programs (3/3):
GetOptedInProgramsRequest,OptInToProgramRequest,OptOutOfProgramRequest
Other (7/7):
GetPaymentsProgramRequest,GetPaymentsProgramOnboardingRequest,GetPrivilegesRequestGetRateTablesRequest,GetSubscriptionRequest,GetKYCRequest(deprecated),GetAdvertisingEligibilityRequest
Sell API - Account v2
Rate Tables (2/2):
GetRateTableRequest- Get details of a specific shipping rate tableUpdateShippingCostRequest- Update shipping rates for a rate table
Payout Settings (2/2):
GetPayoutSettingsRequest- Get payout settings (mainland China only)UpdatePayoutPercentageRequest- Update split-payout percentages (mainland China only)
Sell API - Fulfillment
Orders (3/3):
GetOrderRequest- Get details of a specific orderGetOrdersRequest- Get orders with filtering by dates, status, etc.IssueRefundRequest- Issue full or partial refund to buyer
Shipping Fulfillment (3/3):
CreateShippingFulfillmentRequest- Create shipping fulfillment with tracking infoGetShippingFulfillmentRequest- Get specific shipping fulfillment detailsGetShippingFulfillmentsRequest- Get all shipping fulfillments for an order
Payment Disputes (9/9):
GetPaymentDisputeRequest- Get full details on a payment disputeGetPaymentDisputeSummariesRequest- Get payment disputes by search criteriaGetActivitiesRequest- Get activity log for a payment disputeFetchEvidenceContentRequest- Get specific evidence fileContestPaymentDisputeRequest- Contest a payment disputeAcceptPaymentDisputeRequest- Accept a payment disputeUploadEvidenceFileRequest- Upload evidence file for disputeAddEvidenceRequest- Add evidence for disputeUpdateEvidenceRequest- Update evidence set for dispute
Sell API - Logistics
Shipping Quotes (2/2):
CreateShippingQuoteRequest- Create shipping quote for live ratesGetShippingQuoteRequest- Get shipping quote details
Shipments (4/4):
CreateFromShippingQuoteRequest- Create shipment and generate labelGetShipmentRequest- Get shipment detailsCancelShipmentRequest- Cancel shipment and invalidate labelDownloadLabelFileRequest- Download shipping label PDF
Sell API - Finances
Payouts (3/3):
GetPayoutRequest- Get details of a specific payoutGetPayoutsRequest- Get all payouts with filtering and sortingGetPayoutSummaryRequest- Get summary of payouts and transactions
Transactions (2/2):
GetTransactionsRequest- Get monetary transactions with filteringGetTransactionSummaryRequest- Get summary of transactions by type
Funds Summary (1/1):
GetSellerFundsSummaryRequest- Get pending funds summary
Transfers (1/1):
GetTransferRequest- Get transfer transaction details (seller reimbursing eBay)
Sell API - Charity
Charitable Organizations (2/2):
GetCharityOrgRequest- Get details of a specific charitable organizationGetCharityOrgsRequest- Search charitable organizations by name or registration ID
Sell API - Catalog
Product Search (2/2):
GetProductRequest- Get details of a specific eBay catalog product by EPIDSearchProductsRequest- Search catalog products by query, GTIN, MPN, brand, category, aspects
Sell API - Notification
Configuration (2/2):
GetConfigRequest- Get the alert email addressUpdateConfigRequest- Update the alert email address
Destinations (5/5):
CreateDestinationRequest- Create a notification destination endpointGetDestinationRequest- Get details of a destination endpointGetDestinationsRequest- Get all destination endpointsUpdateDestinationRequest- Update destination name or statusDeleteDestinationRequest- Delete a disabled destination
Subscriptions (11/11):
CreateSubscriptionRequest- Subscribe to a notification topicGetSubscriptionRequest- Get details of a subscriptionGetSubscriptionsRequest- Get all subscriptionsUpdateSubscriptionRequest- Update subscription destination or statusDeleteSubscriptionRequest- Delete a subscriptionEnableSubscriptionRequest- Enable a disabled subscriptionDisableSubscriptionRequest- Disable an active subscriptionTestSubscriptionRequest- Send a test notificationCreateSubscriptionFilterRequest- Create a filter for subscriptionGetSubscriptionFilterRequest- Get subscription filter detailsDeleteSubscriptionFilterRequest- Delete a subscription filter
Topics (2/2):
GetTopicRequest- Get details of a notification topicGetTopicsRequest- Get all available notification topics
Public Keys (1/1):
GetPublicKeyRequest- Get public key for validating notification payloads
Sell API - Negotiation
Offers (2/2):
FindEligibleItemsRequest- Find listings eligible for seller-initiated discount offersSendOfferToInterestedBuyersRequest- Send discount offers to buyers who showed interest (Watch list, abandoned cart)
Sell API - Marketing
Campaigns (19/19):
- CRUD:
CreateCampaignRequest,GetCampaignRequest,GetCampaignsRequest,DeleteCampaignRequest - Lifecycle:
EndCampaignRequest,PauseCampaignRequest,ResumeCampaignRequest,LaunchCampaignRequest - Management:
CloneCampaignRequest,UpdateCampaignBudgetRequest,UpdateCampaignIdentificationRequest,UpdateAdRateStrategyRequest,UpdateBiddingStrategyRequest - Helpers:
GetCampaignByNameRequest,FindCampaignByAdReferenceRequest,SetupQuickCampaignRequest,SuggestBudgetRequest,SuggestItemsRequest,SuggestMaxCpcRequest
Ads (16/16):
- Single:
CreateAdByListingIdRequest,GetAdRequest,GetAdsRequest,DeleteAdRequest,UpdateBidRequest - By Inventory:
CreateAdsByInventoryReferenceRequest,GetAdsByInventoryReferenceRequest,DeleteAdsByInventoryReferenceRequest - Bulk Operations:
BulkCreateAdsByListingIdRequest,BulkCreateAdsByInventoryReferenceRequest,BulkDeleteAdsByListingIdRequest,BulkDeleteAdsByInventoryReferenceRequest,BulkUpdateAdsBidByListingIdRequest,BulkUpdateAdsBidByInventoryReferenceRequest,BulkUpdateAdsStatusRequest,BulkUpdateAdsStatusByListingIdRequest
Ad Groups (6/6):
CreateAdGroupRequest,GetAdGroupRequest,GetAdGroupsRequest,UpdateAdGroupRequest,SuggestBidsRequest,SuggestKeywordsRequest
Keywords (6/6):
CreateKeywordRequest,GetKeywordRequest,GetKeywordsRequest,UpdateKeywordRequest,BulkCreateKeywordRequest,BulkUpdateKeywordRequest
Negative Keywords (6/6):
CreateNegativeKeywordRequest,GetNegativeKeywordRequest,GetNegativeKeywordsRequest,UpdateNegativeKeywordRequest,BulkCreateNegativeKeywordRequest,BulkUpdateNegativeKeywordRequest
Promotions (12/12):
- Base:
GetPromotionsRequest,GetListingSetRequest,PausePromotionRequest,ResumePromotionRequest - Item Promotion:
CreateItemPromotionRequest,GetItemPromotionRequest,UpdateItemPromotionRequest,DeleteItemPromotionRequest - Price Markdown:
CreateItemPriceMarkdownPromotionRequest,GetItemPriceMarkdownPromotionRequest,UpdateItemPriceMarkdownPromotionRequest,DeleteItemPriceMarkdownPromotionRequest
Reports (9/9):
- Ad Report:
GetReportRequest - Ad Report Metadata:
GetReportMetadataRequest,GetReportMetadataForReportTypeRequest - Ad Report Task:
CreateReportTaskRequest,GetReportTaskRequest,GetReportTasksRequest,DeleteReportTaskRequest - Promotion Report:
GetPromotionReportsRequest,GetPromotionSummaryReportRequest
Email Campaign (8/8):
CreateEmailCampaignRequest,GetEmailCampaignRequest,GetEmailCampaignsRequest,UpdateEmailCampaignRequest,DeleteEmailCampaignRequest,GetAudiencesRequest,GetEmailPreviewRequest,GetEmailReportRequest
Sell API - Recommendation
Listing Recommendations (1/1):
FindListingRecommendationsRequest- Get optimization recommendations and suggested bid rates for Promoted Listings
Sell API - Analytics
Customer Service Metrics (1/1):
GetCustomerServiceMetricRequest- Get customer service performance metrics (ITEM_NOT_AS_DESCRIBED, ITEM_NOT_RECEIVED) with benchmarks vs peer group
Seller Standards Profile (2/2):
FindSellerStandardsProfilesRequest- Get detailed performance metrics for seller account (service level, defect rate, performance indicators)GetSellerStandardsProfileRequest- Get specific performance metrics by program (PROGRAM_US, PROGRAM_UK, PROGRAM_DE, PROGRAM_GLOBAL) and cycle
Traffic Reports (1/1):
GetTrafficReportRequest- Generate customized traffic report showing buyer engagement (impressions, clicks, conversion rates, transactions) by DAY or LISTING dimension
Sell API - Translation
Translation (1/1):
TranslateRequest- Translate item titles or descriptions between languages (en, de, fr, it, es, zh-Hans, zh-Hant) with context support (ITEM_TITLE, ITEM_DESCRIPTION)
Sell API - Compliance
Listing Violations Summary (1/1):
GetListingViolationsSummaryRequest- Get count of listing violations grouped by compliance type (PRODUCT_ADOPTION, RETURN_POLICY, HTTPS_IMAGE_ISSUES, PRODUCT_SAFETY, etc.)
Listing Violations (1/1):
GetListingViolationsRequest- Get detailed violations with specific issues, affected listings, and corrective recommendations for fixing compliance problems
Sell API - Identity
User Profile (1/1):
GetUserRequest- Retrieve authenticated user's account profile information for OAuth login scenarios. โ ๏ธ Requires User OAuth Token (not Application Token). Returns username, userId, and PII based on granted scopes.
Post-Order API
โ ๏ธ All Post-Order API methods require User OAuth Token (not Application Token)
Cancellation Resource (7/7):
ApproveCancellationRequest- Seller approves buyer's cancellation requestCheckCancellationEligibilityRequest- Verify if order is eligible for cancellationConfirmCancellationRefundRequest- Buyer confirms refund was receivedCreateCancellationRequest- Create cancellation request (buyer or seller)GetCancellationRequest- Get cancellation detailsRejectCancellationRequest- Seller rejects cancellation requestSearchCancellationsRequest- Search cancellations with filters (date, state, role)
Case Management Resource (10/10):
AppealCaseDecisionRequest- Appeal a case decision made by eBayGetCaseRequest- Get case details (INR, SNAD disputes)IssueCaseRefundRequest- Seller issues refund for a caseProvideReturnAddressRequest- Seller provides return addressProvideShippingInfoRequest- Seller provides tracking infoSearchCasesRequest- Search cases with filters (date, status, item)SendMessageRequest- Send message to other party in caseSubmitEvidenceRequest- Submit evidence (tracking, documents)UploadEvidenceFileRequest- Upload evidence files (photos, docs)GetActivityOptionsRequest- Get available actions for current case state
Return Resource (20/20):
CheckReturnEligibilityRequest- Check if item is eligible for returnCreateReturnRequest- Buyer creates return requestGetReturnRequest- Get return detailsSearchReturnsRequest- Search returns with filters (date, state, item)EscalateReturnRequest- Escalate return to eBay Customer ServiceGetEstimateRequest- Get return shipping cost estimateGetReturnPreferencesRequest- Get seller's return preferencesSetReturnPreferencesRequest- Set seller's return preferences (auto-accept)ProvideSellerInfoRequest- Seller provides return info/addressInitiateShippingLabelRequest- Generate return shipping labelIssueReturnRefundRequest- Seller issues refund for returned itemMarkReturnReceivedRequest- Mark returned item as receivedProcessReturnRequestRequest- Seller decides on return (accept/reject/partial)SendReturnMessageRequest- Send message about returnSubmitReturnFileRequest- Activate uploaded return filesUploadReturnFileRequest- Upload return photos/documentsCreateReturnDraftRequest- Create draft return (complete later)GetReturnDraftRequest- Get draft return detailsDeleteReturnDraftRequest- Delete draft returnDecideReturnRequest- Make decision on return request
Inquiry Resource (5/5):
CheckInquiryEligibilityRequest- Check if item is eligible for inquiryCloseInquiryRequest- Close inquiry (buyer satisfied)CreateInquiryRequest- Buyer creates inquiry about order issueGetInquiryRequest- Get inquiry detailsSearchInquiriesRequest- Search inquiries with filters
Commerce API - Taxonomy
Category Navigation (9/9):
GetDefaultCategoryTreeIdRequest- Get the default category tree ID for a marketplaceGetCategorySuggestionsRequest- Get category suggestions for a queryGetCategoryTreeRequest- Get the complete category treeGetCategorySubtreeRequest- Get a subtree below a specific categoryGetItemAspectsForCategoryRequest- Get aspects for a specific leaf categoryGetCompatibilityPropertiesRequest- Get compatible vehicle properties for parts categoriesGetCompatibilityPropertyValuesRequest- Get values for a specific compatibility property (with filters)GetExpiredCategoriesRequest- Get mappings of expired categories to active replacementsFetchItemAspectsRequest- Fetch all item aspects for leaf categories (gzipped response)
Available Enums
The package provides 27 type-safe enums for API constants:
Core Enums
Environment- API environment (sandbox/production)MarketplaceId- All eBay marketplaces (EBAY_US, EBAY_GB, etc.)ContentLanguage- Content language codes (en-US, en-GB, de-DE, etc.)Locale- Category tree locales
Inventory Enums
Condition- Item condition (NEW, USED_EXCELLENT, REFURBISHED, etc.)AvailabilityType- Availability types (IN_STOCK, OUT_OF_STOCK, SHIP_TO_STORE)PackageType- Package types (LETTER, BULKY_GOODS, CARAVAN, etc.)LengthUnitOfMeasure- Length units (INCH, FEET, CENTIMETER, METER)WeightUnitOfMeasure- Weight units (POUND, KILOGRAM, OUNCE, GRAM)TimeDurationUnit- Time duration units (YEAR, MONTH, DAY, HOUR, etc.)LocationType- Location types (WAREHOUSE, STORE)MerchantLocationStatus- Location status (ENABLED, DISABLED)
Offer Enums
OfferFormat- Listing format (FIXED_PRICE, AUCTION)OfferStatus- Offer status (PUBLISHED, UNPUBLISHED, OUT_OF_STOCK, ENDED)
Taxonomy Enums
AspectApplicableTo- Aspect applicability (ITEM, PRODUCT)AspectDataType- Aspect data types (STRING, STRING_ARRAY, NUMBER, DATE)AspectMode- Aspect mode (FREE_TEXT, SELECTION_ONLY)AspectUsage- Aspect usage (RECOMMENDED, OPTIONAL, REQUIRED)ItemToAspectCardinality- Item-to-aspect relationship (SINGLE, MULTI)AspectAdvancedDataType- Advanced aspect data types (RATING, RANGE, CURRENCY, etc.)
Stores Enums
StoreSubscriptionLevel- Store subscription levels (BASIC, PREMIUM, ANCHOR, STARTER)StoreTaskStatus- Store task status (PENDING, IN_PROGRESS, COMPLETED, FAILED)
Media Enums
MediaStatus- Media status (PENDING, PROCESSING, LIVE, FAILED, BLOCKED)DocumentPurpose- Document purposes (PRODUCT_SAFETY, PRODUCT_COMPLIANCE, etc.)
Feed Enums
FeedType- Feed types (LMS_ORDER_REPORT, LMS_ACTIVE_INVENTORY_REPORT, etc.)TaskStatus- Task status (QUEUED, IN_PROCESS, COMPLETED, COMPLETED_WITH_ERROR, FATAL)ScheduleStatus- Schedule status (ACTIVE, INACTIVE)
Marketing Enums
CampaignStatus- Campaign status (RUNNING, PAUSED, ENDED, SCHEDULED)CampaignCriterionType- Campaign criterion types (INVENTORY_PARTITION, INVENTORY_BY_RULE)FundingStrategy- Funding strategy (COST_PER_SALE, COST_PER_CLICK)PromotionStatus- Promotion status (DRAFT, SCHEDULED, RUNNING, PAUSED, ENDED)PromotionType- Promotion types (MARKDOWN_SALE, ORDER_DISCOUNT, VOLUME_DISCOUNT, SHIPPING_DISCOUNT)AdStatus- Ad status (ACTIVE, PAUSED, ARCHIVED)EmailCampaignStatus- Email campaign status (DRAFT, SCHEDULED, SENT, CANCELED)
Testing
The package includes a comprehensive test suite with 127 tests covering all 58 Request classes.
Running Tests
Test Coverage
- 100% Request Class Coverage - All 58 Request classes tested
- 127 Tests across 10 test files
- Test Infrastructure:
- MocksApiResponses trait for mocking Guzzle responses
- 3 Factories for complex Data objects
- 8 JSON Fixtures for realistic mock responses
Test Breakdown
- InventoryItem: 16 tests (validation, builder, endpoint, data mapping)
- Offer: 22 tests (all 12 Request classes)
- Location: 10 tests (full location management)
- InventoryItemGroup: 5 tests (builder, validation)
- ProductCompatibility: 4 tests (builder, validation)
- Listing: 4 tests (bulk operations)
- Taxonomy: 12 tests (all 12 methods)
- Stores: 15 tests (all 8 methods)
- Validation: 39 tests (comprehensive scenarios)
Writing Tests
Use the provided factories and fixtures:
Error Handling
The package provides specific exceptions for different error scenarios:
Platform Notifications (Webhooks)
The package includes complete support for eBay Platform Notifications - SOAP-based push notifications sent by eBay when events occur on the platform.
Setup
-
Publish and run migrations:
-
Configure webhook URL in
.env: - Configure in eBay Seller Hub:
- Go to eBay Developer Account
- Set notification delivery URL:
https://your-domain.com/ebay/notifications - Subscribe to desired events (ItemListed, ItemSold, OrderCreated, etc.)
Webhook Endpoint
The package automatically registers a webhook endpoint at the configured route (default: /ebay/notifications).
The controller:
- Parses incoming SOAP XML
- Validates signature (optional)
- Stores notification in database
- Dispatches queue job for async processing
- Returns HTTP 200 (required by eBay)
Listening to Events
Listen to notification events in your EventServiceProvider:
Available Events
ItemListedEvent- Item was listedItemSoldEvent- Item was soldItemEndedEvent- Listing endedItemRevisedEvent- Listing was revisedFeedbackReceivedEvent- Feedback receivedOrderCreatedEvent- Order was createdOrderCancelledEvent- Order was cancelledMarketplaceAccountDeletionEvent- User deleted account (GDPR)BuyerRequestedPurchaseQuoteEvent- Buyer requested quoteItemAvailabilityEvent- Item availability changed
Event Handler Example
GDPR Compliance - Account Deletion
CRITICAL: Handle MarketplaceAccountDeletionEvent to comply with data protection regulations:
Querying Notifications
Signature Validation
For production, enable signature validation to verify notifications are from eBay:
The package validates:
- MD5 signature:
base64_encode(md5(Timestamp + DevId + AppId + CertId)) - Timestamp within 10-minute window (prevents replay attacks)
Invalid signatures are logged but webhook still returns 200 to prevent eBay retries.
Manual Processing
Reprocess failed notifications:
Marketplace Account Deletion (GDPR Compliance)
In addition to Platform Notifications, eBay requires a separate HTTP endpoint for marketplace account deletion notifications. This is an additional GDPR compliance requirement.
Documentation: https://developer.ebay.com/marketplace-account-deletion
Setup
-
Enable the endpoint in
.env: - Generate verification token (32-80 characters required):
Copy the generated token to EBAY_MAD_VERIFICATION_TOKEN in .env.
- Register endpoint in eBay Developer Portal:
- Go to: https://developer.ebay.com/my/auth/?tab=marketplaceAccountDeletion
- Enter your endpoint URL:
https://your-domain.com/ebay/account-deletion - eBay will send a verification challenge to validate your endpoint
How it Works
The endpoint handles two types of requests:
1. Verification Challenge (GET)
eBay sends a GET request with challenge_code parameter:
The controller automatically calculates and returns:
2. Deletion Notification (POST)
eBay sends a POST request when a user deletes their marketplace account:
Listening to Deletion Notifications
Register listener in your EventServiceProvider:
Event Handler Example
CRITICAL: You MUST delete or anonymize all user data to comply with GDPR:
Testing the Endpoint
1. Test verification challenge:
Expected response:
2. Test deletion notification (POST):
Expected response:
Queue Processing
Deletion notifications are processed asynchronously via queue jobs:
Database Storage
If EBAY_MAD_STORE_DB=true, notifications are stored in ebay_notifications table with:
event_name:MARKETPLACE_ACCOUNT_DELETIONnotification_id: eBay notification IDrecipient_user_id: eBay user IDpayload: Full JSON payloadprocessed: Boolean flag
Security Notes
-
Verification Token:
- Must be 32-80 characters
- Keep it secure (never commit to version control)
- Use strong random generation:
openssl rand -base64 48
-
HTTPS Required:
- eBay only sends requests to HTTPS endpoints
- Ensure your SSL certificate is valid
- Endpoint Validation:
- eBay validates your endpoint before activation
- Ensure verification token is configured before registering
Difference from Platform Notifications
| Feature | Platform Notifications | Account Deletion |
|---|---|---|
| Protocol | SOAP XML | JSON HTTP |
| Events | 10+ event types | 1 event type only |
| Request Type | POST only | GET (challenge) + POST |
| Verification | MD5 signature | Challenge/response |
| Purpose | Real-time events | GDPR compliance |
Both systems can coexist - use Platform Notifications for operational events and Account Deletion endpoint for GDPR compliance.
Post-Order API Examples
โ ๏ธ Important: Post-Order API requires User OAuth Token. Set it before making requests:
Returns Management
Cancellations
Cases (Disputes)
Inquiries
Data Mapping
This package automatically maps API responses to type-safe Data objects using Spatie Laravel Data.
Quick Examples
Testing
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Security Vulnerabilities
If you discover a security vulnerability within this package, please send an email to [email protected].
Credits
License
The MIT License (MIT). Please see License File for more information.
All versions of ebay-api with dependencies
guzzlehttp/guzzle Version ^7.9
illuminate/contracts Version ^11.0|^12.0|^13.0
spatie/laravel-data Version ^4.4
spatie/laravel-package-tools Version ^1.16