Test in sandbox

DocsCurrent

Last updated: Oct 18th, 5:40am

You can test account update errors in the sandbox. If you want to understand the response if you updated an account without adding a required data point, exclude the data point from your update calls.

The default state for updating bank accounts in the sandbox is a happy path because we cannot verify test data. To test negative scenarios, use a simulation keyword for the specific use case, as shown in the following examples:

Incorrect business information

Use case scenario: Update an account that previously completed KYC verification with incorrect merchant name or business information.

Simulation code: The business_name in the patch must be DECLINED.

    1[
    2 {
    3 "op": "replace",
    4 "path": "/business_entity/names/@id=='S7S37669QZ2BN'",
    5 "value": {
    6 "business_name": "DECLINED",
    7 "type": "LEGAL"
    8 }
    9 }
    10]

    Incorrect primary authorized user name

    Use case: Update a sole proprietor account that has already completed KYC verification with an incorrect primary authorized name.

    Simulation code

    • The given_name for the primary authorized user (individual_owners) must contain the word "DECLINED" (e.g., DECLINEDDAVID).
    • The surname for the primary authorized user (individual_owners) must be "DECLINED".
      1[
      2 {
      3 "op": "replace",
      4 "path": "/individual_owners/@id=='{{account_id}}'/names/@id=='HMWK8QBM8V5W'",
      5 "value": {
      6 "given_name": "James DECLINED",
      7 "surname": "DECLINED",
      8 "type": "LEGAL"
      9 }
      10 }
      11]

      Incorrect beneficial owner

      Use case scenario: Update a merchant account with an incorrect beneficial owner name.

      Simulation code: The given_name and surname for the beneficial owner (office_bearers or beneficial_owners) must be "DECLINED".

      1. Office bearers
      2. Beneficial owners
      1[
      2 {
      3 "op":"replace",
      4 "path":"/business_entity/office_bearers/individuals/@id=='{{ob_id}}'/names",
      5 "value": [{
      6 "type": "LEGAL",
      7 "given_name": "Another DECLINED",
      8 "surname": "DECLINED"
      9 }]
      10 }
      11]

      Incorrect beneficial owner address

      Use case scenario: Update a merchant account with incorrect beneficial owner or office bearer address.

      Simulation code: For stakeholders (office_bearers or beneficial_owners):

      • address_line_1 must be Campus 611
      • address_line_2 must be 300
      • admin_area_2 must be 300
      1. Office bearers
      2. Beneficial owners
      1[
      2 {
      3 "op": "replace",
      4 "path": "/business_entity/office_bearers/individuals/@id=='{{ob_id}}'/addresses",
      5 "value": [
      6 {
      7 "type": "HOME",
      8 "address_line_1": "Campus 611",
      9 "address_line_1": "300"
      10 "admin_area_2": "300",
      11 "postal_code": "12345",
      12 "country_code": "US"
      13 }
      14 ]
      15 }
      16]

      Incorrect business name and beneficial owner name

      Use case scenario: Update a merchant account with an incorrect business name and beneficial owner name.

      Simulation code:

      • The business_name must be "DECLINED".
      • The given_name and surname for the beneficial owner (office_bearers or beneficial_owners) must be "DECLINED".
        1[
        2 {
        3 "op": "replace",
        4 "path": "/business_entity/names/@id=='S7S37669QZ2BN'",
        5 "value": {
        6 "business_name": "DECLINED",
        7 "type": "LEGAL"
        8 }
        9 },
        10 {
        11 "op":"replace",
        12 "path":"/business_entity/beneficial_owners/individuals/@id=='{{bo_id}}'/names",
        13 "value": [{
        14 "type": "LEGAL",
        15 "given_name": "Another DECLINED",
        16 "surname": "DECLINED"
        17 }]
        18 }
        19]

        Incorrect beneficial owner address and primary authorized user information

        Use case scenario: Update a merchant account with an incorrect beneficial owner address, incorrect primary authorized user information, and missing primary authorized user information.

        Simulation code:

        • The given_name for the primary authorized user (individual_owners) must contain the word "DECLINED".
        • The given_name and surname for the beneficial owner(office_bearers or beneficial_owners) must be "DECLINED".
        • Do not include a required data point for a primary authorized user. In this example, we exclude the date of birth.
          1[
          2 {
          3 "op": "replace",
          4 "path": "/individual_owners/@id=='{{account_id}}'/names/@id=='HMWK8QBM8V5W'",
          5 "value": {
          6 "given_name": "James DECLINED",
          7 "surname": "Collins",
          8 "type": "LEGAL"
          9 }
          10 },
          11 {
          12 "op":"replace",
          13 "path":"/business_entity/beneficial_owners/individuals/@id=='{{bo_id}}'/names",
          14 "value": [{
          15 "type": "LEGAL",
          16 "given_name": "Another DECLINED",
          17 "surname": "DECLINED"
          18 }]
          19 }
          20]

          Simulate limitations in sandbox

          Use case scenario: Update a key value on the merchant account and trigger a re-verification failure. The system will apply a limitation after 30 days.

          You don't have to wait 30 days to verify the limitation. Instead, you can complete the following steps to advance all the limitation counters on a merchant account:

          • Use the PATCH API with an add operation and a single email object.
          • Use this specific format for the email address you use for the PATCH request, paypaltimetravel.x@domain.com where x represents the number of days you want to simulate. For example, if you want to simulate 30 days passing, you would set x = 30. The email should end with a valid domain.

          When processed, the PATCH request advances the counter, but the email address is not stored and does not affect the account.

          Simulation code:

          • Create a sole proprietor account using keywords that fail verification.
          • Edit the account with keywords that trigger a failed re-verification. For example, change the given name of the primary authorized user (individual_owners) to DECLINEDDAVID and the surname to DECLINED.
          • After PayPal creates the merchant account and sends webhooks about the status change, complet a GET request to confirm that a limitation is placed on the account. Now, use the PATCH API to add the email address paypaltimetravel.30@paypal.com to the account.

          Note: Do not combine the passage of time simulation with other operations in the same PATCH request. For example, you cannot add an email address and phone number in the same request.

            1[
            2 {
            3 "op": "add",
            4 "path": "/individual_owners/@id=='{id}'/emails/-",
            5 "value": {
            6 "email": "paypaltimetravel.30@paypal.com"
            7 }
            8 }
            9]

            Next steps:

            When you receive an account status updated webhook, complete a GET request to confirm that all transactions and withdrawals are blocked.

            We use cookies to improve your experience on our site. May we use marketing cookies to show you personalized ads? Manage all cookies