Accepting PayPal alongside card payments in AppBO, and reconciling the two into one view of the customer.
Bring your stack to a call and we will connect it, test every field in both directions, and hand it over documented.
Book a callPayPal is a payment method and a wallet rather than only a card gateway. On the PayPal side sit the buyer's account, the order and capture objects behind each transaction, any subscriptions or billing agreements, refunds, and PayPal's own dispute and buyer-protection process. On the AppBO side sit the contact, the order record, the pipeline and the workflows that act on a confirmed payment.
You add it alongside cards rather than instead of them. Some buyers will not type a card number into a page they do not recognize but will happily click a PayPal button, and in several markets that preference is strong enough to be the difference between an abandoned checkout and a sale. The point of the integration is that a PayPal payment produces the same downstream consequences as a card payment (same fulfillment workflow, same tags, same opportunity movement) so the rest of your automation does not have to care which button the customer pressed.
The reconciliation problem is the interesting part. Two processors means two sources of truth about money, two refund processes, two dispute processes and two sets of payout timing. The integration is only finished when a person looking at a contact in AppBO can see what was paid regardless of method, and when your finance process can tie both back to the bank without a spreadsheet of exceptions. That takes a deliberate choice of which field records the method and which identifier is stored where.
Scenario: a checkout page offers card and PayPal side by side. A buyer chooses PayPal, pays with a different email from the one on the form, and later opens a dispute.
jane.smith@company.com, which creates or matches the contact in AppBO.jsmith.personal@example.com (a different address) and approve.PayPal to the payment method field, writes the transaction identifier to its custom field, tags the contact purchased, moves the opportunity to Won, and sends the receipt and delivery email.payment-disputed, removes the purchased tag, revokes the download access, and raises a task for finance with the transaction identifier.purchased tag is restored and access is reinstated, with the whole sequence visible on the contact's timeline.PayPal applies its own API limits and they differ by endpoint; consult PayPal's current documentation rather than assuming a figure, and add backoff on throttled responses. The practical constraint for most AppBO accounts is not the API limit but the reconciliation workload, which grows linearly with transaction volume unless it is automated from the start.
PayPal supports a request identifier on order and capture calls so a retried request is not treated as a new payment. Use it, and check the current field name in PayPal's reference rather than guessing. Notifications are delivered at least once and retried, so dedupe on the transaction or event identifier. The riskiest retry is a capture: retrying it without the idempotency header can take the money twice, and refunding a duplicate capture is a worse customer experience than a failed checkout.
The payer email is the biggest trap in PayPal integrations: it is the buyer's PayPal account address, not necessarily the one on your form, and treating them as the same thing creates duplicate contacts at scale. Currency codes must match what the PayPal account is configured to accept. Amount formatting and decimal precision are strict. The shipping address PayPal returns is the one on the buyer's PayPal account, which may not be where they expect delivery: decide which address is authoritative and say so at checkout.
Unlike a card authorization, a PayPal payment can legitimately sit in a pending state. Under review, awaiting an e-check, or held for a verification step. Treating pending as paid ships goods you have not been paid for; treating it as failed loses sales. Handle it as its own state with its own workflow, and have a path that completes the order when it clears.
Two drivers: the payer-email mismatch described above, and buyers who abandon and retry the PayPal redirect, producing two orders for one intent. Key orders on your own reference identifier passed into the PayPal order, and check for an existing completed payment against that reference before capturing another.
PayPal's sandbox is a fully separate world with its own buyer and merchant accounts and its own credentials. Sandbox credentials in a live checkout fail silently in confusing ways; live credentials in a test produce real charges. Label the credential entries unambiguously and confirm the environment as part of go-live, not after.
API credentials can be rotated or revoked in PayPal, and the connection can also be broken by account restrictions following a review. The symptom is the PayPal button failing at checkout, which costs sales silently, so monitor checkout success rate by method rather than only in aggregate.
We wire the integration, map the fields, test both directions and hand it over with the SOPs your team needs to run it.
Book a call