Глоссарий

Сервис - Escrow сервис

Юзер-сервис - Сервис, проводящий интеграцию с API Escrow

Инициатор - Пользователь системы, создавший предложение/сдел

Партнёр - Вторая сторона предложения/сделки, созданной иници

ИСП - Информационная система юзер-сервиса

ИСС - Информационная система Escrow сервиса

Клиент - Пользователь, зарегистрированный у Партнера

Продавец - Клиент, выступающий в роли продавца товара или поставщика услуги

Покупатель - Клиент, выступающий в роли покупателя товара или услуги

Предложение - Предложение о заключении сделки между от одного пользователя системы другому

Сделка - Сделка, созданная на основе Предложения сущность после договоренности сторон

API - Программный интерфейс Сервиса, предоставляемый партнер

Предметная область документа

В рамках этого документа рассматриваются интерфейсы взаимодействия между ИСС и ИСП, а также даются пояснения по вопросам:

  • Порядок и взаимодействия
  • Платежные методы
  • Решение споров
  • Регистрация Клиентов

Общие сведения

ЭСКРОУ (англ. escrow) — депонирование у третьего лица денежной суммы на имя другого лица с тем, чтобы она была выдана ему лишь после выполнения известного условия.

Задача Сервиса — прием и хранение информации о сделках, которые были размещены на сторонних веб-сайтах (фриланс-биржи, доски объявлений, сервисы купли-продажи и т.п.).

Сервис выступает доверенной стороной в сделке между продавцом и покупателем, и, посредством залогов, страхует их от обмана или недобросовестного выполнения условий.

Описание бизнес-процесса

Предложение

  • Продавец или Покупатель создает адресное предложение Клиенту на стороне ИСП
  • Условия предложения сохраняются на сервисе, второй стороне отправляется уведомление с предложением заключить Сделку
  • Вторая сторона, получив предложение, может:
    • принять условия предложения
    • отказаться от него
    • внести изменения в условия предложения
  • При принятии предложения, принявшей стороне необходимо внести обеспечительный залог
  • При принятии предложения, принявшей стороне необходимо внести обеспечительный залог
  • После внесения залога одной из сторон, вторая сторона так же допускается к внесению залога
  • После внесения залогов, создается Сделка

Сделка

  • На протяжении срока сделки, сервис ожидает подтверждения от покупателя/заказчика внесения суммы сделки, а так же уведомления об выполнении второй стороной условий сделки.
  • Если от покупателя/заказчика получено подтверждение об успешном завершении сделки — средства, внесенные в качестве гарантийной оплаты, возвращаются участникам
  • Любая из сторон в праве открыть спор по сделке на любом её этапе, после чего сделка попадает на рассмотрение к арбитру

Порядок проведения Предложения

  • От лица первого пользователя создаём предложение второму пользователю (пункт RESTful API "Создать предложение")
  • Второй пользователь в праве:
    • Отказаться от предложения (или проигнорировать его) (пункт RESTful API "Подтвердить/отклонить предложение")
    • Согласиться на предложение (пункт RESTful API "Подтвердить/отклонить предложение")
    • Выдвинуть встречные условия (пункт RESTful API "Обновить предложение")
  • Если второй пользователь решает выдвинуть встречные условия, то первый пользователь оказывается в пункте 2
  • После согласия с предложением сторона должна внести обеспечительный залок (если это предусмотрено условиями преложения). Информация для оплаты была получена в результате выполнения метода пункт RESTful API "Подтвердить/отклонить предложение"
  • После принятия предложения одной из сторон вторая сторона так же окончательно подтверждает контракт и вносит свой обеспечительный залог
  • На основе предложения создаётся сделка

Порядок проведения Сделки

  • Сторона, являющаяся в сделке покупателем/нанимателем для успешного завершения сделки должна произвести 2 действия:
    • Внести сумму сделки (не требуется, если оплата по сделке будет производиться с использованием залога покупателя/нанимателя) (пункт RESTful API "Получить данные для внесения суммы сделки")
    • Подтвердить, что продавец/исполнитель выполнили свою часть сделки (пункт RESTful API "Подтвердить выполнение партнёром условий сделки / Открыть спор")
  • Так же любая сторона на любом этапе сделки может в одностороннем порядке открыть спор по сделке, который будет рассматриваться арбитром (пункт RESTful API "Подтвердить выполнение партнёром условий сделки / Открыть спор")
  • Если оба подпункта из пункта 1 выполнены, то сделка завершается возвратом залогов и отправкой суммы сделки продавецу/исполнителю

Решение споров

  • При истечении срока действия сделки она автоматически попадает на рассмотрение к арбитру.
  • Гарантийный залог не возвращается участникам сделки, до тех пор, пока они не придут к обоюдному согласию об итогах сделки.
  • По результатам рассмотрения иска Арбитражом залоги обоих участников переводятся выигравшей стороне (за исключением комиссии Арбитража).

Порядок подключения

Для начала работы с сервисом Escrow.v2 API необходимо согласовать и получить учётные данные для получения доступа к API.

Способы резервирования средств

Существует несколько вариантов резервирования залогов:

  • С помощью системы WebMoney
  • Банковской картой
  • Биткоинами

Получение доступа к API

Для получения доступа к API используются Bearer JWT-токены, которые указываются в заголовкае запроса. Пример: "Authorization: Bearer %ACCESS_TOKEN%"

Токен доступа можно получить с помощью связки Login/Password через запрос POST /api/authentication

Guarantee.money API

                                                                v1
                                                                
                                                                

[ Base URL:
                                                        localhost:96
                                                         ]
                                                        
https://guarantee.money/api/test/swagger-json

Authentication

POST/api/authentication
Получение токенов доступа по логину и паролю
POST/api/authentication/webmoney
Авторизация пользователей с помощью WebMoney
POST/api/authentication/refresh
Получение токенов доступа по логину и рефреш-токену

Commissions

GET/api/commissions/calculate
Расчёт комиссии сервиса по сделке исходя из переданных параметров

Contracts

GET/api/contracts
Получение списка активных предложений сделок пользователя
POST/api/contracts
Создание нового предложения сделки
GET/api/contracts/{id}
Получение информации по предложению сделки
PUT/api/contracts/{id}
Отправка встречных условий по предложению сделки
GET/api/contracts/{id}/versions/{version}
Получение указанной версии предложения сделки
GET/api/contracts/{id}/transactions
Получение списка транзакций по предложению сделке
GET/api/contracts/public
Получение списка публичных предложений сделок
GET/api/contracts/public/{id}
Получение информации по публичному предложению сделки
GET/api/contracts/history
Получение списка закрытых/завершенных предложений сделок пользователя или юзер-сервиса
POST/api/contracts/{id}/accept
Принятие предложения сделки
POST/api/contracts/{id}/decline
Отклонение предложения сделки

Deals

GET/api/deals
Получение списка активных сделок пользователя
GET/api/deals/{id}
Получение информации по сделке
GET/api/deals/get-by-contractId/{contractId}
Получение информации по сделке по идентификатору ID предложения сделки
GET/api/deals/{id}/transactions
Получение списка транзакций по сделке
GET/api/deals/history
Получение списка закрытых/завершенных сделок пользователя или юзер-сервиса
POST/api/deals/{id}/open-dispute
Открытие спора по сделке
POST/api/deals/{id}/confirm
Подтверждение выполнения условий сделки
POST/api/deals/{id}/confirm-payment
Подтверждение получения оплаты по сделке

Profile

GET/api/profile
Получение информации о пользователе (паспортные данные, email, адрес и тд.)
PUT/api/profile
Обновить данные профиля пользователя
GET/api/profile/transactions
Получение списка транзакций пользователя
POST/api/profile/passport
Добавить паспортные данные пользователя

Registration

POST/api/registration/service-user
Регистрация нового пользователя (для площадок)

Users

GET/api/users/get-short-info
Получение информации о пользователе

Models

AuthenticationModel
ApiResult[AuthReturnModel]
AuthReturnModel
WebMoneyAuthorizationModel
AuthenticationRefreshModel
ApiResult[CalculatingCommissionsResult]
CalculatingCommissionsResult
ApiResult[WithPaginationData[IEnumerable[ContractInfoReturn]]]
WithPaginationData[IEnumerable[ContractInfoReturn]]
ContractInfoReturn
Pagination
UserShortInfoReturn
ContractAgreementField
AgreementField
ContractCreateModel
AgreementFieldModel
ApiResult[ContractInfoReturn]
ContractUpdateModel
ApiResult[WithPaginationData[IEnumerable[TransactionInfoReturn]]]
WithPaginationData[IEnumerable[TransactionInfoReturn]]
TransactionInfoReturn
ContractAcceptModel
ApiResult[BasePaymentFromFields]
BasePaymentFromFields
WithUserLoginModel
ApiResult
ApiResult[WithPaginationData[IEnumerable[DealInfoReturn]]]
WithPaginationData[IEnumerable[DealInfoReturn]]
DealInfoReturn
ApiResult[DealInfoReturn]
DealOpenDisputeModel
ApiResult[UserInfoReturn]
UserInfoReturn
UserProfileInfoReturn
RequestsLists
UserPurseInfoReturn
UsersRequestsLists
ContractsProlongationItem
DealsProlongationItem
UpdateUserProfileModel
ApiResult[WithPaginationData[IEnumerable[TransactionInfoForProfileReturn]]]
WithPaginationData[IEnumerable[TransactionInfoForProfileReturn]]
TransactionInfoForProfileReturn
PassportModel
RegistrationServiceUserModel
ApiResult[Int32]
ApiResult[UserShortInfoReturn]