# Move your PayMe account to a new website or platform Building with an AI agent? Start at https://docs.payme.io/agents.md ## Prerequisites - A PayMe seller account with access to the dashboard ## Related - [Authentication](/payments/getting-started/authentication) - [Quickstart](/payments/getting-started/quickstart) - [Get API access and go live: from sandbox to production](/payments/getting-started/go-live) - [Callbacks](/payments/getting-started/callbacks) - [Callback types reference](/payments/getting-started/callback-types) - [Errors](/payments/getting-started/errors) - [Create a sale (hosted payment page)](/payments/hosted-payment-page/post-generate-sale) - [List sales](/payments/query-apis/post-get-sales) - [Accept Apple Pay](/accepting-payments/payment-methods/apple-pay) - [Accept Google Pay](/accepting-payments/payment-methods/google-pay) Your PayMe account isn't tied to one website. When you move to a new site, or add another one, you connect the same account there. How you connect depends on how the new site takes payments: through a plugin of the site's platform, or through your own code with the PayMe API. This page covers both, running one account on several sites, and sending payment events to automation tools such as Make or Zapier. ## What stays with your account - Your sales, payouts, payment methods and services (such as Apple Pay, Google Pay and Bit) belong to your PayMe account, not to a website. You manage them in the PayMe dashboard, whatever site you use. - Your API credentials belong to the account and to an environment (the sandbox or production), not to a website. The same `seller_payme_id` (MPL) and public key work on your new site. - Apple Pay and Google Pay **on your own page** are the exception: they are set up per domain. See [Run one account on several sites](#run-one-account-on-several-sites). ## Step 1: Choose how the new site connects | Your new site | How it connects to PayMe | |---|---| | Runs on a platform where you add PayMe as a plugin or app, such as Wix or Shopify | Through that plugin. Follow the plugin's own setup, or contact [PayMe support](https://help.payme.io). | | Your own code, or a site builder or AI tool that lets you run code on a server | The PayMe API: [step 2](#step-2-connect-your-own-site-with-the-api) | Plugin setup, including which PayMe details a plugin asks for, is in the plugin's own instructions. If they aren't clear, contact PayMe support before you enter any PayMe key into a plugin. ## Step 2: Connect your own site with the API 1. **Find your credentials.** In the PayMe dashboard, open **Admin → API & Integration** (API ואינטגרציה). It shows your MPL and your public key. If the page is missing, install the API service from the dashboard app store (חנות אפליקציות) first; depending on your account, it may carry a charge. 2. **Put each key where it belongs.** The MPL identifies and authenticates your account on server calls, so it stays on your server. Only the public key may appear in browser code. See [Authentication](/payments/getting-started/authentication). 3. **Build and test in the sandbox.** Open your test account from the dashboard and follow the [Quickstart](/payments/getting-started/quickstart): create a sale, pay it with a test card, receive the callback and refund it. 4. **Go live** with the checklist in [Get API access and go live](/payments/getting-started/go-live). ### If an AI tool or site builder writes your code - Create sales from server-side code, such as a backend or serverless function. Your MPL must never appear in the page's code. - `sale_callback_url` and `sale_return_url` must be public addresses. A preview on `localhost` or a private IP address fails the whole call with error `21`. See [Callback URL rules](/payments/getting-started/callbacks#callback-url-rules). - Give the tool PayMe's [AI Toolkit](/agents) and the pages linked here, rather than older examples from elsewhere. ### When the key "doesn't work" on the new site | What you see | Usual cause | Fix | |---|---|---| | Error `200` "Merchant was not found" | Your MPL was sent as `payme_client_key` | Remove `payme_client_key` and send `seller_payme_id` alone. A seller account has no `payme_client_key` | | Error `251` or `163` | A sandbox MPL sent to production, or the reverse | Use the MPL of the environment you call: `https://sandbox.payme.io/api` or `https://live.payme.io/api` | | Error `1` | No key in the request | Send `seller_payme_id` in the JSON body | | Error `21` | A callback or return URL that isn't a public address | Use your site's public HTTPS address | | Error `720` | The payment method isn't active on your account | Install it from the dashboard app store | | Hosted Fields don't accept the key | The public key of the other environment, or the wrong `testMode` | Use the public key of the same environment as `testMode` | More codes are on [Errors](/payments/getting-started/errors). ## Run one account on several sites One PayMe account can take payments on several sites at once. They share one account: one balance, one set of payouts and one set of services. - **Send both URLs on every sale.** Each `generate-sale` carries its own `sale_callback_url` and `sale_return_url`, so each site gets its own callbacks and its own result page. A seller account has no dashboard setting for a default callback URL. - **Tell the sites' orders apart.** Give each site its own `transaction_id` format, for example `siteA-1001`, or its own callback URL, and store each sale's `payme_sale_id` with the order. `get-sales` filters are exact matches, so look a sale up by its `payme_sale_id`, not by a prefix. - **Apple Pay on PayMe's payment page** (the `sale_url`) needs no domain setup, on any site. - **Apple Pay on your own page** (the browser SDK) needs PayMe's domain file on every domain and subdomain that shows the button, and each domain registered. A seller without a partner asks PayMe Partners () to register its domains. See [Accept Apple Pay](/accepting-payments/payment-methods/apple-pay). - **Google Pay on your own page:** approved domains are managed in the Google Pay & Wallet Console, not in PayMe. Add the new site's domain there. See [Accept Google Pay](/accepting-payments/payment-methods/google-pay). ## Send payment events to an automation tool Tools such as Make and Zapier can start a workflow from a PayMe callback. 1. In the automation tool, create a webhook trigger and copy its URL. 2. Send that URL as `sale_callback_url` when you create each sale. PayMe sends a form-encoded `POST` with fields such as `notify_type`, `payme_sale_id`, `sale_status` and `price`. A paid sale sends `notify_type` `sale-complete`. Every type is on [Callback types reference](/payments/getting-started/callback-types). 3. Before the workflow acts (ships an order, adds a customer to your CRM), confirm the sale. Add an HTTP step that calls [`get-sales`](/payments/query-apis/post-get-sales) with your MPL and the callback's `payme_sale_id`, and check that `sale_status` is `completed` and `sale_price` matches. A seller without a partner key can't verify the callback's `payme_signature`, so this check is your verification. ```json { "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "sale_payme_id": "SALE1767-704312AB-CD3FGH12-JKLM4567" } ``` - Store your MPL in the tool's secure credential settings, not in the text of a shared workflow. - PayMe makes up to 3 attempts to deliver a callback, then drops it. Add a scheduled workflow that lists the day's sales with `get-sales` (`sale_created_min`, `sale_status`) to catch any you missed. - If a plugin creates your sales, the plugin sets their callback URL, and you can't add your own. Check the plugin's own options for notifications, or use the scheduled `get-sales` workflow. ## Switch-over checklist - [ ] The new site is connected: through its plugin's setup, or through the API with production keys kept on the server. - [ ] With the API: every sale the new site creates sends `sale_callback_url` and `sale_return_url` that point to the new site. - [ ] Apple Pay or Google Pay on your own page: the new domains are set up. - [ ] Automations listen to the new site's events. - [ ] Payment pages your old site already created stay payable until they are paid or expire, and their callbacks still go to the old site's callback URL. Keep that URL working until those sales are settled. - [ ] You no longer use the old site: remove PayMe from it as its plugin's instructions describe, or ask PayMe support. - [ ] You ran one small live payment on the new site, checked the callback and `get-sales`, and refunded it.