> For the complete documentation index, see [llms.txt](https://codemash.gitbook.io/codemash/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://codemash.gitbook.io/codemash/cloud/payments/integrations/test.md).

# Test an integration

Test a payment integration — Norbix signs in to the provider with the saved keys; then confirm by hand that a real payment event arrived.

**Where:** Payments → Integrations → an integration → **Test integration** · `/projects/<project>/payments/integrations/<integrationId>/edit`

## Before you start

* The integration is saved — see [Providers](/codemash/cloud/payments/integrations/providers.md). A new integration must be saved before it can be tested (the panel says *Run test after successful save.*).
* Nothing is charged and no input is asked: the test takes no amount, no card and no recipient.

## Steps

1. Open **Payments → Integrations** and press the integration, here `Stripe test mode`. The badges say **NOT TESTED** and **NOT CONFIRMED** until the first test.
2. At the bottom of the form, press **Test integration**.

   <figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-69ef9d964b6ef8a0781a248c609dd9452fa4291c%2Fintegrations-test-1.png?alt=media" alt="The lower part of the Stripe integration page: Default currency EUR, Integration Name Stripe test mode, Cancel and Save, and the panel Run test after successful save. with the Test integration button"><figcaption><p>The test panel before the first run.</p></figcaption></figure>

## Result

The panel shows **Test passed** or **Test failed**, the time of the run, and one line per check — for payments there is one, **Connect**. The badge becomes **TESTED** or **TEST FAILED**.

<figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-a8435185d2c02a9260dee7f3e7e796033273df60%2Fintegrations-test-2.png?alt=media" alt="Test passed, Last run 10/6/2026, Connect Success, the Test integration button, and the yellow box Confirm you received the message with the button I received it"><figcaption><p>Stripe in test mode: <strong>Connect — Success</strong>.</p></figcaption></figure>

What **Connect** checks depends on the provider:

| Provider                                                            | What the test does                                                                                                                                |
| ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| Stripe, PayPal, Adyen, Paddle, Lemon Squeezy, Mollie, Authorize.Net | Signs in to the provider's API with the saved keys. A wrong key fails (*… authentication failed for integration int\_… : HTTP 401 Unauthorized*). |
| Shopify, WooCommerce                                                | Checks that the shop address answers. The webhook secret is not checked.                                                                          |
| Braintree, Checkout.com                                             | Checks only that the saved fields and secrets are filled and well-formed — a test can pass with wrong keys.                                       |

<figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-38d07b7eec066231eca35ca7249bad5da32bee26%2Fintegrations-test-3.png?alt=media" alt="Test failed, Connect Failed: PayPal authentication failed for integration int_3GWTIFeBFBenGeyJ6raMjX: HTTP 401 Unauthorized"><figcaption><p>A failed test: the PayPal client id in this example is made up.</p></figcaption></figure>

The test does not prove that webhooks arrive. After a passed test the yellow box **Confirm you received the message** appears (its text speaks of an inbox or a device — for payments, read it as "a webhook arrived"). Make a test payment at the provider, check that it is listed under **Received webhooks** with **200**, then press **I received it**: the badge turns **CONFIRMED**.

<figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-aa1da9909f3f8775270e88b6bb9edefcb6b6b18e%2Fintegrations-test-4.png?alt=media" alt="Editing Stripe integration with the badges ENABLED, TESTED, CONFIRMED"><figcaption><p>Tested and confirmed.</p></figcaption></figure>

## Change or remove it later

* Fix the fields, type the secrets again (they are never shown), press **Save**, and test again.
* [Disable or delete](/codemash/cloud/payments/integrations/disable.md) an integration you no longer use.

## Do it from code

```ts
const { items } = await norbix.hub.payments.testPaymentsIntegration({
  integrationId: 'int_5Fg01ggCM3kAfgeSD1NMwV', // Stripe test mode
});
console.log(items); // [ { operation: 'Connect', result: 'OK' } ]

await norbix.hub.payments.confirmPaymentsIntegrationHumanDelivery({
  integrationId: 'int_5Fg01ggCM3kAfgeSD1NMwV',
});
```

```sh
norbix hub payments integration test --integrationId int_5Fg01ggCM3kAfgeSD1NMwV
norbix hub payments integration human delivery confirm --integrationId int_5Fg01ggCM3kAfgeSD1NMwV
```

The client setup is on the [Payments page](/codemash/cloud/payments.md#use-it-from-code). API: [Test Payments Integration](/codemash/api-reference/payments/integrations/test-payments-integration.md) · [Confirm Payments Integration Human Delivery](/codemash/api-reference/payments/integrations/confirm-payments-integration-human-delivery.md)
