Методы

token

POST /api/v2/token

генерация токена для доступа к API ZaleyCash по секретному ключу

Request Body

{
"code": 200,
"message": "OK",
"response": 
    {
        "access_token":
        "d8bf2fd5f30fe57fa1e97ef39ddf2d3d7025c501c9b4af3ca9757bfbb5b74294",
        "expires_at": 1528378016
    }
}

services

GET /api/v2/services

Cписок внешних рекламных сетей (без учета скрытых рекламных сетей). Параметр need_oauth указывает, возможно ли создание аккаунта через метод POST /api/v2/account/create или нет (если need_oauth - yes, то создание аккаунта по API невозможно).

Request Body

{
"code": 200,
"message": "OK",
"response": 
    [
        {
        "name": "Yandex Direct",
        "alias": "direct",
        “need_oauth”: “no”
        }
    ]
}

user?email

GET /api/v2/user?email={email}

Получение информации о пользователе по email. Если email не передан, то метод вернет информацию об учетной записи клиента API. Также вернет статус клиента, активен он или нет (is_active:true/false).

Request Body

{
"code": 200,
"message": "OK",
"response": 
    {
    "user":
        {
        "id": 184,
        "email": "user@mail.ru",
        “is_active”: true
        }
    }
}

user

POST /api/v2/user

Регистрация нового пользователя. Между регистратором и новым пользователем устанавливается связь “родитель - сын”. Также новый пользователь становится рефералом клиента

Request Body

{
    "code": 200,
    "message": "OK",
    "response": 
        {
        "user": 
            {
            "id": 184,
            "email": "user@mail.ru",
            “is_active”: true
            }
        }
}

user/balance

GET /api/v2/user/balance

Получение данных финансовых балансов пользователя. OriginalBalance подразумевает число, которое пользователь видит в шапке сайта, а balance - сумму, доступную к использованию.

{
    "code": 200,
    "message": "OK",
    "response": 
    {
        "user":
        {
            "id": {id},
            "email": "user@mail.ru",
            “is_active”: true
        },
        "balances":
            [
                {
                "currency": "RUB",
                "balance": 7100.19,
                "creditLimit": 10000,
                "originalBalance": -2899.81
                },
                {
                "currency": "USD",
                "balance": 7100.19,
                "creditLimit": 0,
                "originalBalance": 7100.19
                },
            ]
     }
}

user/balance/detailed

GET /api/v2/user/balance/detailed

Получение подробных данных распределения средств по финансовым балансам пользователя. Если счета в списке нет, значит он не существует.

{
"code": 200,
"message": "OK",
"response": {
"user": {
"id": {id},
"email": "user@mail.ru",
“is_active”: true
},
"balances": [
{
“type”: “partner”,
“service”: “luckyshop”,
"currency": "RUB",
"balance": 7100.19,
"creditLimit": 0,
"originalBalance": 7100.19
},
{
“type”: “normal”,
“service”: none,
"currency": "USD",
"balance": 7100.19,
"creditLimit": 0,
"originalBalance": 7100.19
},
{
“type”: “adv”,
“service”: “mytarget”,
"currency": "RUB",
"balance": 7100.19,
"creditLimit": 0,
"originalBalance": 7100.19
}
]
}
}
}
}

user/account

GET /api/v2/user/account?id={id}

Получение информации о своем аккаунте. В id может быть передан любой из идентификаторов, принадлежащих аккаунту.

external_id = ExternalAccount.external_id - внешний идентификатор в системе external_billing_account_id - ExternalAccount.external_billing_account_id - внешний идентификатор счета в системе (релевантно для ВК и Яндекса).

Возможные статусы:

active Активен

blocked Заблокирован

deleted Удален

pending В обработке

rejected Отклонен

blocked_by_system Заблокирован системой

{
	"code":200,
        "message":"OK",
        "response":
        {
        	"status":"pending",
                "id":168,
	    	“type”: “Google Ads”
                "login":"account@mail.ru",
	    	“created_at”:"2018-06-15T13:54:22+03:00",
	    	“external_id”: {external_id},
	    	“external_billing_account_id”: {external_billing_account_id},
	    	“balance”: 100.01
        }
}

user/children

POST /api/v2/user/children

Создание связи между пользователем и пользователем API. Связка позволяет выполнять операции перевода денег

Request Body

{
    "code": 200,
    "message": "OK",
    "response": {
        "user": {
            "id": 184,
            "email": "user@mail.ru",
	“is_active”: true
        }
    }
}

user/accounts/list

GET /api/v2/user/accounts/list?type={account_alias}&id={ids}&user={id}&account=acc@gmail.com&limit={}&offset={}

Получение списка аккаунтов пользователя для заданного сервиса. Список допустимых значений для account_alias возвращается методом /api/v2/services

Возможна фильтрация аккаунтов по id для заданного параметра type. В id может быть передано несколько идентификаторов разделенных запятой, также в id может быть передан любой из идентификаторов принадлежащих аккаунту, однако все они должны быть одинакового типа. Также в методе присутствует пагинация, по умолчанию возвращается 500 первых аккаунтов. Используйте параметр limit для выбора количества аккаунтов (не рекомендуем отправлять более 1000) и offset для смещения по страницам.

Например у вас 10 акков 1,2,3,4,5,6,7,8,9,10

Вы посылаете limit=3,offset=0

В ответе придут 3 акка: 1,2,3

Вы посылаете limit=3,offset=3

В ответе придут 3 акка: 4,5,6 (то есть произошло смещение на offset))

Возможна выборка аккаунтов по полю account.

Должен присутствовать или параметр id или account. Если указан id, то account будет проигнорирован.

Необязательный параметр user={id} - получение списка аккаунтов дочернего пользователя

Для аккаунтов MyTarget и VK выводится accessToken для прямого доступа к клиентским методам API MyTarget

{
    "code": 200,
    "message": "OK",
    "response": [
        {
            "id": 1,
            "account": "account_name1",
            "comment": null,
	“type”: “direct”,   
	“created_at”:"2018-06-15T13:54:22+03:00",
“external_id”: {external_id},
	“external_billing_account_id”: {external_billing_account_id},
	“balance”: 100.01
        },
        {
"id": 3,
"account": "account@mail.ru",
"comment": ””,
“type”: “my_target”,
            “created_at”:"2018-06-15T13:54:22+03:00",
	    “external_id”: {external_id},
	    “external_billing_account_id”: {external_billing_account_id},
	    “balance”: 100.01
“my_target”: {
	“account_id”: “account@mail.ru”, - идентификатор аккаунта в MyTarget
	“accessToken”: <string>, - токен для доступа к клиентским методам API MyTarget
	“expiresIn”: <timestamp>, - время деактивации токена после которого необходимо выполнить обновление для продолжения работы с API MyTarget
}
        },
        {
            "id": 2,
            "account": "account_name2",
            "comment": null,
	“type”: “vk”
“created_at”:"2018-06-15T13:54:22+03:00",
	“external_id”: {external_id},
	“external_billing_account_id”: {external_billing_account_id},
“balance”: 100.01
        }
    ]
}

money/transfer

POST /api/v2/money/transfer

Перевод средств со счета клиента на аккаунты в Yandex.Direct, MyTarget, Google Adwords, VK. Обратите внимание на то, что в запросе присутствуют необязательный параметр “type” он означает тип средств отправляемых в сеть (для некоторых сетей доступен отдельный счет с типом adv, который является рекламным - с него можно перевести деньги исключительно в данную сеть, получить информацию о статусе данных счетов можно в методе GET api/v2/user/balance/detailed), если параметр type НЕ передан, то по умолчанию передается type:normal - средства будут списываться с обычного счета пользователя. В качестве параметра "service" передается alias данного сервиса - информацию о сервисах можно получить в GET api/v2/services. В ответ на /transfer /transfer internal и exchange приходят статусы "accepted" ВСЕГДА, либо код ошибки из начала документа, это означает что транзакция принята сервисом Zaleycash и далее ее статус можно узнать запросив GET /api/v2/money/transaction?operation_id={string}. Это связано с тем, что не все транзакции обрабатываются здесь и сейчас, а попадают в очередь.

NB! Для некоторых площадок существуют лимиты минимально переводимых сумм

Request Body

{
    "code": 200,
    "message": "OK",
    "response": {
                "transaction": "accepted",
                "operation_id": "extid_123",
            	"external_id":"external_id",
                "external_billing_account_id":"external_billing_account_id”
                }
}

money/transfer/internal

POST /api/v2/money/transfer/internal

Перевод средств со счета пользователя на счет пользователя .Параметр currency используется для внутренних переводов

Request Body

{
    "code": 200,
    "message": "OK",
    "response": 
    {
        "transaction": "accepted",
        "operation_id": "extid_123"
    }
}
 

money/currencies

GET /api/v2/money/currencies

Возврат список возможных валют, курс валют в системе и значение комиссии за обмен валют на момент запроса.

{
    "code": 200,
    "message": "OK",
    "response": {
        “comission_rate”: 0.025
        "currencies": [
	{
	“currency”:RUB
	“rate”: {
		USD: 0.014
		/*...*/
		},
	{
	“currency”:”USD
	“rate”: {
		RUB: 72.34
		/*...*/
		},	
      	 /*...*/
	]
    }
}

money/exchange?user={id}

POST /api/v2/money/exchange?user={id}

Создание операции обмена валюты на пользователе. В ответ придет 3 операции с разными id - списание, начисление, комиссия

Request Body

{
    "code": 200,
    "message": "OK",
    "response": {
        "user": {
            "id": {id},
            "email": "user@mail.ru",
	“is_active”: true
        },
       "transactions": [
            {
                "operation_id": "{string}",
                "type": "exchange",
	    “currency”:USD,
                "amount": 1000,
                "created_at": "2018-06-15T13:54:22+03:00",
                "status": "accepted",
                "direction": "out",
	    “rate”: 74.32,
	    “comission_rate”: 0.025
            },
            {
                "operation_id": "{string}",
                "type": "exchange",
	    “currency”:RUB
                "amount": 74320,
                "created_at": "2018-06-15T13:54:22+03:00",
                "status": "accepted",
                "direction": "in",
    “rate”: 74.32
	    “comission_rate”: 0.025
               }
   {
                "operation_id": "{string}",
                "type": "comission",
	    “currency”:RUB
                "amount": 1858,
                "created_at": "2018-06-15T13:54:22+03:00",
                "status": "accepted",
                "direction": "out",
    “rate”: 74.32
	    “comission_rate”: 0.025
               }

        ]
    }
}

money/refund

POST /api/v2/money/refund

Возврат средств со счета клиента с аккаунтов в рекламных сетях

Request Body

{
    "code": 200,
    "message": "OK",
    "response": {
        "transaction": "approved",
        "operation_id": "extid_123"
    }
}

money/transaction?operation_id={string}

GET /api/v2/money/transaction?operation_id={string}

Получение статуса транзакций с номером операции operation_id. Типы транзакций в ответе:

non_cash - безналичный перевод

direct - перевод средств на аккаунт в Yandex.Direct

internal_transfer - перевод дочернему пользователю

Поле direction - направление движения средств: in - пополнение, out - списание

Поле status - статус обработки транзакции: approved - успешное завершение, pending - ожидание подтверждения, blocked - заблокировано по техническим причинам, declined - операция отклонена.

Поле recipient - пользователь, которому проведено начисление.

{
    "code": 200,
    "message": "OK",
    "response": {
        "transactions":[{
    	"operation_id":"test-243",
    	"type":"WRITE_OFF",
    	"amount":5000.0,
    	"created_at":"2020-09-01T01:00:00+03:00",
    	"status":"approved",
    	"direction":"out",
    	"user":{"id":1,"email":"email","is_active":true},
    	"account":{"id":3,"external_id":"external_id","external_billing_account_id":id}
	}]
}

user/transactions?date_from={unix timestamp}&date_to={unix timestamp}

GET /api/v2/user/transactions?date_from={unix timestamp}&date_to={unix timestamp}

Получение списка транзакций для пользователя API.

date_from - с какой даты получить транзакции (Epoch timestamp)

date_to - до какой даты получить транзакции. (Epoch timestamp)

Если параметры date_from и date_to не заданы, то метод вернет транзакции с начала текущего месяца.

Поле recipient - пользователь, которому проведено начисление.

{  
   "code":200,
   "message":"OK",
  "response":{
	"259":{
    	"operationId":12345,
    	"account":{"id":9,"external_id":"eaid9","external_billing_account_id":"eaid9"},
    	"direction":"in",
    	"status":"approved",
    	"currency":"RUB",
    	"sum":100.0,
    	"created":"2020-10-16T19:10:50.357643+03:00",
    	"handled":"2020-10-16T19:10:50.357657+03:00"
	}
}
      "189357":{  
         "id":189357,
         "type":"event",
         "direction":"in",
         "status":"approved",
         “currency”:USD,
         "sum":3000,
         "created":"2019-04-03T16:18:16+03:00",
         "handled":"2019-03-07T16:18:17+03:00"
      }
   }
}

countries

GET GET /api/v2/countries

Возврат списка алиасов стран

{
	“code”: 200,
	“message”:  “OK,
	“response”: [
	{“name”: ”Россия”,
	 “alpha2”:RU
 “id”:”171”},
	{“name”: “Украина”,
	 “alpha2”:UA
 “id”:”217
},
	...
]
}

Last updated