Verify PayPal Payments via API — Real-Time, Non-Custodial

Quick Answer: ShegerPay verifies PayPal payments in under 5 seconds through one REST API call. The customer pays from their PayPal balance, card, or linked bank, funds settle in the merchant's PayPal account, and ShegerPay's webhook fires with payment.verified. ShegerPay never holds the funds — no merchant license required.

What is PayPal?

PayPal is a global online payments platform that lets consumers and businesses send and receive money in 200+ markets and 25+ currencies. PayPal supports checkout, subscriptions, invoicing, and payouts, and is one of the most common international payment rails used by Ethiopian businesses, freelancers, and exporters to receive money from global customers. Full PayPal API docs: developer.paypal.com.

How PayPal verification works with ShegerPay

  1. Customer pays from PayPal checkout, invoice, or peer-to-peer transfer to the merchant's PayPal account
  2. PayPal settles the transfer in the merchant's PayPal balance and emits a transaction ID
  3. Merchant backend POSTs to /api/v1/verify with provider=paypal and the PayPal transaction ID
  4. ShegerPay calls PayPal's transaction lookup API, returns verified=true with payer, amount, currency, then fires the webhook

Code example

curl -X POST https://api.shegerpay.com/api/v1/verify \
  -H "X-API-Key: sk_test_demo" \
  -H "Content-Type: application/json" \
  -d '{"provider":"paypal","transaction_id":"5O190127TN364715T","amount":50,"currency":"USD"}'
import ShegerPay from '@shegerpay/sdk';
const sp = new ShegerPay('sk_test_demo');
const result = await sp.verify({
  provider: 'paypal',
  transactionId: '5O190127TN364715T',
  amount: 50,
  currency: 'USD'
});
from shegerpay import ShegerPay
sp = ShegerPay('sk_test_demo')
result = sp.verify(provider='paypal', transaction_id='5O190127TN364715T', amount=50, currency='USD')
$sp = new ShegerPay\Client('sk_test_demo');
$result = $sp->verify([
  'provider' => 'paypal',
  'transaction_id' => '5O190127TN364715T',
  'amount' => 50,
  'currency' => 'USD'
]);

PayPal-specific features

  • Full PayPal API coverage — Checkout (Orders v2), Invoices, Subscriptions, Payouts, Wallet, and Refunds wrapped behind a single ShegerPay endpoint
  • Multi-currency — verify in USD, EUR, GBP, etc.; ShegerPay returns native + ETB-converted amount
  • Refund flow — POST to /api/v1/refund with the PayPal transaction ID to issue a refund
  • Payout flow — pay international contractors/freelancers from your PayPal balance via /api/v1/payout
  • Sandbox-friendly — works with PayPal sandbox accounts out of the box

Why ShegerPay for PayPal

  • Non-custodial — funds settle directly to your PayPal account
  • No merchant license required
  • 3–5 second verification on PayPal's API
  • Free tier includes PayPal
  • Works with WooCommerce plugin out of the box
  • HMAC-SHA256 webhook signatures
  • 12 official SDKs

Pricing for PayPal verification

  • Free: 100 verifications/month
  • Startup ($9/mo): 2,000 verifications
  • Business ($29/mo): 10,000 verifications + crypto
  • Enterprise: custom

Comparison

Feature ShegerPay Chapa Arifpay Manual
PayPal supported Yes No No Yes
Multi-currency Yes No No
Verification time 3–5s Minutes
Non-custodial Yes No No
Refund + Payout Yes No No

FAQ

How fast is PayPal verification with ShegerPay? Typically 3–5 seconds, bounded by PayPal's transaction lookup API latency.

Do I need a PayPal business account? A PayPal personal account works for receiving, but a PayPal business account unlocks Checkout, Invoices, and Payouts. ShegerPay supports both.

Can I refund a PayPal payment via ShegerPay? Yes — POST to /api/v1/refund with the PayPal transaction ID and optional partial-refund amount.

Does ShegerPay hold PayPal funds? No — funds settle directly to your PayPal account. ShegerPay is non-custodial.

Is there a sandbox/demo for PayPal? Yes — use sk_test_demo and a PayPal sandbox transaction ID. No signup required.

What happens if PayPal verification fails? API returns verified=false with reason: not_found, pending, refunded, amount_mismatch, or currency_mismatch.

Related: Pricing · Docs · Verify Wise · Verify Payoneer · PayPal Developer

Contact: [email protected] · +251 998 169 242