# Enable payment methods and services for your sellers Building with an AI agent? Start at https://docs.payme.io/agents.md ## Prerequisites - Partner credentials (payme_client_key) from PayMe Partners - The seller's seller_payme_id (MPL) - The vas_payme_id of each service on your partner account ## Related - [List a seller's services](/payments/merchants-management/post-get-vas-seller) - [Enable Apple Pay for a seller](/payments/apple-pay/post-vas-enable-apple-pay) - [Enable Google Pay for a seller](/payments/google-pay/post-vas-enable-google-pay) - [Order POS devices](/payments/point-of-sale-pos/post-vas-enable) - [VAS types](/marketplaces-and-platforms/seller-reference/vas-types) - [Accept Apple Pay](/accepting-payments/payment-methods/apple-pay) - [Accept Google Pay](/accepting-payments/payment-methods/google-pay) - [Accept Bit payments](/accepting-payments/payment-methods/bit) - [Let the buyer choose how to pay](/accepting-payments/checkout-and-in-person/let-the-buyer-choose) - [Create sellers](/marketplaces-and-platforms/seller-onboarding/create-seller) Payment methods other than cards, such as Apple Pay, Google Pay and Bit, and other value-added services (VAS) are turned on per seller. A seller can install them in the PayMe dashboard. As a partner, you turn them on, check them and turn them off with three API calls: | To | Call | |---|---| | Turn a service on | `POST /vas-enable` | | See what a seller has | [`POST /get-vas-seller`](/payments/merchants-management/post-get-vas-seller) | | Turn a service off | `POST /vas-disable` | All three are partner-only. Send your `payme_client_key` and the seller's `seller_payme_id` in the JSON body; the seller must be one of yours. Base URL: `https://sandbox.payme.io/api` in the sandbox, `https://live.payme.io/api` in production. ## The seller's own path: the dashboard app store A seller who logs in to the PayMe dashboard installs Apple Pay, Google Pay or Bit from the app store (חנות אפליקציות). The method is active as soon as it is installed, and you don't need to do anything. A seller can't call `vas-enable` itself, because the call needs a partner key. A seller without a partner who wants to show Apple Pay on its own domains asks PayMe Partners () to register them. ## Before you start You need: - your partner key (`payme_client_key`); - the seller's MPL (`seller_payme_id`); - the `vas_payme_id` of each service: your partner account's ID for that service (`VASL…`). Ask PayMe Partners () for the IDs of the services on your account. You can turn on only the services that your partner account has. Any other returns error `703` with `Partner has no permission for this VAS`. ## Turn a service on `POST https://sandbox.payme.io/api/vas-enable` (production: `https://live.payme.io/api/vas-enable`) ```json { "payme_client_key": "payme_partner_key", "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "vas_payme_id": "VASLDEMO-GOOGLEPAY-VASLDEMO-1234567", "language": "en" } ``` | Field | Required | Description | |---|---|---| | `payme_client_key` | Yes | Your partner key. Keep it on your server. | | `seller_payme_id` | Yes | The seller's MPL. The seller must be one of yours. | | `vas_payme_id` | Yes | Your partner account's ID for the service. | | `vas_data` | Depends on the service | The service's settings. See [What each service needs](#what-each-service-needs). | | `vas_payer_type` | No | Who pays the service fees: `1` – partner, `2` – seller, `3` – reseller. Used only when the service is first created for the seller. Default: the payer set on your partner account's service. | | `language` | No | Language of error messages: `he` (default) or `en`. | The response has one of two outcomes. **`status_code: 0` – the service is on.** The response holds the seller's own copy of the service: `vas_guid`, `vas_is_active: true`, its type, prices and settings. ```json { "status_code": 0, "session": "a1B2c3D4", "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "vas_payme_id": "VASLDEMO-GOOGLEPAY-VASLDEMO-1234567", "vas_guid": "VASLDEMO-VASLDEMO-VASLDEMO-7654321", "vas_type": "AlternativePaymentMethod", "vas_name": null, "vas_is_active": true, "vas_payer_type": 2, "vas_price_currency": "ILS", "vas_price_setup_fixed": 0, "vas_price_periodic_fixed": 0, "vas_price_periodic_variable": "0.00", "vas_price_usage_fixed": 0, "vas_price_usage_variable": "0.00", "vas_market_fee": null, "vas_period": 1 } ``` **`status_code: 2` – PayMe's team completes the setup.** Some services are set up by hand. The call then opens a ticket for PayMe's team and answers: ```json { "status_code": 2, "session": "a1B2c3D4", "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "message": "Zendesk ticket created" } ``` Check the result later with `get-vas-seller`: `vas_is_active` is `true` once the service is on. PayMe sends partners no callback when a seller's service changes. Calling `vas-enable` for a service the seller already has turns it back on and updates its settings with the `vas_data` you send. ## What each service needs | Service | `vas_data` | Notes | |---|---|---| | Apple Pay | `websites`: the domains that show the Apple Pay button on your own pages, up to 99 per call | PayMe checks every domain during the call. See [Apple Pay domains](#apple-pay-domains). PayMe's own payment-page host is registered for you. | | Google Pay | None | To show Google Pay on your own pages, also register your domain in the Google Pay & Wallet Console. See [Accept Google Pay](/accepting-payments/payment-methods/google-pay). | | Bit | None | ILS only, one payment. See [Accept Bit payments](/accepting-payments/payment-methods/bit). | | POS devices | The device order: `number_of_devices` and `items` | Two `vas-enable` calls, then a manual process. See [Order POS devices](/payments/point-of-sale-pos/post-vas-enable). | | 3D Secure, invoicing, B2B transfers and other services | — | Set up by PayMe. Ask PayMe Partners (), with the seller's MPL. | Once a payment method is on, create sales with its `sale_payment_method` (`apple-pay`, `google-pay` or `bit`), or with `multi` to let the buyer choose: see [Let the buyer choose how to pay](/accepting-payments/checkout-and-in-person/let-the-buyer-choose). A sale with a method the seller doesn't have fails with error `720`. ## Apple Pay domains To show the Apple Pay button on your own pages, register every domain and subdomain that shows it: 1. Serve PayMe's domain file, unchanged, at `https:///.well-known/apple-developer-merchantid-domain-association`. The sandbox and production files are different: see [Host PayMe's domain file](/accepting-payments/payment-methods/apple-pay#step-1-host-paymes-domain-file). 2. Call `vas-enable` with the domains in `vas_data.websites`. PayMe fetches each domain's file, compares it with its own, and registers the domains with Apple in the same call. ```json { "payme_client_key": "payme_partner_key", "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "vas_payme_id": "VASLDEMO-VASLDEMO-VASLDEMO-1234567", "vas_data": { "websites": ["example.com", "shop.example.com"] } } ``` - If any domain fails, the whole call fails with error `703`, and `status_additional_info` names each site: `: Certificate does not match, please reconfigure.` or `: Cannot locate certificate.` More than 99 domains also returns `703`. Fix the file and send the call again: nothing is left pending. - If Apple refuses the registration, the call returns error `20` with `Domain is not registered`. - To add domains later, call `vas-enable` again with the new ones. Domains already approved stay approved. - `vas-update`: contact PayMe support for adding Apple Pay domains to an enabled service. The whole Apple Pay setup, including the browser SDK, is on [Accept Apple Pay](/accepting-payments/payment-methods/apple-pay). ## See what a seller has Call [`get-vas-seller`](/payments/merchants-management/post-get-vas-seller). To list only payment methods, filter by `vas_type: AlternativePaymentMethod`. `POST https://sandbox.payme.io/api/get-vas-seller` (production: `https://live.payme.io/api/get-vas-seller`) ```json { "payme_client_key": "payme_partner_key", "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "vas_type": "AlternativePaymentMethod", "language": "en" } ``` Each item in `items` is one of the seller's services. Read `vas_description` (the service's name), `vas_guid` (the seller's copy of the service) and `vas_is_active`. Send `vas_type` as a name from [VAS types](/marketplaces-and-platforms/seller-reference/vas-types): a number or an unknown name returns error `24`. Inactive sellers can be queried too. ## Turn a service off `POST https://sandbox.payme.io/api/vas-disable` (production: `https://live.payme.io/api/vas-disable`), with the same three IDs as `vas-enable`: ```json { "payme_client_key": "payme_partner_key", "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "vas_payme_id": "VASLDEMO-GOOGLEPAY-VASLDEMO-1234567" } ``` ```json { "status_code": 0, "session": "a1B2c3D4", "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "vas_payme_id": "VASLDEMO-GOOGLEPAY-VASLDEMO-1234567" } ``` As with `vas-enable`, the answer can be `status_code: 2` with `Zendesk ticket created` when PayMe's team handles the change. If the seller doesn't have the service, the call returns error `720`. Once a payment method is off, a sale with that `sale_payment_method` fails with error `720`, and `multi` pages stop showing it. To turn it back on, call `vas-enable` again. ## Errors Errors return `status_code: 1` with `status_error_code`. | HTTP | `status_error_code` | When | |---|---|---| | 500 | `1` | `payme_client_key`, `seller_payme_id` or `vas_payme_id` is missing (`get-vas-seller` needs only the first two). | | 400 | `20` | The seller isn't one of yours, or Apple refused an Apple Pay domain registration. | | 500 | `24` | `get-vas-seller`: `vas_type` is a number or an unknown name. | | 500 | `200` | The partner key is unknown. | | 500 | `251` | The seller key is unknown. | | 400 or 500 | `703` | Your partner account doesn't have this service, partners can't change it, or an Apple Pay domain check failed. | | 400 or 500 | `720` | No active service has this `vas_payme_id` (HTTP 500), or, on `vas-disable`, the seller doesn't have the service (HTTP 400). | All error codes are on [Errors](/payments/getting-started/errors).