Create seller

Credentials

Register a new seller account with Israeli business compliance validation. Includes validation for Israeli ID numbers, business registration, and bank account details.

Parameters

This endpoint takes no path, query or header parameters.

Request body

Content type: application/json

Field Type Required Description
firstName string yes Seller's first name, 2 to 250 characters: letters, spaces and the marks - _ . , ' " ״ ( ) : ;.
lastName string yes Seller's last name, 2 to 250 characters: letters, spaces and the marks - _ . , ' " ״ ( ) : ;.
email string yes Seller's primary email address (used for login)
contactEmail string yes Business contact email address
password string yes Account password, at least 6 characters.
phone string yes Phone number, 1 to 250 characters.
businessName string yes Legal business name, at most 250 characters.
businessType integer yes Israeli business type. - 0 Not sure (לא ידוע) - 1 Osek Murshe, sole proprietorship (עוסק מורשה) - 2 Osek Patur, exempt small business (עוסק פטור) - 3 Incorporated company (חברה בע"מ) - 4 Partnership (שותפות) - 6 Non-profit (עמותה) - 7 Limited partnership (שותפות מוגבלת) - 8 Publicly traded company (חברה ציבורית) - 9 Shared cooperative (אגודה שיתופית) - 10 Public benefit company (חברה לתועלת הציבור)
businessNumber string yes Israeli business registration number (ח.פ. / עוסק מורשה). Digits only, at most 9, with a valid check digit.
socialId string yes Israeli ID number (תעודת זהות). Digits only, at most 9, with a valid check digit.
industryClassification number no Industry classification code (optional)
bankId string no Israeli bank code (optional) Digits only.
accountNumber string no Bank account number (optional) Digits only.
branchNumber string no Bank branch number (optional) Digits only.
logo string no Business logo as base64 encoded data URI (optional)

Request example

{
  "firstName": "David",
  "lastName": "Cohen",
  "email": "david.cohen@example.com",
  "contactEmail": "seller@example.com",
  "password": "securePassword123",
  "phone": "0500000009",
  "businessName": "Cohen Electronics Ltd",
  "businessType": 1,
  "businessNumber": "330988015",
  "socialId": "123456782",
  "industryClassification": 12,
  "bankId": "12",
  "accountNumber": "123456789012345",
  "branchNumber": "123",
  "logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
}

Code samples

curl

curl -X POST 'https://<partner_domain>.keep.co.il/api/public/sellers/create' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <YOUR_TOKEN>' \
  --data-raw '{
  "firstName": "David",
  "lastName": "Cohen",
  "email": "david.cohen@example.com",
  "contactEmail": "seller@example.com",
  "password": "securePassword123",
  "phone": "0500000009",
  "businessName": "Cohen Electronics Ltd",
  "businessType": 1,
  "businessNumber": "330988015",
  "socialId": "123456782",
  "industryClassification": 12,
  "bankId": "12",
  "accountNumber": "123456789012345",
  "branchNumber": "123",
  "logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
}'

Node.js

const response = await fetch("https://<partner_domain>.keep.co.il/api/public/sellers/create", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer <YOUR_TOKEN>",
  },
  body: JSON.stringify({
    "firstName": "David",
    "lastName": "Cohen",
    "email": "david.cohen@example.com",
    "contactEmail": "seller@example.com",
    "password": "securePassword123",
    "phone": "0500000009",
    "businessName": "Cohen Electronics Ltd",
    "businessType": 1,
    "businessNumber": "330988015",
    "socialId": "123456782",
    "industryClassification": 12,
    "bankId": "12",
    "accountNumber": "123456789012345",
    "branchNumber": "123",
    "logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
  }),
});

console.log(await response.text());

Python

import requests

response = requests.post(
    "https://<partner_domain>.keep.co.il/api/public/sellers/create",
    headers={
        "Authorization": "Bearer <YOUR_TOKEN>",
    },
    json={
        "firstName": "David",
        "lastName": "Cohen",
        "email": "david.cohen@example.com",
        "contactEmail": "seller@example.com",
        "password": "securePassword123",
        "phone": "0500000009",
        "businessName": "Cohen Electronics Ltd",
        "businessType": 1,
        "businessNumber": "330988015",
        "socialId": "123456782",
        "industryClassification": 12,
        "bankId": "12",
        "accountNumber": "123456789012345",
        "branchNumber": "123",
        "logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
    },
)

print(response.text)

PHP

<?php

$body = <<<'BODY'
{
  "firstName": "David",
  "lastName": "Cohen",
  "email": "david.cohen@example.com",
  "contactEmail": "seller@example.com",
  "password": "securePassword123",
  "phone": "0500000009",
  "businessName": "Cohen Electronics Ltd",
  "businessType": 1,
  "businessNumber": "330988015",
  "socialId": "123456782",
  "industryClassification": 12,
  "bankId": "12",
  "accountNumber": "123456789012345",
  "branchNumber": "123",
  "logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
}
BODY;

$ch = curl_init('https://<partner_domain>.keep.co.il/api/public/sellers/create');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer <YOUR_TOKEN>',
    ],
    CURLOPT_POSTFIELDS => $body,
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;

Responses

201 — Seller created successfully (success)

Field Type Description
payload object
payload.sellerId string Newly created seller's UUID
{
  "payload": {
    "sellerId": "9a5e7898-067e-4c0c-a50f-5f8d83e7c686"
  }
}

400 — Bad Request. Returned for validation errors, and for these onboarding refusals: - Social ID is invalid — a Keep seller already uses this ID number. - The email is invalid. Please try again — a Keep account already uses this email. Other onboarding errors are returned as 400 with their own message. (error)

Field Type Description
statusCode integer HTTP status code
message string Error message(s)
error string Error type
{
  "statusCode": 400,
  "message": [
    "Validation failed"
  ],
  "error": "Bad Request"
}

401 — Unauthorized (error)

Field Type Description
statusCode integer
message string
{
  "statusCode": 401,
  "message": "Unauthorized"
}