eBay Payment Policy Implementation In Progress
*Summary of Changes:* (The purpose of this table is to keep traceability and Product team to highlight the things that were changed into the scope, based on comments or discussions)
Date | Version | Name | Applied changes |
---|---|---|---|
08/01/2024 | 1.0 | Bogomil | First Published |
eBay introduced a new way of managing policies and now each seller can opt in and start using the new payment policies.
Everything is set on eBay and we just need to download the payment policy name and ID in Hemi and store them as enumerations in a new dropdown field. ****However each policy will be for single eBay site ID (eBay territory) and we need to know for which account id is the actual payment policy. We want to store the Policy Name, Policy Id, Account ID and Type in table Policy eBay. Then from there to get and filter the correct enumerations in Payment > Payment Policy.
Get Payment Policies (Sell API)
In order to download the policies we need to to: GET https://api.ebay.com/sell/account/v1/payment_policy?marketplace_id={{siteID}} Doc Link:https://developer.ebay.com/api-docs/sell/account/resources/payment_policy/methods/getPaymentPolicies For each eBay site we have to specify the marketplace_id which for the SELL API are different from the ones we have in marketplace table.
Sample request: GET https://api.ebay.com/sell/account/v1/payment_policy?marketplace_id=EBAY_GB
Sample response:
{
"total": 2,
"paymentPolicies": [
{
"name": "V********t",
"description": "Vehicle payment policy, $500 down, full in 7 days",
"marketplaceId": "EBAY_US",
"categoryTypes": [
{
"name": "MOTORS_VEHICLES",
"default": true
}
],
"paymentMethods": [
{
"paymentMethodType": "MONEY_ORDER"
},
{
"paymentMethodType": "CASHIER_CHECK"
},
{
"paymentMethodType": "CASH_ON_PICKUP"
}
],
"paymentInstructions": "A PayPal deposit of $500 is due in 48 hours, payment in full is due in 7 days.",
"fullPaymentDueIn": {
"value": 7,
"unit": "DAY"
},
"immediatePay": false,
"deposit": {
"amount": {
"value": "500.0",
"currency": "USD"
},
"dueIn": {
"value": 48,
"unit": "HOUR"
}
},
"paymentPolicyId": "5********0"
},
{
"name": "m********y",
"marketplaceId": "EBAY_US",
"categoryTypes": [
{
"name": "ALL_EXCLUDING_MOTORS_VEHICLES",
"default": false
}
],
"paymentMethods": [
{
"paymentMethodType": "PERSONAL_CHECK"
}
],
"immediatePay": false,
"paymentPolicyId": "5********0"
}
]
}
From the response we want to store the paymentPolicyId
and name
which we will store as a dropdown list and we want to display the name
but push the paymentPolicyId
to eBay.
eBay ID | Hemi Field | |
---|---|---|
paymentPolicyId |
Policy eBay >Policy ID | |
name |
Policy eBay > Name | |
Policy eBay > Type | The type of the policy will be hardcoded as “Payment“ | |
Policy eBay > Account ID | Our internal Account ID so we can refer to the correct account when displaying the numerations. |
Please note if the seller is not opted in we will receive an error like:
{
"errors": [
{
"errorId": 20403,
"domain": "API_ACCOUNT",
"category": "REQUEST",
"message": "Invalid .",
"longMessage": "User is not eligible for Business Policy.",
"inputRefIds": [
null
]
}
]
}