> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mangopay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Payment methods

export const Sca = ({content}) => <Tooltip tip="Regulatory requirement for individuals to authenticate transactions and other actions with multiple factors.">
    {content}
  </Tooltip>;

Mangopay provides test cards and account details for you to simulate transactions in your Sandbox environment.

<Warning>
  **Warning - For Sandbox only**

  All cards and account details available on this page are for testing purposes in the Sandbox environment only.
</Warning>

## Cards

### CB/Visa/Mastercard

The following card triggers a 3DS2 frictionless flow, where <Sca content="SCA" /> is not required. You need to set the `SecureMode` to `DEFAULT` or `NO_CHOICE`.

<table>
  <tbody>
    <tr>
      <th class="header">**Card number**</th>
      <td class="table-content">4970107111111119</td>
    </tr>

    <tr>
      <th class="header">**Expiry date**</th>
      <td class="table-content">Any future date (month/year)</td>
    </tr>

    <tr>
      <th class="header">**CVC**</th>
      <td class="table-content">Any three digits</td>
    </tr>

    <tr>
      <th class="header">**Currencies**</th>
      <td class="table-content">See the <a href="/guides/currencies">currencies</a> page for details</td>
    </tr>
  </tbody>
</table>

The following card triggers a 3DS2 challenge flow, where <Sca content="SCA" /> is required. You need to set the `SecureMode` to `FORCE` or `NO_CHOICE`.

<table>
  <tbody>
    <tr>
      <th class="header">**Card number**</th>
      <td class="table-content">4970105181818183</td>
    </tr>

    <tr>
      <th class="header">**Expiry date**</th>
      <td class="table-content">Any future date (month/year)</td>
    </tr>

    <tr>
      <th class="header">**CVC**</th>
      <td class="table-content">Any three digits</td>
    </tr>

    <tr>
      <th class="header">**Currencies**</th>
      <td class="table-content">See the <a href="/guides/currencies">currencies</a> page for details</td>
    </tr>
  </tbody>
</table>

### Maestro/Bancontact

The following card triggers a 3DS2 challenge flow, where <Sca content="SCA" /> is required. You need to set the `SecureMode` to `FORCE`.

<table>
  <tbody>
    <tr>
      <th class="header">**Card number**</th>
      <td class="table-content">5033951000000004</td>
    </tr>

    <tr>
      <th class="header">**Expiry date**</th>
      <td class="table-content">Any future date (month/year)</td>
    </tr>

    <tr>
      <th class="header">**CVC**</th>
      <td class="table-content">Any three digits</td>
    </tr>

    <tr>
      <th class="header">**Currencies**</th>
      <td class="table-content">EUR</td>
    </tr>
  </tbody>
</table>

### AMEX

The following card triggers a 3DS2 challenge flow, where <Sca content="SCA" /> is required. You need to set the `SecureMode` to `FORCE`.

<table>
  <tbody>
    <tr>
      <th class="header">**Card number**</th>
      <td class="table-content">375989111111119</td>
    </tr>

    <tr>
      <th class="header">**Expiry date**</th>
      <td class="table-content">Any future date (month/year)</td>
    </tr>

    <tr>
      <th class="header">**CVC**</th>
      <td class="table-content">1234</td>
    </tr>

    <tr>
      <th class="header">**Currencies**</th>
      <td class="table-content">EUR</td>
    </tr>
  </tbody>
</table>

## Banking

### Bank wires

To test pre-declared bank wire transfers, first call the [POST Create a Direct Bank Wire PayIn](/api-reference/bank-wire-payins/create-bank-wire-payin) endpoint to declare the payment.

Then, to simulate the user making the wire transfer with their bank, you can then use the <a href="https://hub.mangopay.com/" target="_blank">Mangopay Dashboard</a>

Once connected:

* Select your Sandbox `ClientId` in the top left
* Click ***Sandbox Ops*** at the bottom of the left sidebar
* Select ***Sandbox Operations*** in the left sidebar of the legacy Dashboard
* Select ***Process a payin bankwire***
* Enter the `Id` of the pay-in you declared
* Select ***Accept the payin*** (or ***Refuse the payin***) and click ***Submit***

After a few seconds, pay-in `Status` changes to `SUCCEEDED` and the funds are credited to the wallet.

### Virtual Accounts

To test a bank wire transfer to a Virtual Account, you need to first create the account using the [POST Create a Virtual Account](/api-reference/virtual-accounts/create-virtual-account) endpoint.

Then, to simulate the user making the wire transfer with their bank, you can then use the <a href="https://hub.mangopay.com/" target="_blank">Mangopay Dashboard</a>

Once connected:

* Select your Sandbox `ClientId` in the top left
* Click ***Sandbox Ops*** at the bottom of the left sidebar
* Select ***Sandbox Operations*** in the left sidebar of the legacy Dashboard
* Select ***Create a banking alias payin***
* Enter the following details (which are all required) and click ***Submit***:
  * The `Id` of the Virtual Account in the ***Banking alias Id*** field
  * The amount to pay in (note that this is **not** in minor units, so `100` is EUR 100.00, for example)
  * The custom reference, which is displayed in the pay-in's `WireReference`
  * The (fictional) name of the account holder
  * The (testing) IBAN and BIC – you can use [these details](/testing/payouts#general-testing) for FR and GB

After a few seconds, the pay-in is created. To retrieve its `Id` via the API, call [GET List Transactions for a Wallet](/api-reference/transactions/list-transactions-wallet) using the Virtual Account's `WalletId`.

You can also set up the `PAYIN_NORMAL_SUCCEEDED` [webhook](/webhooks) which contains the pay-in `Id` as the `RessourceId` parameter.

Use the [GET View a PayIn](/api-reference/virtual-accounts/view-payin-external-instruction) endpoint to retrieve the full details of the [External Instruction Bank Wire](/api-reference/virtual-accounts/external-instruction-bank-wire-payin-object) pay-in.

### Pay by bank

To test Pay by Bank, follow the `RedirectURL` in the API response to access the simulator.

Use the credentials below to simulate the user's login to their bank, depending on the `Country`.

Other testing data is provided if available. The `BankName` value skips the bank selection step, and the `IBAN` may make it possible to avoid a second authentication step (note that in Production, the `BIC` is required as well). See the [guide](/guides/payment-methods/banking/pay-by-bank) for details.

<table>
  <thead>
    <tr>
      <th class="header">`Country`</th>
      <th class="header">User name</th>
      <th class="header">Password</th>
      <th class="header">`BankName`</th>
      <th class="header">`IBAN`</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td class="table-content">`AT`</td>
      <td class="table-content">u37836153</td>
      <td class="table-content">idv243</td>
      <td class="table-content">-</td>
      <td class="table-content">`AT237779048615835002`</td>
    </tr>

    <tr>
      <td class="table-content">`DE`</td>
      <td class="table-content">u83188312</td>
      <td class="table-content">zhx571</td>
      <td class="table-content">`de-demobank-open-banking-embedded-templates`</td>
      <td class="table-content">`DE86622025011873401330`</td>
    </tr>

    <tr>
      <td class="table-content">`DK`</td>
      <td class="table-content">u14373334</td>
      <td class="table-content">oam094</td>
      <td class="table-content">-</td>
      <td class="table-content">`DK6112197300631497`</td>
    </tr>

    <tr>
      <td class="table-content">`EE`</td>
      <td class="table-content">u45530588</td>
      <td class="table-content">jkw063</td>
      <td class="table-content">`ee-demobank-open-banking-redirect`</td>
      <td class="table-content">`EE831853951696135352`</td>
    </tr>

    <tr>
      <td class="table-content">`ES`</td>
      <td class="table-content">u89609866</td>
      <td class="table-content">bst827</td>
      <td class="table-content">`es-demobank-open-banking-redirect`</td>
      <td class="table-content">`ES4320339641318952396609`</td>
    </tr>

    <tr>
      <td class="table-content">`FI`</td>
      <td class="table-content">u06516046</td>
      <td class="table-content">kam413</td>
      <td class="table-content">`fi-demobank-open-banking-redirect`</td>
      <td class="table-content">`FI5692728476249545`</td>
    </tr>

    <tr>
      <td class="table-content">`FR`</td>
      <td class="table-content">u77894411</td>
      <td class="table-content">mzw990</td>
      <td class="table-content">`fr-demobank-open-banking-redirect`</td>
      <td class="table-content">`FR7010096000506758298614X08`</td>
    </tr>

    <tr>
      <td class="table-content">`GB`</td>
      <td class="table-content">u83646180</td>
      <td class="table-content">rlf446</td>
      <td class="table-content">`uk-demobank-open-banking-redirect`</td>
      <td class="table-content">`GB27WRDK15987166981285`</td>
    </tr>

    <tr>
      <td class="table-content">`IE`</td>
      <td class="table-content">u92721594</td>
      <td class="table-content">nbs589</td>
      <td class="table-content">-</td>
      <td class="table-content">-</td>
    </tr>

    <tr>
      <td class="table-content">`IT`</td>
      <td class="table-content">u42389294</td>
      <td class="table-content">fog735</td>
      <td class="table-content">`it-demobank-open-banking-redirect`</td>
      <td class="table-content">`IT39P0266750520LJC1V5JDSPGJ`</td>
    </tr>

    <tr>
      <td class="table-content">`NL`</td>
      <td class="table-content">u31617430</td>
      <td class="table-content">xnf660</td>
      <td class="table-content">`nl-demobank-open-banking-redirect`</td>
      <td class="table-content">`NL24DGXA1322823873`</td>
    </tr>

    <tr>
      <td class="table-content">`PL`</td>
      <td class="table-content">u92646934</td>
      <td class="table-content">ivf650</td>
      <td class="table-content">`pl-demobank-open-banking-redirect`</td>
      <td class="table-content">`PL90254328459114220292385619`</td>
    </tr>

    <tr>
      <td class="table-content">`PT`</td>
      <td class="table-content">u16025013</td>
      <td class="table-content">jvq103</td>
      <td class="table-content">`pt-demobank-open-banking-redirect`</td>
      <td class="table-content">`PT63465472006596504782081`</td>
    </tr>
  </tbody>
</table>

### Direct debit

For testing [direct debits](/guides/payment-methods/banking/direct-debit), you can use the following bank account data and mock values. Note that it is not possible to test direct debit email notifications in Sandbox.

#### SEPA

You can use the following details on [POST Create an IBAN Bank Account](/api-reference/bank-accounts/create-iban-bank-account) for testing the **SEPA scheme**:

<table>
  <tbody>
    <tr>
      <th class="header">`IBAN`</th>
      <td class="table-content">FR7630004000031234567890143</td>
    </tr>

    <tr>
      <th class="header">`BIC`</th>
      <td class="table-content">BNPAFRPP</td>
    </tr>
  </tbody>
</table>

#### Bacs

You can use the following details on [POST Create a GB Bank Account](/api-reference/bank-accounts/create-gb-bank-account) for testing the **Bacs scheme**:

<table>
  <tbody>
    <tr>
      <th class="header">`AccountNumber`</th>
      <td class="table-content">55779911</td>
    </tr>

    <tr>
      <th class="header">`SortCode`</th>
      <td class="table-content">200000</td>
    </tr>
  </tbody>
</table>

#### Mandates

When testing direct debit mandates and pay-ins, you can set a specific value for the `FirstName` parameter of the [Natural User](/api-reference/users/natural-user-object-sca) who owns the bank account for the mandate.

* `Successful` - Results in an active mandate. You must do a pay-in with this mandate for the status to be updated.
* `Invalid` - For Bacs only, results in a failed mandate due to incorrect bank account information.
* `Penniless` - Results in a failed pay-in due to lack of funds (with the <a href="/errors/codes/001830">001830</a>).
* `Fickle` - Results in a successful pay-in which is disputed by the user and hence a dispute is created.

#### Direct debit refunds

It is not possible to initiate a refund for a direct debit pay-in until the 8th day following the day of the pay-in's `CreationDate` (to avoid a conflict with possible late failures).

On [POST Create a Refund](/api-reference/refunds/create-refund-payin) you can set the `Tag` to the mock value `ignore_mindate` to ignore the minimum date restriction and test refunds within 7 days. Note that you can only create a refund if the pay-in `Status` is `SUCCEEDED`, which you can achieve with the `Successful` mock value above.

## Alternative payment methods (APMs)

### Apple Pay

To test Apple Pay, [create a sandbox Apple ID](https://developer.apple.com/help/app-store-connect/test-in-app-purchases-main/create-sandbox-apple-ids) and then use this ID to log in on your device. Once logged in as a sandbox tester, [add an Apple Pay test card](https://developer.apple.com/apple-pay/sandbox-testing/) to your Apple wallet to test your integration on your device.

### Bancontact

To test Bancontact pay-ins on web, follow the `RedirectURL` in the API response to access Mangopay’s simulator. The simulator gives options to test successful and failed payment scenarios.

For mobile, the `DeepLinkURL` returned by the API in Sandbox is a placeholder. Bancontact doesn’t provide a testing environment, so the only way to complete the payment in Sandbox is by using Mangopay’s web-based simulator, accessible via the `RedirectURL` value.

### Bizum

The only way to test Bizum is via Mangopay's simulator. To test Bizum, follow the `RedirectURL` in the API response to access Mangopay’s simulator. The simulator gives options to test successful and failed payment scenarios.

In Sandbox, the `RedirectURL` is returned in all cases, because it is the only way to complete the transaction. In Production, the `RedirectURL` is not returned if `Phone` is sent.

### BLIK

To test BLIK, follow the `RedirectURL` in the API response to access Mangopay’s simulator. The simulator gives options to test successful and failed payment scenarios.

### Google Pay

You can use Google Pay's [test card suite](https://developers.google.com/pay/api/android/guides/resources/test-card-suite) to test your Google Pay integration with Mangopay. Once you have joined the test card suite group, you can use the following cards in Sandbox:

* **4111111111111111** - To trigger a challenge flow (requiring 3DS redirection) on web
* **5555555555554445** - To trigger a challenge flow (requiring 3DS redirection) on mobile
* **5555555555554444** - To trigger a frictionless flow (not requiring 3DS redirection) on web and mobile

### iDEAL

To test iDEAL, follow the `RedirectURL` in the API response to access Mangopay’s simulator. The simulator gives options to test successful and failed payment scenarios.

### Klarna

To test Klarna, follow the `RedirectURL` returned in Sandbox to access Klarna’s simulator.

Klarna’s <a href="https://docs.klarna.com/resources/developer-tools/sample-data/sample-customer-data/" target="_blank">Sample customer data</a> allows you to test successful and failed payment scenarios. The sample data relating to disputes is available but can’t be used to simulate disputes on the Klarna’s sandbox Merchant Portal.

**Note:** If you use data other than the samples provided, it will be used to create a new Klarna account during the payment process.

### MB WAY

To test MB WAY, enter your phone number in the `Phone` parameter to receive an SMS containing a link to Mangopay’s simulator.

### Multibanco

To test Multibanco, follow the `RedirectURL` in the API response to access Mangopay’s simulator. The simulator gives options to test successful and failed payment scenarios.

### Payconiq

To test Payconiq pay-ins on web, follow the `RedirectURL` in the API response to access Mangopay’s simulator. The simulator gives options to test successful and failed payment scenarios.

For mobile, the `QRCodeURL` and `DeepLinkURL` returned by the API in Sandbox are placeholders. The only way to complete the payment in Sandbox is by using Mangopay’s web-based simulator, accessible via the `RedirectURL` value.

### PayPal

When PayPal is activated in Sandbox, Mangopay provides you with credentials to a PayPal account that can be used for testing.

To test PayPal, follow the `RedirectURL` in the API response to access the PayPal payment page and log in using the test account provided.

### Satispay

To test Satispay, follow the `RedirectURL` in the API response to access Mangopay’s simulator. The simulator gives options to test successful and failed payment scenarios.

### Swish

To test Swish, follow the `RedirectURL` in the API response to access Mangopay’s simulator. The simulator gives options to test successful and failed payment scenarios.

For mobile, the `QRCodeURL` and `DeepLinkURL` are not returned by the API in Sandbox. The only way to complete the payment in Sandbox is by using Mangopay’s web-based simulator, accessible via the `RedirectURL` value.

### TWINT

To test TWINT, follow the `RedirectURL` in the API response to access Mangopay’s simulator. The simulator gives options to test successful and failed payment scenarios.
