Onboard a seller, from creation to first payout

Prerequisites

This guide follows one seller through its whole life on your platform: you create it, upload its documents, PayMe approves it, it takes its first payment and gets its first payout. Only partners onboard sellers, with their payme_client_key. For the two ways to create a seller and the fields PayMe's onboarding pages ask for, see Create sellers.

The lifecycle at a glance

Stage What you do How you know it's done
1. Collect the details Your onboarding form Nothing to check yet
2. Create the seller create-seller seller_payme_id in the response, then the seller-create callback
3. Upload the documents upload-seller-files, or the seller uploads them on PayMe's onboarding pages status_code 0
4. Approval Wait for PayMe's review The seller-approve callback, and seller_approved true on get-sellers
5. Services The seller installs payment methods, or you call vas-enable get-vas-seller lists them
6. First sale generate-sale with the seller's MPL The sale-complete callback
7. First payout withdraw-balance, or automatic The withdrawal-complete callback, then get-withdrawals

A seller can take payments from stage 2. Only the payout waits for approval.

1. Collect the seller's details

2. Create the seller

Call create-seller from your server:

curl -X POST https://sandbox.payme.io/api/create-seller \
  -H 'Content-Type: application/json' \
  -d '{
    "payme_client_key": "XXXXXXXX",
    "seller_id": "store-1001",
    "seller_first_name": "Dana",
    "seller_last_name": "Levi",
    "seller_social_id": "9999999999",
    "seller_birthdate": "06/05/1989",
    "seller_social_id_issued": "01/02/2015",
    "seller_gender": 1,
    "seller_email": "random@paymeservice.com",
    "seller_phone": "+972501234567",
    "seller_bank_code": 54,
    "seller_bank_branch": 123,
    "seller_bank_account_number": "123456",
    "seller_site_url": "https://www.example.com",
    "seller_person_business_type": 205,
    "seller_inc": 1,
    "seller_merchant_name": "Dana Ceramics",
    "seller_address_city": "Tel Aviv",
    "seller_address_street": "Herzl",
    "seller_address_street_number": "10",
    "seller_address_country": "IL",
    "market_fee": 2.5,
    "language": "en"
  }'

The values 9999999999, random@paymeservice.com and bank 54 are sandbox test values. Use the seller's real details in production.

From the response:

{
  "status_code": 0,
  "session": "a1B2c3D4",
  "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567",
  "seller_payme_secret": "Qw3rTy7uI9oP1aS5dF8gH2jK4lZ6xC",
  "seller_public_key": {
    "uuid": "12345678-1234-4abc-9def-123456789012",
    "description": "PayMe-Public-Key",
    "is_active": true
  },
  "seller_id": "store-1001",
  "seller_dashboard_signup_link": "https://<signup-host>/<link-from-payme>"
}

The call is limited to 5 requests per minute per IP. Over the limit, or while a call for the same seller_email is still running, it returns HTTP 429 with error 998: wait and retry. A partner sets the seller's default platform fee here with market_fee; it can't be changed later with update-seller. See Platform fees.

3. Upload the documents

PayMe approves a seller only after it has checked the seller's documents. Use the codes on File types:

Seller Files
Every seller 1 social ID and 2 bank account ownership
Every seller except a private individual, a House Committee, and Municipalities and councils Also 3 corporate certificate
A House Committee Also 14 authorized signer protocol and 7 processing agreement
Municipalities and councils Also 27 origin tax confirmation and 7 processing agreement
Some services and partner accounts Also 7 or 29. Your account manager will tell you.

There are three ways to send them:

{
  "payme_client_key": "XXXXXXXX",
  "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567",
  "seller_files": [
    {
      "name": "social_id.pdf",
      "type": 1,
      "url": "https://www.example.com/files/social_id.pdf",
      "mime_type": "application/pdf"
    }
  ],
  "language": "en"
}

Personal documents (types 90–97, such as the front and back of an ID) belong to a person:

Allowed file types and the upload errors (904, 905, 909) are on upload-seller-files.

4. Verification and approval

PayMe reviews the seller's details and documents. You learn the result from seller callbacks and from get-sellers.

Seller callbacks

PayMe sends these callbacks to your partner account's default callback URL as a form-encoded POST. Each carries the seller's details (seller_payme_id, seller_id, seller_active, seller_approved and more): see Callbacks → Sellers.

notify_type When PayMe sends it
seller-create The seller was created. Also carries seller_public_key.
seller-update The seller changed: after update-seller, when PayMe records the result of a check on the seller, and when the seller's approval changes.
seller-approve PayMe approved the seller. Also carries partner_name.

Check the seller's state

Call get-sellers with the seller's MPL:

{
  "payme_client_key": "XXXXXXXX",
  "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567",
  "api_mode": "slim"
}
Field Meaning
seller_approved true once PayMe has approved the seller. Withdrawals need it.
seller_approved_date When PayMe approved the seller, or null
seller_active true if the seller is active

To list every seller that is still waiting, send payme_client_key with "seller_approved": false.

If a document is declined

Upload a corrected file with the same type. If a required document is declined after the seller was approved, the seller loses its approval: you get a seller-update with seller_approved 0, and withdrawals fail with error 109 until PayMe approves the seller again.

Before and after approval

Before approval After approval
Take payments Yes Yes
Request a withdrawal No, error 109 Yes, if the seller is active, has bank details and has released funds

5. Turn on payment methods and services

6. Take the first sale

Create the sale with the seller's MPL, from your server. Add market_fee to override the seller's default fee for this sale. The full example is on Start here: build a platform or marketplace on PayMe, and the fee rules on Platform fees.

7. Get the first payout

How the seller is paid depends on seller_withdrawal_plan on get-sellers. A new seller starts on your partner account's default plan:

Plan How the seller is paid
1 manual You request each withdrawal with withdraw-balance
2 automatic, daily PayMe pays out by itself. withdraw-balance returns error 907.
3 automatic, monthly PayMe pays out on seller_withdrawal_date. withdraw-balance returns error 907.

A seller paid directly by the card companies gets its money from them, and withdraw-balance returns error 908.

Before the first withdrawal, check that:

On plan 1, request the withdrawal:

{
  "payme_client_key": "XXXXXXXX",
  "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567",
  "withdrawal_currency": "ILS"
}

This withdraws the whole released balance in that currency. When the withdrawal is recorded, PayMe sends withdrawal-complete to your default callback URL, before the bank transfer arrives. Read the final amount from get-withdrawals. Partial withdrawals, specific transactions, the callback fields and every error are on Withdrawals.

In the sandbox, sellers start on an automatic plan: ask PayMe to set up a test seller before you test a withdrawal.

Change a seller later

Call update-seller with payme_client_key, the seller's MPL (or your seller_id) and only the fields you want to change. PayMe then sends seller-update.