Skip to main content
Partner logo
Paypal
PayPal is the safer, easier way to pay and get paid online. The service allows anyone to pay in any way they prefer, including through credit cards, bank accounts, PayPal Smart Connect or account balances, without sharing financial information. PayPal has quickly become a global leader in online payment solutions with more than 325 million accounts worldwide. Available in 202 countries and 25 currencies around the world, PayPal enables global ecommerce by making payments possible across different locations, currencies, and languages.
Source: https://www.paypal.com/gi/webapps/mpp/about

Features

Integration type

Pop-in (redirection in overlay) or Redirection
Tokenization

No

Payment flow

1-step payment flow
Capture (direct debit)
2-step payment flow
Authorization + Capture
3-step payment flow
Pending Authorization + Authorization + Capture
Information

Pop-in mode only works with the use of PAY BUTTON widget.

Information

A feature has been added to our plugin to abort the session if the customer decides to leave the Paypal Checkout Page. Contact us if you want that feature to be turned on.

Payment Operations Available

TypeCaptureRefundVoid
Partial
Total
Multiple

How to test?

Information

We suggest to create customer test accounts to pay in test environment, by following this link: https://developer.paypal.com/tools/sandbox/accounts/

Information

In case all the shipments of a transaction are delivered digitally (order.shipments.delivery_type_code equals digital_delivery), providing a shipping_address is not required.

Data Mapping & Mandatory Fields

Below is the mapping between your Create Session request and the fields expected by this payment method.

Purse Session fieldMandatory
amountYes
order.redirectionYes
order.amountYes
order.currency_codeYes
customer.referenceYes
customer.billing_address.country_codeYes
customer.billing_address.emailYes
customer.billing_address.phoneYes
shipments.delivery_type_codeYes
shipments.shipping_address.first_nameYes
shipments.shipping_address.last_nameYes
shipments.shipping_address.address_linesYes
shipments.shipping_address.cityYes
shipments.shipping_address.postal_codeYes
shipments.shipping_address.country_codeYes
shipments.seller_referenceYes
shipments.item_lines.nameYes
shipments.item_lines.priceYes
shipments.item_lines.quantityYes
shipments.item_lines.tax_lines.amountYes

Status

PSP statusStateCodeDescription
SUCCESSSUCCESSSUCCEEDEDSuccessful task
BA_NOT_VERIFIEDSUCCESSSUCCEEDEDBilling agreement token not verified
ERRORERRORBAD_REQUESTUnsuccessful task
NO_RESPONSE_DATAERRORFAILEDCouldn't read response data for action request
CREATEDSUCCESSSUCCEEDEDThe order was created with the specified context.
SAVEDSUCCESSSUCCEEDEDThe order was saved and persisted
APPROVEDSUCCESSSUCCEEDEDThe customer approved the payment through the PayPal wallet or another form of guest or unbranded payment. For example, a card, bank account, or so on.
VOIDEDSUCCESSSUCCEEDEDAll purchase units in the order are voided.
COMPLETEDSUCCESSSUCCEEDEDThe payment was authorized or the authorized payment was captured for the order.
PAYER_ACTION_REQUIREDWAITINGSUCCEEDEDThe order requires an action from the payer (e.g. 3DS authentication).
DECLINEDERRORFAILEDThe funds could not be captured.
PARTIALLY_REFUNDEDSUCCESSSUCCEEDEDAn amount less than this captured payment's amount was partially refunded to the payer.
PENDINGWAITINGWAITING_PARTNER_RESPONSEThe funds for this captured payment was not yet credited to the payee's PayPal account.
REFUNDEDSUCCESSSUCCEEDEDAn amount greater than or equal to this captured payment's amount was refunded to the payer.
FAILEDERRORFAILEDThere was an error while capturing payment.
CANCELLEDERRORFAILEDThe refund was cancelled.
INTERNAL_SERVER_ERRORERRORFAILEDAn internal server error occurred. A system or application error occurred.
INVALID_REQUESTERRORBAD_REQUESTThe request is not well-formed, is syntactically incorrect, or violates schema
UNPROCESSABLE_ENTITYERRORBAD_REQUESTThe requested action could not be performed, is semantically incorrect, or failed business validation
RESOURCE_NOT_FOUNDERRORBAD_REQUESTThe specified resource does not exist
AUTH_CAPTURE_CURRENCY_MISMATCHERRORFAILEDCurrency of capture must be the same as currency of authorization.
AUTHENTICATION_FAILUREERRORFAILEDAuthentication failed due to missing authorization header, or invalid authentication credentials.
AUTHORIZATION_ALREADY_CAPTUREDERRORFAILEDAuthorization has already been captured.
AUTHORIZATION_DENIEDERRORFAILEDA denied authorization cannot be captured.
AUTHORIZATION_EXPIREDERRORFAILEDAn expired authorization cannot be captured.
AUTHORIZATION_VOIDEDERRORFAILEDA voided authorization cannot be captured or reauthorized.
CANNOT_BE_ZERO_OR_NEGATIVEERRORFAILEDMust be greater than zero. If the currency supports decimals, only two decimal place precision is supported.
CANNOT_BE_VOIDEDERRORFAILEDA reauthorization cannot be voided. Please void the original parent authorization.
REFUND_NOT_PERMITTED_DUE_TO_CHARGEBACKERRORFAILEDThe requested action could not be performed, semantically incorrect, or failed business validation.
CAPTURE_DISPUTED_PARTIAL_REFUND_NOT_ALLOWEDERRORFAILEDThe requested action could not be performed, semantically incorrect, or failed business validation.
CAPTURE_FULLY_REFUNDEDERRORFAILEDThe capture has already been fully refunded.
DECIMAL_PRECISIONERRORFAILEDThe value of the field should not be more than two decimal places.
DECIMALS_NOT_SUPPORTEDERRORFAILEDCurrency does not support decimals.
DUPLICATE_INVOICE_IDERRORFAILEDRequested invoice number has been previously captured. Possible duplicate transaction.
INVALID_ACCOUNT_STATUSERRORFAILEDAccount validations failed for the user.
INVALID_CURRENCY_CODEERRORFAILEDCurrency code should be a three-character ISO-4217 currency code.
INVALID_INVOICE_IDERRORFAILEDSpecified invoice_id does not exist.
INVALID_PARAMETER_SYNTAXERRORFAILEDThe value of the field does not conform to the expected format.
INVALID_PARAMETER_VALUEERRORFAILEDThe value of a field is invalid.
INVALID_PAYEE_ACCOUNTERRORFAILEDPayee account is invalid.
INVALID_PLATFORM_FEES_AMOUNTERRORFAILEDThe platform_fees amount cannot be greater than the capture amount.
INVALID_RESOURCE_IDERRORFAILEDSpecified resource ID does not exist. Please check the resource ID and try again.
INVALID_STRING_LENGTHERRORFAILEDThe value of a field is either too short or too long.
INVALID_STRING_MAX_LENGTHERRORFAILEDThe value of a field is too long.
MAX_CAPTURE_AMOUNT_EXCEEDEDERRORFAILEDCapture amount exceeds allowable limit. Please contact customer service or your account manager to request the change to your overage limit. The default overage limit is 115%, which allows the sum of all captures to be up to 115% of the authorization amount.
MAX_CAPTURE_COUNT_EXCEEDEDERRORFAILEDMaximum number of allowable captures has been reached. No additional captures are possible for this authorization. Please contact customer service or your account manager to change the number of captures that be made for a given authorization.
MAX_NUMBER_OF_REFUNDS_EXCEEDEDERRORFAILEDYou have exceeded the number of refunds that can be processed per capture.
MISSING_REQUIRED_PARAMETERERRORFAILEDA required field / parameter is missing.
MULTIPLE_AUTHORIZATIONS_FOUNDERRORFAILEDCannot void multiple authorizations.
NOT_AUTHORIZEDERRORFAILEDYou do not have permission to access or perform operations on this resource.
PARTIAL_REFUND_NOT_ALLOWEDERRORFAILEDYou cannot do a refund for an amount less than the original capture amount.
PAYEE_ACCOUNT_LOCKED_OR_CLOSEDERRORFAILEDTransaction could not complete because payee account is locked or closed.
PAYEE_ACCOUNT_RESTRICTEDERRORFAILEDPayee account is restricted.
PAYER_ACCOUNT_LOCKED_OR_CLOSEDERRORFAILEDThe payer account cannot be used for this transaction.
PAYER_CANNOT_PAYERRORFAILEDPayer cannot pay for this transaction.
PENDING_CAPTUREERRORFAILEDCannot initiate a refund as the capture is pending.
PERMISSION_DENIEDERRORFAILEDYou do not have permission to access or perform operations on this resource.
PERMISSION_NOT_GRANTEDERRORFAILEDPayee of the authorization has not granted permission to perform capture on the authorization.
PREVIOUSLY_CAPTUREDERRORFAILEDAuthorization has been previously captured and hence cannot be voided.
PREVIOUSLY_VOIDEDERRORFAILEDAuthorization has been previously voided and hence cannot be voided again.
REFUND_AMOUNT_EXCEEDEDERRORFAILEDThe refund amount must be less than or equal to the capture amount that has not yet been refunded.
REFUND_AMOUNT_TOO_LOWERRORFAILEDThe amount after applying currency conversion is zero and hence the capture cannot be refunded. The currency conversion is required because the currency of the capture is different than the currency in which the amount was settled into the payee account.
REFUND_CAPTURE_CURRENCY_MISMATCHERRORFAILEDRefund must be in the same currency as the capture.
REFUND_FAILED_INSUFFICIENT_FUNDSERRORFAILEDCapture could not be refunded due to insufficient funds.
REFUND_NOT_ALLOWEDERRORFAILEDCapture cannot be refunded.
REFUND_TIME_LIMIT_EXCEEDEDERRORFAILEDYou are over the time limit to perform a refund on this capture.
TRANSACTION_REFUSEDERRORFAILEDPayPal's internal controls prevent authorization from being captured.
REFUND_NOT_SUPPORTED_FOR_PAYMENT_SOURCEERRORFAILEDRefund was refused by the payment source.
REFUND_TIME_EXCEEDED_FOR_PAYMENT_SOURCEERRORFAILEDRefund was refused by the payment source.
REFUND_FAILED_BY_PAYMENT_SOURCEERRORFAILEDRefund was refused by the payment source.