Paypal newbie here. I am using the .net sdk to call PayPal's rest api in the Sandbox environment. I am trying to test a batch payout(Mass Payment).
Issue 1. The sandbox "facilitator" account which came pre-created has a zero balance. I cant seem to find any way to get some money in the account so that i can test payouts. If i create a new business account, i get to specify an opening balance, but when i try to do payouts using this new account, i get back a 403 forbidden response when i try to payout even though i am able to get a token successfully.
Issue 2: Using the facilitator account, i am able to submit a payout request, but its behavior seems to have changed since a couple of day ago. A few days ago, all payout request used to be DECLINED and would show up on the transactions list on the sandbox site. I assumed they were getting DECLINED because the balance was zero. Since yesterday, all payout transactions via the facilitator account stays in PENDING stage and they do not show up on the transaction list. A Payment/Get request for the payout_batch_id always returns back as pending even aftter a day, but theres no sign of those transactions on the sandbox site.
1 - Creating a fresh account and giving it an opening balance is correct, and that should work just fine for you to test MassPay. If you're getting a 403 error that sounds like a problem with your API endpoint or something. Need to see a sample of the API request/response to know more on that.
2 - Again, need to see a sample of the API request/response that you're getting to know more here. My MassPay transactions in the sandbox work just fine. Here's an example. You'll see the request and response data there, showing it was successful. Then when I go look at the separate accounts I see the money as expected.
Related
While testing payments in the sandbox using SetExpressCheckout, GetExpressCheckoutDetails, and DoExpressCheckoutPayment, testing works as expected.
Payments are reflected in the developer portal and in the test account. The developer account and test accounts are more than 3 years old.
However, when using a new test account created in the last 30 days, the same test fails without error and are payments are not reflected in the test account or in the developer portal.
I suspect that there may be some difference between the older test accounts and the new. Any thoughts?
First of all, why are you testing deprecated NVP APIs that are several generations old, instead of REST v2/checkout/orders (with or without a modern UI for approval) ?
It's hard to say what specifically the problem might be since you don't share any API responses, but at a guess the email address of the sandbox receiver account is not confirmed.
Check in https://www.sandbox.paypal.com/businessprofile/settings/email , resend confirmation message as needed
Read confirmation messages in https://www.paypal.com/signin?intent=developer&returnUri=https%3A%2F%2Fdeveloper.paypal.com%2Fdeveloper%2Fnotifications%2F , and log in again to confirm
If that's not the issue, you'll need to share API responses.
One of my customers had a website hosted on FusionHQ with subscription profiles through PayPal. When migrating the payments, I guessed I could just change the IPN and would get the new messages. But it seems that Fusion has manually set nofify_url parameters for their subscription profiles and there seems to be no way to change the notify_url.
Though slightly annoying, I guessed I could still use the classic payments API to get information and do something stupid like checking the subscribers' status on the assumed expiration date. But, it turned out that PayPal doesn't allow it because the specific API FusionHQ has used, with the following error message:
Subscription Profiles not supported by Recurring Payment APIs.
The thing is that there is no way I can get access to the old IPN server since it is on FusionHQ's domain. After searching through StackOverflow, I've really lost all hope of doing this in a decent way, and I'm about to redirect my customer's PayPal emails to some SMTP bot to parse them and give me the transactions update. But this is obviously a very crappy and unreliable way. So, does anyone have any idea of what to do?
I have created and submitted a Paypal application ( using the classic API). The application is in a conditionally approved state. Paypal reached out and asked additional questions which I responded back with details. The application does not use the Paypal API to make payments. It only reads transactions related data and shows useful reports and insights for users. The API permissions requested are
1.Obtain transaction specific information.
2.Obtain your paypal account balance
3.Search your transaction specific information.
4.Search your transactions for items that match specific criteria and display the results
I was able to get a live app id and also have the API username, password and API signature. However since our app uses Paypal oauth, the permissions part doesn't work . My guess is this is because the app is conditionally approved. Is this the right assumption? Also what is the typical timeline for an app to get approved? My Paypal account from which I created and submitted the app is a verified account. I have sent messages from within my developer portal to support but I haven't heard anything back.
So far we have been working with a sandbox account. The live application I created is in a different account than the sandbox account. I am not sure if this is an issue.Would be great if someone who has been through the process can confirm.
Unfortunately there is not really a "typical" time frame for app approvals as too many factors go into the approval process. The best thing would be to call in to PayPal to inquire on the status.
My website uses the PayPal Adaptive Payments API with the Embedded Payments flow and simple payments. On my checkout page I execute a Pay API call, receive successful response, then call SetPaymentOptions and again get successful response. The customer then reviews the order form and upon confirmation of the order is redirected to https://www.paypal.com/webapps/adaptivepayment/flow/pay in the PPDGFrame iFrame with expType set to "light" and the paykey received from the Pay API call.
I have successfully tested it in a sandbox and rolled it out to production. The application worked great for a day or two and then stopped working, with buyers now receiving a "Please try again later" error when trying to login. I am still getting successful responses on both the Pay and the SetPaymentOptions API calls and the customer is successfully redirected to the PayPal login screen. The customer enters the login credentials, clicks the Login button and a couple seconds later gets the "Please try again later" message.
Now here are some really odd behaviours if I've ever seen odd... This problem first appeared about 4 days ago. Since PayPal advised me that it will take them "several weeks" to get back to me, I have tried the checkout again two days ago and experienced the same problem. I have then tried a guest checkout and it worked! Next I tried a regular user checkout and it was successful as well so I thought to myself that the problem has somehow resolved itself.
Yesterday morning I tried the checkout again, and got the same problem as before. Again I tried to checkout as guest, which again was successful, and then immediately after I have tried regular checkout and again this time I was able to login successfully.
Today the flow is broken again. What gives? Nothing is changing on my site. Why does it sometimes work and sometimes doesn't, and how is it that a guest checkout seems to be able to temporarily resolve the issue?
The problem has been resolved with no action on my part and no change to the website or application code. After a couple weeks of the API simply not working, it started working intermittently with gradually improving success rate while my support ticket with PayPal was sitting in a "Waiting" status. I was told that the "engineering team" is waiting for a server code roll-out. The intermittent nature of the problem and a gradually improving situation suggests that PayPal was rolling out a fix to their servers in a staged approach and outcome of the API operation depended on which server the PayPal load balancer happened to send the request to. After about a week of that, the problem was resolved completely. PayPal of course maintains that they have not made any server changes.
I get a 400: Bad Request error when trying to make payment in GBP, where as USD is working fine. I am getting this error since last few days earlier it was working fine, I think the issue has started after Paypal has made changes to its site rencently.
Also all the payment is going to a default sandbox account (it has a word facilitator appended to it, I did not create this account) I am not sure if I can change and set a sandbox account that I created as default account for receiving payment. Any idea?
Any suggestion would be helpful.
Currently the REST API's only support USD, passing a different currency can cause errors to be generated. There are plans to eventually support additional currencies, but currently it is only set up for USD.