Перейти к содержанию

Авторизация

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

Далее используйте следующие транзакции: списание средств или отмена авторизации.

Info

Требуется наличие PCI DSS сертификата, чтобы использовать данную транзакцию и обрабатывать не шифрованные данные карты.


Запрос

Для проведения авторизации отправьте POST запрос на https://gateway.unonapay.com/transactions/authorizations со следующими параметрами:

Note

Тело запроса должно быть обёрнуто в корневой объект request{}.

amount
обязательный
bigInteger
Стоимость в минимальных денежных единицах. Например, $32.45 должна быть отправлена как 3245.
currency
обязательный
string
Валюта в ISO-4217 формате, например, USD.
description
обязательный
string (255)
Описание заказа.
tracking_id
string (255)
ID транзакции или заказа в системе торговца. Пожалуйста, используйте уникальное значение для того, чтобы при запросе статуса транзакции получить актуальную информацию. В противном случае вы получите массив данных по 10 последним транзакциям, найденным по указанному tracking_id. В параметре может быть отправлено несколько значений, разделенных символом ;. Например: "cbe59142-90af-4aea-b5a5-5bf3f66cf3da;f7883cb9-0e26-43a7-beb7-4027cb55d1a6;4a6a89d5-6950-400f". Если в запросе было передано более одного значения tracking_id, поиск транзакции в личном кабинете может быть осуществлен по любому из них.
expired_at
string
Время в формате ISO 8601, до которого должен быть совершен платеж. Формат: YYYY-MM-DDThh:mm:ssTZD, где YYYY – год (например, 2025), MM – месяц (например, 02), DD – день (например, 09), hh – часы (например, 18), mm – минуты (например, 20), ss – секунды (например, 45), TZD – часовой пояс (+hh:mm или –hh:mm относительно UTC). Если в указанный момент транзакция всё ещё не будет оплачена, она будет переведена в статус expired.
duplicate_check
boolean
Параметр управляет процессом проверки входящего запроса на уникальность. Если true, то повторный запрос на авторизацию с таким же amount и number или token, отправленный в течение 30 секунд после первого запроса, будет отклонен. По умолчанию, этот параметр имеет значение true.
dynamic_billing_descriptor
string
Динамический идентификатор платежа.
language
string
Язык страницы оформления заказа. Если параметр установлен и email уведомления о транзакции включены, то UnonaPay отправит email, язык текста которого будет language. По умолчанию - en. Доступные значения параметра language.
notification_url
string
URL, на который будут приходить уведомления. Формат запроса на подтверждение аналогичен формату ответа транзакции.
verification_url
string
URL, на который будут приходить запрос на подтверждение транзакции. Формат запроса уведомления аналогичен формату ответа транзакции.
return_url
string
URL на стороне торговца, на который UnonaPay будет перенаправлять покупателя после возврата с 3-D Secure проверки. Параметр обязателен, если 3-D Secure включен. Обратитесь к менеджеру за информацией.
test
boolean
true или false. Транзакция будет тестовой, если значение true.
object
number
условно обязательный
string (19)
Номер карты. 12—19 символов. Обязателен, если не передан token.
verification_value
условно обязательный
string
3-х или 4-х цифровой код безопасности (CVC2, CVV2 или CID, в зависимости от бренда карты).
Может быть отправлен вместе с параметром token и UnonaPay доставит банку-эквайеру данные карты с CVC2/CVV2/CID. Обязательность параметра зависит от требований эквайера и настроек магазина.
holder
условно обязательный
string (35)
Имя владельца карты. Максимальная длина: 35 символов. Параметр опционален в системе UnonaPay, но может требоваться банком-эквайером.
exp_month
обязательный
string (2)
Месяц окончания срока действия карты, представленный одной или двумя цифрами (например, 01). Параметр обязателен, если в запросе не передан токен.
exp_year
обязательный
string (4)
Год окончания срока действия карты, представленный четырьмя цифрами (например, 2027). Параметр обязателен, если в запросе не передан токен.
token
условно обязательный
string
Вместо 5 параметров выше можно отправить токен карты, который был получен в ответе первой оплаты.
skip_three_d_secure_verification
boolean
Параметр используется, если вы хотите, чтобы покупатель не проходил авторизацию по протоколу 3-D ­Secure. Уточните у службы технической поддержки, можете ли вы использовать этот параметр.
Если значение параметра - true, UnonaPay не применяет 3-D Secure проверку к транзакции авторизации. По умолчанию, установлено значение false.
Параметр force_three_d_secure_verification имеет больший приоритет, чем параметр skip_three_d_secure_verification, когда оба переданы со значением true.
Значение игнорируется, если к транзакции применено правило Умной Маршрутизации с действием Force 3ds или Skip 3ds.
force_three_d_secure_verification
boolean
Параметр используется, если вы хотите, чтобы покупатель проходил авторизацию по протоколу 3-D ­Secure. Уточните у службы технической поддержки, можете ли вы использовать этот параметр.
Если значение параметра - true, UnonaPay принудительно применяет 3-D Secure проверку к транзакции авторизации. По умолчанию, установлено значение false.
Параметр force_three_d_secure_verification имеет больший приоритет, чем параметр skip_three_d_secure_verification, когда оба переданы со значением true.
Значение игнорируется, если к транзакции применено правило Умной Маршрутизации с действием Force 3ds или Skip 3ds.
object
Секция для настройки схемы обработки транзакций с проверкой 3-D Secure 2.0 с расширенным контролем.
advanced
boolean
Установите значение true, чтобы обрабатывать платежи по схеме с расширенным контролем. В противном случае, установите false.
условно обязательный
object
Секция информации о покупателе.
Уточните у службы технической поддержки, необходимо ли передавать параметры данной секции.
ip
условно обязательный
string
IP-адрес покупателя, производящего оплату в вашем магазине.
email
условно обязательный
string
email покупателя, производящего оплату в вашем магазине.
device_id
условно обязательный
string
ID устройства покупателя, производящего оплату в вашем магазине.
birth_date
условно обязательный
string
Дата рождения покупателя в формате ISO 8601 YYYY-MM-DD.
taxpayer_id
условно обязательный
string
external_id
string (255)
Идентификатор покупателя в системе торговца.
object
Секция информации об адресе покупателя. Узнайте у службы технической поддержки, должны ли вы отправлять параметры этой секции.
first_name
условно обязательный
string (30)
Имя покупателя.
last_name
условно обязательный
string (30)
Фамилия покупателя.
country
условно обязательный
string
Страна покупателя в ISO 3166-1 alpha-2 формате.
city
условно обязательный
string (60)
Город покупателя. Максимальная длина: 60 символов.
state
условно обязательный
string (2)
Двухбуквенная аббревиатура штата, если страна покупателя IN, US или CA.
zip
условно обязательный
string
Почтовый индекс покупателя. Для country=US, формат почтового индекса должен иметь вид NNNNN или NNNNN-NNNN.
address
условно обязательный
string (255)
Адрес покупателя.
phone
условно обязательный
string (100)
Номер телефона покупателя.
travel
object
Необязательная секция, предоставляющая расширенную информацию о продаже авиабилетов, туристических путевок и т.д.
object
Секция, содержащая дополнительную информацию о платеже.
expected_bank_code
string
В этом поле можно отправить код ошибки обработки транзакции, который будет возвращён в ответе в параметре code. Также параметры message и friendly_message будут содержать сообщения, соответствующие указанному коду ошибки. Данная логика работает только для тестовых транзакций.
excluded_gateways
array
Массив для работы с каскадными платежами.
object
Секция для работы с сервисом Masterpass.
object
Секция для параметров Masterpass.
session
string
ID пользовательской сессии.
receipt_text
array
Текст, который будет добавлен в письмо покупателю. Должен быть представлен как массив строк, например, ["Первая строка", "Вторая строка"].
contract
array
Массив, элементами которого могут быть параметры:

recurring - UnonaPay вернет токен карты для осуществления последующих платежей без повторного ввода реквизитов карты. Покупатель, соглашаясь с условиями регулярного списания, единожды производит оплату, вводя реквизиты карты, включая проверочный код карты CVC/CVV и проходя авторизацию по протоколу 3-D ­Secure;

oneclick - UnonaPay вернет токен карты для осуществления последующих платежей по схеме oneclick, когда на странице оплаты будут уже частично заполнены реквизиты карты, а покупателю для завершения оплаты достаточно ввести проверочный код карты CVC/CVV и пройти авторизацию по протоколу 3-D ­Secure;

credit - UnonaPay вернет токен карты для осуществления транзакций выплаты средств;

card_on_file - UnonaPay вернет токен карты, чтобы сохранить ее в профиле покупателя в вашем сервисе или приложении, и использовать этот токен для последующих транзакций по снятию денег с карты за оказанные услуги или проданные товары. Ознакомьтесь ниже с секцией card_on_file, чтобы узнать, какие есть сценарии использования данного значения.
Обязателен, если в запросе отправлен токен.
avs_cvc_verification
object
AVS/CVC проверка.
object
Данная секция устанавливает атрибуты, связанные с хранением данных карты в профиле покупателя. Если секция не передана, то для initiator и type будут использованы значения по умолчанию.
initiator
string
merchant - (по умолчанию) транзакция инициирована системой торговца или приложением (например, оплата за поездку в такси)

customer - транзакция инициирована покупателем (например, покупатель сам нажал кнопку оплатить сохраненной картой в приложении торговца).
type
string
Используется, только если additional_data.card_on_file.initiator имеет значение merchant.

Возможные значения:
delayed_charge - (по умолчанию) предоплата (например, за оказанную услугу);

increment - дополнительное списание суммы (например, при допродаже товара или замене на более дорогой товар);

resubmission - повторная попытка списать деньги из-за предыдущего отказа в транзакции (например, было недостаточно средств на карте);

reauthorization - повторная авторизация (например, нужно перезаблокировать деньги на карте в связи с истечением срока авторизации предыдущей транзакции);

no_show - списание средств в случае неявки покупателя(например, покупатель не заехал в отель).
object
Параметры браузера. Параметры из секции передаются только при использовании 3DS 2.0.
accept_header
string
Значение HTTP-заголовка Accept запроса от браузера покупателя.
screen_width
integer
Ширина экрана в пикселях. Соответствует параметру screen.width в JavaScript.
screen_height
integer
Высота экрана в пикселях. Соответствует параметру screen.height в JavaScript.
screen_color_depth
integer
Глубина цвета экрана в битах на пиксель. Соответствует параметру screen.colorDepth в JavaScript. Возможные значения:

1 - 1 bit
4 - 4 bits
8 - 8 bits
15 - 15 bits
16 - 16 bits
24 - 24 bits
32 - 32 bits
48 - 48 bits.
window_width
integer
Размер окна браузера по горизонтали в пикселях. Соответствует параметру document.body.clientWidth в JavaScript.
window_height
integer
Размер окна браузера по вертикали в пикселях. Соответствует параметру document.body.clientHeight в JavaScript.
language
string
Язык навигатора. Соответствует параметру navigator.language в JavaScript.
java_enabled
boolean
Параметр показывает, включен ли java в текущем браузере или нет. Соответствует параметру navigator.javaEnabled() в JavaScript.
user_agent
string
Строка агента пользователя текущего браузера. Соответствует параметру navigator.userAgent в JavaScript.
time_zone
integer
Смещение часового пояса относительно часового пояса UTC в минутах для текущей локали. Соответствует параметру new Date().getTimezoneOffset() в JavaScript.
time_zone_name
string
Название часового пояса. Соответствует параметру Intl.DateTimeFormat().resolvedOptions().timeZone в JavaScript.
Пример запроса
{
  "request":{
      "amount":100,
      "currency":"USD",
      "description":"Test transaction",
      "tracking_id":"your_uniq_number",
      "language":"en",
      "test":true,
      "billing_address":{
        "first_name":"John",
        "last_name":"Doe",
        "country":"US",
        "city":"Denver",
        "state":"CO",
        "zip":"96002",
        "address":"1st Street"
      },
      "credit_card":{
        "number":"4200000000000000",
        "verification_value":"123",
        "holder":"John Doe",
        "exp_month":"05",
        "exp_year":"2027"
      },
      "customer":{
        "ip":"127.0.0.1",
        "email":"john@example.com"
      }
  }
}
Пример запроса с токеном карты
{
  "request":{
      "amount":100,
      "currency":"USD",
      "description":"Test transaction",
      "tracking_id":"your_uniq_number",
      "test":true,
      "billing_address":{
        "first_name":"John",
        "last_name":"Doe",
        "country":"US",
        "city":"Denver",
        "state":"CO",
        "zip":"96002",
        "address":"1st Street"
      },
      "credit_card":{
        "token":"40bd001563085fc35165329ea1ff5c5ecbdbbeef40bd001563085fc35165329e"
      },
      "customer":{
        "ip":"127.0.0.1",
        "email":"john@example.com"
      }
  }
}
Пример запроса с информацией о продаже авиабилетов и тур путевок
{
  "request":{
    "amount":100,
    "currency":"USD",
    "description":"Test transaction",
    "tracking_id":"your_uniq_number",
    "test":true,
    "billing_address":{
      "first_name":"John",
      "last_name":"Doe",
      "country":"US",
      "city":"Denver",
      "state":"CO",
      "zip":"96002",
      "address":"1st Street"
    },
    "credit_card":{
      "token":"40bd001563085fc35165329ea1ff5c5ecbdbbeef40bd001563085fc35165329e"
    },
    "customer":{
      "ip":"127.0.0.1",
      "email":"john@example.com"
    },
    "travel": {
      "airline": {
        "agency_code": "03",
        "agency_name": "Corel travel",
        "ticket_number": "390 5241 025377 1",
        "booking_number": "DKZVUA",
        "restricted_ticked_indicator": "0",
        "legs": [
          {
            "airline_code": "B2",
            "stop_over_code": "X",
            "flight_number": "A3 971",
            "departure_date_time": "2014-05-26T05:15:00",
            "arrival_date_time": "2014-05-26T07:30:00",
            "originating_country": "RU",
            "originating_city": "Moscow",
            "originating_airport_code": "DME",
            "destination_country": "Greece",
            "destination_city": "Athems",
            "destination_airport_code": "ATH",
            "coupon": "coupon code",
            "class": "C"
          }
        ],
        "passengers":[
          {
            "first_name": "KONSTANTIN",
            "last_name": "IVANOV"
          },
          {
            "first_name": "JULIA",
            "last_name": "IVANOVA"
          }
        ]
      }
    }
  }
}
Пример запроса с дополнительным текстом
{
  "request":{
      "amount":100,
      "currency":"USD",
      "description":"Test transaction",
      "tracking_id":"your_uniq_number",
      "language":"en",
      "test":true,
      "billing_address":{
        "first_name":"John",
        "last_name":"Doe",
        "country":"US",
        "city":"Denver",
        "state":"CO",
        "zip":"96002",
        "address":"1st Street"
      },
      "credit_card":{
        "number":"4200000000000000",
        "verification_value":"123",
        "holder":"John Doe",
        "exp_month":"05",
        "exp_year":"2027"
      },
      "additional_data":{
        "receipt_text": ["First line", "Second Line"]
      },
      "customer":{
        "ip":"127.0.0.1",
        "email":"john@example.com"
      }
  }
}
Ответ

Ответ будет содержать те же параметры, что и запрос, а также дополнительные параметры:

обязательный
object
uid
обязательный
string
UID обработанной транзакции.
status
обязательный
string
Статус обработанной транзакции.
message
обязательный
string
Сообщение с результатом запроса, соответствующее коду ошибки обработки транзакции (code).
tracking_id
обязательный
string
Значение параметра tracking_id из запроса.
language
обязательный
string
Значение параметра language из запроса или en, если параметр не был передан.
type
обязательный
string
Тип транзакции.
payment_method_type
обязательный
string
Способ оплаты, используется для завершения транзакции:

credit_card.
обязательный
object
brand
обязательный
string
Определенный бренд карты.
product
обязательный
string
Код типа карточного продукта.
last_4
обязательный
string
Последние 4 цифры карты.
first_1
обязательный
string
Первая цифра карты.
bin
обязательный
string (6)
Шестизначный банковский идентификационный номер. Первые 6 цифр номера карты.
bin_8
обязательный
string (8)
Восьмизначный банковский идентификационный номер. Первые 8 цифр номера карты. Значение возвращается для карт Visa, Mastercard, Maestro и соответствующих кобрендинговых карт. Для брендов других платежных карт значение параметра – null.
issuer_country
обязательный
string (2)
Страна банка, выпустившего карту в формате ISO 3166-1 alpha-2.
issuer_name
обязательный
string
Название банка, выпустившего карту.
stamp
обязательный
string
Хэш карты. Постоянная величина, даже если дата окончания действия карты или владелец изменены.
token
обязательный
string
Токен карты. Позволяет сохранять данные покупателей и производить оплату, когда они делают покупку или вы возобновляете свои услуги.
token_provider
обязательный
string
Возможные значения или null.
receipt_url
обязательный
string
Ссылка на квитанцию обработанной транзакции
object
Секция, содержащая дополнительную информацию о платеже.
masterpass
object
Секция для работы с сервисом Masterpass.
receipt_text
array
Текст, который будет добавлен в письмо покупателю.
redirect_url
обязательный
string
URL страницы для завершения транзакции.

Если параметр status имеет значение incomplete, перенаправьте покупателя на этот URL для прохождения проверки 3-D Secure.
code
обязательный
string
Код обработки транзакции.
friendly_message
обязательный
string
Сообщение для покупателя с описанием кода ошибки из параметра code.
object
auth_code
обязательный
string
Код авторизации.
bank_code
обязательный
string
Код ответа транзакции в банковской системе.
rrn
обязательный
string
Номер транзакции в международной платёжной системе. ID транзакции, выданный сетью обработки карт.
ref_id
обязательный
string
Номер транзакции в системе банка.
message
обязательный
string
Сообщение от системы банка.
billing_descriptor
обязательный
string
Идентификатор платежа, назначенный транзакции.
status
обязательный
string
Статус обработанной банком-эквайером транзакции.
avs_cvc_verification
object
Необязательный блок с результатом проверки AVS/CVC.
object
Секция с данными о прохождении проверок транзакции сервисом Умная Маршрутизация.
status
string
Статус обработки транзакции сервисом.

Секция Masterpass

object
Секция для работы с сервисом Masterpass.
object
Секция для параметров Masterpass.
session
string
ID пользовательской сессии.
object
Результат транзакции в Masterpass.
status
string
Статус ответа: successful, failed.
message
string
Сообщение о результате транзакции в Masterpass, сгенерированное UnonaPay.
error
string
Сообщение о причине ошибки в Masterpass, сгенерированное UnonaPay. Возвращается в случае ошибки.
error_message
string
Сообщение об ошибке, сгенерированное Masterpass. Возвращается в случае ошибки.
error_code
string
Код ошибки, сгенерированный Masterpass. Возвращается в случае ошибки.
token
string
Токен карты в системе Masterpass. Возвращается в случае сохранения карты.
Пример ответа
{
  "transaction": {
    "uid": "bf2ebe5b-0a31-4769-b61d-a46afa3b98fa",
    "status": "successful",
    "amount": 482,
    "currency": "EUR",
    "description": "Test transaction",
    "type": "authorization",
    "payment_method_type": "credit_card",
    "tracking_id": "your_uniq_number",
    "message": "Successfully processed",
    "test": true,
    "created_at": "2024-04-02T08:40:33.377Z",
    "updated_at": "2024-04-02T08:40:38.455Z",
    "paid_at": "2024-04-02T08:40:38.400Z",
    "expired_at": null,
    "recurring_type": "initial",
    "closed_at": null,
    "settled_at": null,
    "manually_corrected_at": null,
    "language": "en",
    "credit_card": {
      "holder": "John Doe",
      "stamp": "bb58cad9c1204ca2287b3e1006cc1a2c0fb8f062dde9e5232c8be5498bd0e62a",
      "brand": "visa",
      "last_4": "1097",
      "first_1": "4",
      "bin": "401200",
      "bin_8": "40120000",
      "issuer_country": null,
      "issuer_name": null,
      "product": null,
      "exp_month": 7,
      "exp_year": 2027,
      "token_provider": null,
      "token": "854d95e6-b7a5-41fb-b2a0-b8a6a0ae2021"
    },
    "receipt_url": "https://online.unonapay.com/customer/transactions/bf2ebe5b-0a31-4769-b61d-a46afa3b98fa/e6d23017fb43c6e2be34992efef50cfbadd3bb64942d7a9fe74a3e726a3907a6?language=en",
    "status_code": null,
    "gateway": {
      "iframe": false
    },
    "mute_notifications": null,
    "id": "bf2ebe5b-0a31-4769-b61d-a46afa3b98fa",
    "additional_data": {
      "contract": [
        "recurring"
      ]
    },
    "redirect_url": "https://gateway.unonapay.com/process/bf2ebe5b-0a31-4769-b61d-a46afa3b98fa",
    "code": "S.0000",
    "friendly_message": "The operation is successful.",
    "smart_routing_verification": {
      "status": "successful"
    },
    "authorization": {
      "auth_code": "654321",
      "bank_code": "05",
      "rrn": "999",
      "ref_id": "777888",
      "message": "Authorization was approved",
      "amount": 482,
      "currency": "EUR",
      "billing_descriptor": "test descriptor",
      "gateway_id": 3208,
      "status": "successful"
    },
    "customer": {
      "ip": null,
      "email": null,
      "device_id": null,
      "birth_date": null
    },
    "billing_address": {
      "first_name": "John",
      "last_name": "Doe",
      "address": "1st Street",
      "country": "US",
      "city": "Denver",
      "zip": "96002",
      "state": "CO",
      "phone": null
    }
  }
}
Пример ответа в случае, если требуется 3-D Secure проверка
{
  "transaction": {
    "uid": "1f63b7ec-c58f-4a38-87bc-e8ea55a7d9c5",
    "status": "incomplete",
    "amount": 482,
    "currency": "EUR",
    "description": "Test transaction",
    "type": "authorization",
    "payment_method_type": "credit_card",
    "tracking_id": "your_uniq_number",
    "message": null,
    "test": true,
    "created_at": "2024-04-02T10:22:01.352Z",
    "updated_at": "2024-04-02T10:22:03.058Z",
    "paid_at": null,
    "expired_at": null,
    "recurring_type": "initial",
    "closed_at": null,
    "settled_at": null,
    "manually_corrected_at": null,
    "language": "en",
    "credit_card": {
      "holder": "John Doe",
      "stamp": "bb58cad9c1204ca2287b3e1006cc1a2c0fb8f062dde9e5232c8be5498bd0e62a",
      "brand": "visa",
      "last_4": "1097",
      "first_1": "4",
      "bin": "401200",
      "bin_8": "40120000",
      "issuer_country": null,
      "issuer_name": null,
      "product": null,
      "exp_month": 7,
      "exp_year": 2027,
      "token_provider": null,
      "token": "5d1392f2-864d-499b-b3ce-40e68d980d71"
    },
    "receipt_url": "https://online.unonapay.com/customer/transactions/1f63b7ec-c58f-4a38-87bc-e8ea55a7d9c5/4bfe945ab88e76507becb0f792f14426ad261afe2f809932cdcfd6c713ad6339?language=en",
    "status_code": null,
    "gateway": {
      "iframe": true
    },
    "mute_notifications": null,
    "id": "1f63b7ec-c58f-4a38-87bc-e8ea55a7d9c5",
    "additional_data": {
      "contract": [
        "recurring"
      ]
    },
    "redirect_url": "https://gateway.unonapay.com/process/1f63b7ec-c58f-4a38-87bc-e8ea55a7d9c5",
    "code": "P.4012",
    "friendly_message": "Redirect to pass 3-D Secure verification.",
    "smart_routing_verification": {
      "status": "successful"
    },
    "three_d_secure_verification": {
      "status": "incomplete",
      "message": "Authentication Available",
      "ve_status": "Y",
      "acs_url": null,
      "pa_req": null,
      "md": null,
      "pa_res_url": "https://online.unonapay.com/process/1f63b7ec-c58f-4a38-87bc-e8ea55a7d9c5",
      "eci": null,
      "pa_status": null,
      "xid": null,
      "cavv": null,
      "cavv_algorithm": null,
      "fail_reason": null,
      "method_process_url": null,
      "creq": null
    },
    "authorization": {
      "auth_code": null,
      "bank_code": null,
      "rrn": null,
      "ref_id": null,
      "message": null,
      "amount": 482,
      "currency": "EUR",
      "billing_descriptor": null,
      "gateway_id": 3483,
      "status": "incomplete"
    },
    "customer": {
      "ip": null,
      "email": null,
      "device_id": null,
      "birth_date": null
    },
    "billing_address": {
      "first_name": "John",
      "last_name": "Doe",
      "address": "1st Street",
      "country": "US",
      "city": "Denver",
      "zip": "96002",
      "state": "CO",
      "phone": null
    }
  }
}