PayPal
The faster, safer way to pay and get paid
Supports in this guide: Payments, Payouts
Provider website: paypal.com
What you need to do for start processing transactions (brief summary)
- Choose account type
- Get your credentials (from PayPal)
- Connect in Dashboard
- Send an API request
Choose account type
PayPal can be connected in different ways (depending on your needs):
- If you process direct card payments server-to-server (no redirect to PayPal) -> choose H2H Merchant account
- If your customers pay with their own PayPal balance/bank account (redirect to PayPal's own checkout), or if you need Payouts to a PayPal recipient -> choose Provider account
If you're not sure which one to use, confirm with your Corefy account manager.
Prerequisites: get from PayPal
Sign up for a PayPal Business account, then open the PayPal Developer Dashboard and go to Apps & Credentials to create (or select) an app. Switch between the Sandbox and Live tabs to get credentials for each environment.
- Client ID -> Corefy field
client_id-> both account types -> PayPal Developer Dashboard, Apps & Credentials. - Client Secret -> Corefy field
client_secret-> both account types -> same page as Client ID. - API Username / API Password / Signature -> Corefy fields
soap_username/soap_password/soap_signature-> Provider account only -> in your PayPal account go to Account Settings -> Account access -> API access -> NVP/SOAP API integration (Classic). - Webhook URL / Webhook ID -> Corefy fields
webhook_url/webhook_id-> H2H Merchant account only, both optional -> leave blank and Corefy will register and discover the webhook on your app automatically.
Important
Be sure to check with the manager if you require to provide a white list of IPs, and if so, specify IP addresses from the Corefy list.
Payments processing via H2H Merchant account (direct card payments, create payment-invoice)
Connect H2H Merchant account in Corefy Dashboard
Step 1 - Open connection form
Open PayPal in the provider directory and press Connect at PayPal Provider Overview page in the New connection section. Choose H2H Merchant account.
Step 2 - Fill in fields and select settings
- Client ID
- Client Secret
- Webhook URL / Webhook ID -> (optional)
- Test Mode -> enable for Sandbox credentials
- Fail by auth results -> see note below
- Fail by unprocessable entity error -> see note below
- Currency / Features -> choose values available for your account (USD, EUR, GBP, CHF, PLN, SEK, NOK, DKK, JPY, NZD, CAD, AUD)
Success
You have connected PayPal H2H Merchant account!
First request to Corefy API
What it does: creates a payment-invoice; card number/expiry/CVC are collected and submitted separately by Corefy's checkout/SDK layer, not as part of this request. This connector processes the card through PayPal's Orders API (create order, then capture) rather than a single sale call.
Payment - MIN
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "8afec793-9b41-4dc4-b281-c76cc54ffb89",
"service": "payment_card_usd_hpp",
"currency": "USD",
"amount": 10
}
}
}
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "06fa1ea9-8a5b-4dbc-b67b-6236b3b9af3d",
"service": "payment_card_usd_hpp",
"currency": "USD",
"amount": 10.04,
"customer": {
"reference_id": "cus_123",
"name": "John Smith",
"address": {
"country": "US",
"region": "CA",
"city": "San Jose",
"post_code": "95131",
"full_address": "2211 N First St"
}
}
}
}
}
Important
customer.nameis optional at the code level - if it's missing, Corefy falls back to the card's own embossed cardholder name. If both are missing, PayPal'spayment_source.card.namefield is silently populated with the literal placeholder "John Doe" - there is no Dashboard setting to change or disable this fallback.- Fail by auth results: if enabled, a failed 3-D Secure/SCA authentication check results in a final Failed status instead of the default Error status. Default: disabled.
- Fail by unprocessable entity error: if enabled, a capture rejected by PayPal with an "unprocessable entity" business-validation error results in a final Failed status instead of the default Error status. Default: disabled.
Refunds
PayPal (H2H Merchant account) supports partial refunds, but only one refund per payment. The original transaction ID is required to process a refund.
Payments processing via Provider account (redirect to PayPal, create payment-invoice)
Connect Provider account in Corefy Dashboard
Step 1 - Open connection form
Open PayPal in the provider directory and press Connect at PayPal Provider Overview page in the New connection section. Choose Provider account.
Step 2 - Fill in fields (PayPal -> Corefy)
- Client ID ->
client_id - Client Secret ->
client_secret - API Username ->
soap_username - API Password ->
soap_password - Signature ->
soap_signature - Test Mode ->
test_mode-> enable for Sandbox credentials
Important
Testing or re-testing this connection deletes every webhook currently registered on the underlying PayPal app, then creates a new one pointing at Corefy. If you use the same PayPal app for another integration, its webhooks will be removed.
Success
You have connected PayPal Provider account!
First request to Corefy API
What it does: creates a payment-invoice and returns a redirect link to PayPal's own hosted checkout, where the customer logs into PayPal and approves the payment with their PayPal balance, bank account, or linked card. No customer or card fields are read by this flow.
Payment - Actual
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "e0a2d6f4-6a33-4d3e-9a2e-8a6f6d1c2b11",
"service": "paypal_usd_hpp",
"currency": "USD",
"amount": 10
}
}
}
Important
This flow only supports USD, EUR, CAD, and AUD.
Payouts processing via Provider account (create payout-invoice)
Connect Provider account in Corefy Dashboard
Uses the same Provider account connection described above - one connection serves both Payments and Payouts.
First request to Corefy API
What it does: creates a payout-invoice; the payout is sent to the recipient's PayPal account, identified by email, phone number, or PayPal payer ID depending on the service chosen. No customer fields are read by this flow.
Payout - Actual
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"reference_id": "58acf793-9b41-4dc4-b281-c76cc54ff230",
"service": "paypal_email_usd",
"currency": "USD",
"amount": 10,
"fields": {
"email": "recipient@example.com"
}
}
}
}
Important
A separate service exists for each recipient-identifier type and currency, for example paypal_email_usd, paypal_phone_usd, paypal_id_usd. Available currencies also depend on the identifier type: the PayPal email option covers the widest set (USD, EUR, GBP, CAD, AUD, PLN, PHP, HUF, MXN, RUB), phone and PayPal ID cover a slightly narrower set. Confirm with your Corefy account manager which services are enabled for your account.
Additional info
-
Both the H2H Merchant account and the Provider account support active reconciliation - Corefy can query PayPal directly for the current order/payment/payout status instead of relying only on asynchronous notifications.
-
Refunds are only available through the H2H Merchant account flow (direct card payments). The Provider account flow (redirect payments and payouts) does not support refunds through this connector.
-
For the H2H Merchant account, Corefy automatically creates (or discovers) the PayPal webhook subscription when you connect; the Webhook URL and Webhook ID fields only need to be filled in if you already manage this webhook yourself.
FAQ / Troubleshooting
- Invalid credentials / auth error -> verify Client ID and Client Secret for the selected environment (Sandbox vs Live); for the Provider account, also verify the API Username, API Password, and Signature
- Currency or service is not supported -> confirm allowed currencies/features in your PayPal account and in Corefy
- 3-D Secure / SCA challenge keeps ending in Error instead of Failed -> check the Fail by auth results and Fail by unprocessable entity error settings on your H2H Merchant account connection
- Not sure which account type to use? -> ask your Corefy account manager
Question
Still looking for help connecting your PayPal account? Please contact our support team!