Method: externaltransactions.refundexternaltransaction

Возвращает средства (полностью или частично) за внешнюю транзакцию.

HTTP-запрос

POST https://androidpublisher.googleapis.com/androidpublisher/v3/{name=applications/*/externalTransactions/*}:refund

URL имеет синтаксис gRPC Transcoding.

Параметры пути

Параметры
name

string

Обязательно. Название внешней транзакции, по которой будет выполнен возврат средств. Формат: applications/{packageName}/externalTransactions/{externalTransaction}

Тело запроса

Ниже приведена структура данных в теле запроса.

JSON-представление
{
  "refundTime": string,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "partialRefund": {
    object (PartialRefund)
  },
  "fullRefund": {
    object (FullRefund)
  }
  // End of mutually exclusive fields.
}
Поля
refundTime

string (Timestamp format)

Обязательно. Время, когда был выполнен возврат средств за транзакцию.

Используется формат RFC 3339. Результат всегда будет Z-нормализованным, и в нем будут использоваться цифры дробных частей 0, 3, 6 или 9. Допустимы и другие типы нормализации. Примеры: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30".

Обязательно. Тип возврата средств за внешнюю транзакцию. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
partialRefund

object (PartialRefund)

Частичный возврат средств.

fullRefund

object (FullRefund)

Полный возврат средств.

Конец взаимоисключающих полей.

Тело ответа

Если ответ получен успешно, его тело содержит экземпляр ExternalTransaction.

Пример

Ниже приведен пример запроса.

curl \
  -X POST \
  'https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.example.app/externalTransactions/foo:refund' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  -H 'Content-Type: application/json' \
  -d '{ \
    "partialRefund": { \
      "refundId": "my_refund_id", \
      "refundPreTaxAmount": { \
        "currency": "USD", \
        "priceMicros": "10120000" \
      } \
    }, \
    "refundTime": "2023-10-20T16:43:32.852Z" \
  }'

Ниже приведен пример ответа.

{
  "externalTransactionId": "1234567890123456789012345678901234567890123456789012345678901234",
  "originalPreTaxAmount": {
    "currency": "USD",
    "priceMicros": "1990000"
  },
  "originalTaxAmount": {
    "currency": "USD",
    "priceMicros": "11400000"
  },
  "packageName": "com.example.app",
  "transactionState": "TRANSACTION_CANCELED",
  "transactionTime": "2023-04-01T12:00:00Z",
  "userTaxAddress": {
    "regionCode": "US"
  },
  "createTime": "2023-04-01T11:55:00Z",
  "currentPreTaxAmount": {
    "currency": "USD",
    "priceMicros": "0"
  },
  "currentTaxAmount": {
    "currency": "USD",
    "priceMicros": "0"
  },
  "testPurchase": {},
  "recurringTransaction": {
    "initialExternalTransactionId": "9876543210987654321098765432109876543210987654321098765432109876",
    "externalSubscription": {
      "subscriptionType": "RECURRING"
    }
  }
}

Области авторизации

Требуется следующая область действия OAuth:

  • https://www.googleapis.com/auth/androidpublisher

PartialRefund

Частичный возврат средств по транзакции.

JSON-представление
{
  "refundId": string,
  "refundPreTaxAmount": {
    object (Price)
  }
}
Поля
refundId

string

Обязательно. Уникальный идентификатор, позволяющий отличить этот частичный возврат средств от других. Если возврат средств будет выполнен успешно, последующие возвраты с тем же идентификатором будут отклонены. Должен быть уникальным для всех возвратов средств по одной транзакции.

refundPreTaxAmount

object (Price)

Обязательно. Сумма частичного возврата средств до вычета налогов. Она должна быть меньше оставшейся суммы транзакции до вычета налогов.

FullRefund

У этого типа нет полей.

Полный возврат средств оставшейся суммы транзакции.