To Whom It May Concern, I’m working on “PayPal Balance Accounts Integration”, I have a Business Account and I’m a partner in the PayPal Partner program, and I followed all your integration steps explained here: https://developer.paypal.com/docs/limited-release/balance-accounts/ When I try to get the list PayPal balance accounts with this sample request: curl -v -X GET https://api.sandbox.paypal.com/v2/wallet/balance-accounts \ -H "Content-Type: application/json" \ -H "Authorization: Bearer Access-Token" I got this response back: { "name": "INSUFFICIENT_PRIVILEGES", "message": "Insufficient privileges for requested resource.", "information_link": "", "details": [ { "issue": "Insufficient privileges for requested resource.", "code": "INSUFFICIENT_PRIVILEGES" } ] } I also did all the steps for “Request Third-Party Permissions through the Permissions Service” explained here: https://developer.paypal.com/docs/classic/permissions-service/ht_permissions-invoice/# and I used your PayPal Java SDK to get "X-PAYPAL-AUTHORIZATION: token=...,signature=..., timeStamp=..." explained here: https://developer.paypal.com/docs/classic/permissions-service/integration-guide/PermissionsUsing/#granting-permission-to-access-account-holder-information here is the Java example: import java.util.Iterator; import java.util.Map; import com.paypal.sdk.util.OAuthSignature; import com.paypal.sdk.util.OAuthSignature.HTTPMethod; public class TestOauthSignature { private static String apiUserName = "..._biz_api1.gmail.com"; private static String apiPassword = "1255077037"; private static String accessToken = "2WhQDDM4..."; private static String tokenSecret = "j0YhbTgcy.K5VjpQa7Ru8oM..."; private static HTTPMethod httpMethod = OAuthSignature.HTTPMethod.POST; private static String scriptURI = "https://api.sandbox.paypal.com/nvp"; private static Map queryParams = null; public static void main(String[] args) { try{ Map map = OAuthSignature.getAuthHeader(apiUserName, apiPassword, accessToken, tokenSecret, httpMethod, scriptURI, queryParams); // Display Signature and Timestamp to console. Iterator itr = map.entrySet().iterator(); while(itr.hasNext()){ Map.Entry entry = (Map.Entry)itr.next(); System.out.println(entry.getKey() + ": " + entry.getValue()); } }catch (Exception e) { // handle exception } } } And now I have the header for: X-PAYPAL-AUTHORIZATION= token=AccessToken, signature=OAuthSignature, timestamp=CurrentOAuthTimestamp I also add X-PAYPAL-AUTHORIZATION header into your sample request, I got the same response back. And when I removed this header: “Authorization: Bearer Access-Token" from the request: curl -v -X GET https://api.sandbox.paypal.com/v2/wallet/balance-accounts \ -H "Content-Type: application/json" \ -H “X-PAYPAL-AUTHORIZATION:token=AccessToken,signature=OAuthSignature,timestamp=CurrentOAuthTimestamp” I got this response back: { "name": "AUTHENTICATION_FAILURE", "message": "Authentication failed due to invalid authentication credentials or a missing Authorization header.", "links": [ { "href": "https://developer.paypal.com/docs/api/overview/#error", "rel": "information_link" } ] } Could you help me, please? Is there any step that I need to do? Kind regards, Alireza Asghari
... View more