Negative Simulation Outcomes - Payments
By including a specific amount in your payment handle or payment request, you can simulate a range of negative scenarios for PayPal payments in our TEST environment.
- Pass EXTERNAL as the Simulator field value in your request header.
Payment handle requests
The table shows details of the PayPal errors you can simulate by passing the specified amounts in a payment handle request. Note that in each case, the following codes also apply:
PayPal Status Code: 400
Paysafe HTTP Status Code: 502
Paysafe Error Code: 1001
PayPal Error Code | PayPal Error Message Details | Description | Amount |
---|---|---|---|
AGREEMENT_ALREADY_CANCELLED | The requested agreement is already canceled.
| The agreement that was used to make the payment is already canceled. | 25.11 |
AMOUNT_MISMATCH | The totals of the cart item amounts do not match sale amounts.
| The amount total does not match the item amount totals. | 25.21 |
AUTHORIZATION_ALREADY_COMPLETED | Capture refused - this authorization has already been completed.
| The capture on the authorization failed because it was already completed by one or more previous captures on this authorization. | 25.31 |
AUTHORIZATION_CANNOT_BE_VOIDED
| Authorization is in [x] state and hence cannot be voided. .
| You cannot void this authorization because it is in a state, such as captured or expired, that cannot be voided.
| 25.41 |
AUTHORIZATION_EXPIRED
| Authorization has expired. .
| The authorization related to this request has expired. You must reauthorize the transaction.
| 25.51 |
AUTHORIZATION_ID_DOES_NOT_EXIST
| The requested authorization ID does not exist.
| The authorization ID in the request does not exist in the PayPal system.
| 25.61 |
AUTHORIZATION_VOIDED
| Authorization has been voided.
| This authorization was already voided. You can show authorization details for a voided authorization.
| 25.71 |
BANK_ACCOUNT_VALIDATION_FAILED
| Bank account validation failed. | Bank account validation failed. | 25.81 |
BUYER_NOT_SET
| Buyer is not yet set for this purchase. | Buyer is not yet set for this purchase. | 25.91 |
CANNOT_PAY_SELF
| Payer cannot pay him- or herself. | Payer cannot pay him- or herself. | 26.11 |
CANNOT_REAUTH_CHILD_AUTHORIZATION
| Can only reauthorize the original authorization, not a reauthorization.
| Reauthorization only works on an original authorization ID.
| 26.21 |
CANNOT_REAUTH_INSIDE_HONOR_PERIOD
| Reauthorization is not allowed within the honor period.
| You can only reauthorize a payment after the three-day honor period concludes.
| 26.31 |
CAPTURE_AMOUNT_LIMIT_EXCEEDED
| Capture amount specified exceeded allowable limit.
| You can only capture up to the original authorization amount.
| 26.41 |
CARD_TOKEN_PAYER_MISMATCH
| payer_id does not match ID for this token.
| The payer_id must match the one that was provided when the credit card was stored in the vault.
| 26.51 |
CREDIT_CARD_CVV_CHECK_FAILED
| The credit card CVV check failed.
| The CVV provided for the credit card was not valid. Resend the payment with a valid CVV for the credit card.
| 26.61 |
CREDIT_CARD_REFUSED
| Credit card was refused.
| The credit card used for the payment was refused. Resend the request with another credit card.
| 26.71 |
CREDIT_PAYMENT_NOT_ALLOWED
| Buyer cannot use credit to complete the payment.
| You cannot use credit to complete this payment. Ask the customer to retry the transaction with alternate funding instrument.
| 26.81 |
CURRENCY_MISMATCH
| Currency provided in the request must match the currency of the parent order or authorization.
| The currency that was used to capture an authorization must match the original currency of the authorization.
| 26.91 |
CURRENCY_NOT_ALLOWED
| Currency is not supported.
| The currency is not currently supported.
| 27.11 |
DUPLICATE_REQUEST_ID
| The value of PayPal-Request-Id header has already been used.
| Resend the request with a unique PayPal-Request-Id header value.
| 27.21 |
EXPIRED_CREDIT_CARD_TOKEN
| Credit card token is expired.
| Use the Vault API to store the credit card again.
| 27.31 |
FEATURE_UNSUPPORTED_FOR_PAYEE
| This feature is unsupported. | This feature is unsupported. | 27.41 |
FULL_REFUND_NOT_ALLOWED_AFTER_PARTIAL_REFUND
| Full refund refused - partial refund has already been done on this payment.
| You cannot refund the full payment amount after you have partially refunded a payment.
| 27.51 |
IMMEDIATE_PAY_NOT_SUPPORTED
| Immediate pay is not supported for the specified payment intent. | Immediate pay is not supported for the specified payment intent. | 27.61 |
INSTRUMENT_DECLINED
| The instrument presented was either declined by the processor or bank, or it can't be used for this payment.
| If the customer's funding source has insufficient funds, restart the payment and prompt the customer to choose another payment method that is available on your site.
| 27.71 |
INSUFFICIENT_FUNDS
| Buyer cannot pay - insufficient funds.
| The customer must add a valid funding instrument, such as a credit card or bank account, to their PayPal account.
| 27.81 |
INTERNAL_SERVICE_ERROR
| An internal service error has occurred.
| Resend the request at another time. If this error persists, contact PayPal Merchant Technical Support.
| 27.91 |
INVALID_ACCOUNT_NUMBER
| Account number does not exist.
| Provide a valid account number and resend the request.
| 28.11 |
INVALID_CITY_STATE_ZIP
| The combination of city, state, and zip in the address is invalid. | The combination of city, state, and zip in the address is invalid. | 28.21 |
INVALID_EXPERIENCE_PROFILE_ID
| The requested experience profile ID was not found.
| To get the profile ID for a merchant, list web experience profiles.
| 28.31 |
INVALID_FACILITATOR_CONFIGURATION
| This transaction cannot be processed due to an invalid facilitator configuration.
| To process this transaction type, you must have the right account configuration.
| 28.41 |
INVALID_PAYER_ID
| Payer ID is invalid.
| The specified payer_id is not valid. Resend the request with a valid payer_id.
| 28.51 |
INVALID_RESOURCE_ID
| The requested resource ID was not found.
| Provide a valid resource ID and resend the request.
| 28.61 |
MALFORMED_REQUEST
| JSON request is malformed. | JSON request is malformed. | 28.71 |
MERCHANT_NOT_ENABLED_FOR_CHANNEL_INITIATED_BILLING
| Merchant is not enabled for channel-initiated billing.
| The merchant cannot use channel-initiated billing.
| 28.81 |
MERCHANT_NOT_ENABLED_FOR_REFERENCE_TRANSACTION
| Merchant is not enabled for reference transaction.
| The merchant cannot make reference transactions.
| 28.91 |
NEED_CREDIT_CARD
| Need credit card to complete the payment. | Need credit card to complete the payment. | 29.11 |
NEED_CREDIT_CARD_OR_BANK_ACCOUNT
| Need bank or credit card to complete the payment. | Need bank or credit card to complete the payment. | 29.21 |
NOT_IMPLEMENTED
| Not implemented.
| This API capability is not implemented.
| 29.31 |
ORDER_ALREADY_COMPLETED
| Order has already been voided, expired, or completed. | Order has already been voided, expired, or completed. | 29.41 |
ORDER_CANNOT_BE_VOIDED
| Due to the state of the order, you cannot void it. | Due to the state of the order, you cannot void it. | 29.51 |
ORDER_VOIDED
| Order has been voided.
| The order was already voided. For more information, you can show order details.
| 29.61 |
PAYEE_ACCOUNT_LOCKED_OR_CLOSED
| Payee account is locked or closed.
| The recipient account is locked or closed and cannot receive payments.
| 29.71 |
PAYEE_ACCOUNT_NO_CONFIRMED_EMAIL
| Refused - payee account does not have a confirmed email.
| For this transaction to proceed, the payment recipient must have a confirmed email.
| 29.81 |
PAYEE_ACCOUNT_RESTRICTED
| Refused - payee account is restricted.
| The account receiving this payment is restricted and cannot receive payments at this time.
| 29.91 |
PAYER_CANNOT_PAY
| Payer cannot pay for this transaction.
| Payer cannot pay for this transaction. Please contact the payer to find other ways to pay for this transaction.
| 30.11 |
PAYER_COUNTRY_NOT_ENABLED
| Payer country is not enabled for this feature.
| The payer country is not enabled for billing product.
| 30.21 |
PAYER_EMPTY_BILLING_ADDRESS
| Billing address is empty.
| The billing address is required for credit card transactions without a PayPal account.
| 30.31 |
PAYER_ID_MISSING_FOR_CARD_TOKEN
| payer_id is required for payments made with this token.
| A payer_id is required when one was used to store the credit card in the vault.
| 30.41 |
PAYMENT_STATE_INVALID
| This request is invalid due to the current state of the payment.
| The payment state does not allow this kind of request.
| 31.41 |
PERMISSION_DENIED
| No permission for the requested operation.
| You do not have the proper permissions to complete this request.
| 31.51 |
PHONE_NUMBER_REQUIRED
| This transaction requires the payer to provide a valid phone number.
| The customer must provide a phone number to PayPal to proceed with the payment.
| 31.61 |
REFUND_EXCEEDED_TRANSACTION_AMOUNT
| Refund refused - the requested refund amount would exceed the amount of transaction being refunded.
| The requested refund must be less than or equal to the original transaction amount. To see the original transaction amount, show the refund details.
| 31.71 |
REFUND_TIME_LIMIT_EXCEEDED
| This transaction is too old to refund.
| For information about refund time limits, see PayPal Customer Support. After the time limit expires, you must send a payment instead of issuing a refund.
| 31.81 |
REQUIRED_SCOPE_MISSING
| Access token does not have required scope.
| You must get user consent with the correct scope for this type of request.
| 31.91 |
SENDING_LIMIT_EXCEEDED
| The transaction exceeds the buyer's sending limit. | The transaction exceeds the buyer's sending limit. | 32.11 |
SHIPPING_ADDRESS_INVALID
| Provided shipping address is invalid.
| The specified shipping address is not valid.
| 32.21 |
TOO_MANY_REAUTHORIZATIONS
| Maximum number of reauthorizations for this authorization has been reached.
| You can only reauthorize a payment once.
| 32.31 |
TRANSACTION_ALREADY_REFUNDED
| Refund transaction refused - this transaction has already been refunded.
| You can only refund a transaction up to the original amount. While you can do multiple partial refunds up to the original amount, you can only do a full refund once.
| 32.41 |
TRANSACTION_LIMIT_EXCEEDED
| Total payment amount exceeded transaction limit.
| The transaction limit was exceeded. For information about the PayPal transaction limits, see PayPal Customer Support.
| 32.51 |
TRANSACTION_REFUSED
| This request was refused.
| Please refer to link : TRANSACTION_REFUSED | 32.61 |
TRANSACTION_REFUSED_PAYEE_PREFERENCE
| Merchant profile preference is set to automatically deny certain transactions.
| The merchant account preferences are set to deny this kind of transaction.
| 32.71 |
UNSUPPORTED_PAYEE_COUNTRY
|
| The merchant does not accept payments from this country.
| 32.81 |
UNSUPPORTED_PAYEE_CURRENCY
|
| The merchant does not accept payments in this currency.
| 32.91 |
VALIDATION_ERROR
|
| A validation error occurred with your request.
| 33.11 |
Payment handle request example
To simulate an AMOUNT_MISMATCH error for example, use the amount 25.21:
{
"merchantRefNum": "{{$guid}}",
"transactionType": "PAYMENT",
"paymentType": "PAYPAL",
"amount": 2521,
"currencyCode": "USD",
"customerIp": "172.0.0.1",
"paypal": {
"consumerId": "sb-cpfxo1472281@personal.example.com",
"recipientDescription": "Paysafe store description for payment",
"language": "US",
"shippingPreference": "SET_PROVIDED_ADDRESS",
"consumerMessage": "Paysafe note to payer for payment",
"orderDescription": "Paysafe Order description for payment",
"recipientType": "PAYPAL_ID"
},
"billingDetails": {
"nickName": "Home",
"street": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"zip": "M5H 2N2",
"country": "CA"
},
"shippingDetails": {
"recipientName": "John Doe",
"street": "1 Main St",
"city": "San Jose",
"state": "CA",
"country": "US",
"zip": "95131"
},
"profile": {
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@paysafe.com"
},
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStore",
"phone": "12345678"
},
"returnLinks": [
{
"rel": "default",
"href": "https://usgaminggamblig.com/payment/return/success"
},
{
"rel": "on_failed",
"href": "https://usgaminggamblig.com/payment/return/failed"
},
{
"rel": "on_cancelled",
"href": "https://usgaminggamblig.com/payment/return/cancelled"
}
]
}
Payment handle response example
{
"error": {
"code": "1001",
"message": "External Gateway Error",
"details": [
"An external gateway error occurred.",
"AMOUNT_MISMATCH:The amount total does not match the item amount totals."
]
},
"id": "0c3cfd84-50af-41b6-b84e-8349a5e1990b",
"liveMode": false
}
Payment requests
The table shows details of the PayPal errors you can simulate by passing the specified amounts in a payment request. Note that in each case, the following codes also apply:
PayPal Status Code: 400
Paysafe HTTP Status Code: 502
Paysafe Error Code: 1001
PayPal Error Code | PayPal Error Message Details | Description | Amount |
---|---|---|---|
PAYMENT_ALREADY_DONE
| Payment has been done already for this cart.
| You have completed the payment for this request already. Look up the transaction to get the details.
| 30.51 |
PAYMENT_APPROVAL_EXPIRED
| Payment approval has expired.
| Inform customers that the transaction has expired and that they must restart the transaction. Offer customers a link to restart the payment flow from payment creation and redirect the customer to PayPal.
| 30.61 |
PAYMENT_CANNOT_BE_INITIATED
| Payment cannot be processed.
| PayPal cannot start processing the payment due to an issue with the specified information.
| 30.71 |
PAYMENT_DENIED
| PayPal has declined to process this transaction.
| PayPal declined the payment due to one or more customer issues.
| 30.81 |
PAYMENT_EXPIRED
| The payment is expired.
| The payment expired because too much time has passed between payment creation or approval and execution of that payment. Restart the payment request starting from payment creation.
| 30.91 |
PAYMENT_METHOD_UNUSABLE
| Payer cannot pay with this payment method.
| The specified payment method is not usable. For example, PayPal business rules do not allow the payment method or the payment method information was incorrect in the request.
| 31.11 |
PAYMENT_NOT_APPROVED_FOR_EXECUTION
| Payer has not approved payment.
| The customer must approve all payments that use the PayPal payment method.
| 31.21 |
PAYMENT_REQUEST_ID_INVALID
| PayPal request ID is invalid. Please try a different one. | PayPal request ID is invalid. Please try a different one. | 31.31 |
{
"merchantRefNum": "{{merchantrefnum}}",
"amount": 3051,
"currencyCode": "USD",
"dupCheck": true,
"settleWithAuth": false,
"paymentHandleToken": "{{paymenthandletoken}}",
"customerIp": "172.0.0.1",
"description": "Magazine subscription"
}
Payment response example
{
"error": {
"code": "1001",
"message": "External Gateway Error",
"details": [
"An external gateway error occurred.",
"PAYMENT_ALREADY_DONE:You have completed the payment for this request already. Look up the transaction to get the details."
]
},
"id": "894eeda1-b4d5-475e-9b5f-a42b26127daa",
"liveMode": false
}