{
  "swagger": "2.0",
  "info": {
    "title": "Google Standard Payments Google Hosted Carriers API",
    "description": "This includes services hosted by Google for Carriers.",
    "version": "v1"
  },
  "host": "vgw.googleapis.com",
  "basePath": "/gsp",
  "schemes": ["https"],
  "paths": {
    "/carriers-v1/remittanceStatementDetails": {
      "post": {
        "tags": ["vgw"],
        "operationId": "RemittanceStatementDetails",
        "description": "Returns transaction detail information about a remittance statement. This is a paginated API. The number of transaction events per page can be specified with `numberOfEvents`. If unspecified, the maximum of 1000 events will be returned per page. Each request to this API will return a `nextEventOffset` pointing to the next transaction event in the statement, as well as `remittanceStatementSummary.totalEvents` specifying the total number of transactions in the statement. If the current retrieved page contains the last transactions of the statement, `nextEventOffset` will not be present in the response. The `statementId` value is the `requestId` from the `remittanceStatementNotificationRequest` If the endpoint encounters an error while processing the request, the endpoint will return HTTP 4xx or 5xx and the HTTP body will either be of type `ErrorResponse` or contain a generic error (e.g. a message similar to \"There was an error. Please try again later.\"). The generic error is used in situations where an `ErrorResponse` with a clear description could be used to help an attacker understand the payment integrator account identifier of other integrators. In these situations, where either the signing key doesn't match, the payment integrator identifier was not found, or the encryption key was unknown, this method will return a generic error. If the request signature could be verified, additional information regarding the error will be returned in an `ErrorResponse`. An example request looks like: { \"requestHeader\": { \"protocolVersion\": { \"major\": 1 }, \"requestId\": \"statement_detail_request_139932019\", \"requestTimestamp\": { \"epochMillis\": \"1502551332087\" }, \"paymentIntegratorAccountId\": \"InvisiCashUSA_USD\" }, \"statementId\": \"0123434-statement-abc\", \"numberOfEvents\": 5 } An example response looks like: { \"responseHeader\": { \"responseTimestamp\": { \"epochMillis\": \"1481900013178\" } }, \"eventOffset\": 0, \"nextEventOffset\": 5, \"remittanceStatementSummary\": { \"statementDate\": { \"epochMillis\": \"1502521200000\" }, \"billingPeriod\": { \"startDate\": { \"epochMillis\": \"1502434800000\" }, \"endDate\": { \"epochMillis\": \"1502434800000\" } }, \"dateDue\": { \"epochMillis\": \"1502348400000\" }, \"totalDueByIntegrator\": { \"amountMicros\": \"1569000000\", \"currencyCode\": \"INR\" }, \"totalProcessedAmount\": { \"amountMicros\": \"1669000000\", \"currencyCode\": \"INR\" }, \"totalFeesAmount\": { \"amountMicros\": \"100000000\", \"currencyCode\": \"INR\" }, \"totalDirectTaxAmount\": { \"amountMicros\": \"100000\", \"currencyCode\": \"INR\" }, \"totalWithholdingTaxAmount\": { \"amountMicros\": \"-1000000\", \"currencyCode\": \"INR\" }, \"totalPresentmentAmounts\": [ { \"amountMicros\": \"1669000000\", \"currencyCode\": \"INR\" } ], \"totalEvents\": 15 }, \"issuerSummaries\": [ { \"issuerId\": { \"value\": \"invisiCarrier\" }, \"totalByIssuer\": { \"amountMicros\": \"1569000000\", \"currencyCode\": \"INR\" }, \"captureSummaries\": [ { \"revshareCategory\": \"APP\", \"totalCharges\": { \"amountMicros\": \"700000000\", \"currencyCode\": \"INR\" }, \"totalItemPrice\": { \"amountMicros\": \"665000000\", \"currencyCode\": \"INR\" }, \"totalFees\": { \"amountMicros\": \"-28000000\", \"currencyCode\": \"INR\" }, \"totalDirectTaxes\": { \"amountMicros\": \"35000000\", \"currencyCode\": \"INR\" }, \"totalWithholdingTaxes\": { \"amountMicros\": \"0\", \"currencyCode\": \"INR\" } }, { \"revshareCategory\": \"CONTENT\", \"totalCharges\": { \"amountMicros\": \"800000000\", \"currencyCode\": \"INR\" }, \"totalItemPrice\": { \"amountMicros\": \"760000000\", \"currencyCode\": \"INR\" }, \"totalFees\": { \"amountMicros\": \"-32000000\", \"currencyCode\": \"INR\" }, \"totalDirectTaxes\": { \"amountMicros\": \"40000000\", \"currencyCode\": \"INR\" }, \"totalWithholdingTaxes\": { \"amountMicros\": \"0\", \"currencyCode\": \"INR\" } }, { \"revshareCategory\": \"SPECIAL_APP\", \"totalCharges\": { \"amountMicros\": \"500000000\", \"currencyCode\": \"INR\" }, \"totalItemPrice\": { \"amountMicros\": \"475000000\", \"currencyCode\": \"INR\" }, \"totalFees\": { \"amountMicros\": \"-35000000\", \"currencyCode\": \"INR\" }, \"totalDirectTaxes\": { \"amountMicros\": \"25000000\", \"currencyCode\": \"INR\" }, \"totalWithholdingTaxes\": { \"amountMicros\": \"0\", \"currencyCode\": \"INR\" } } ], \"refundSummaries\": [ { \"revshareCategory\": \"APP\", \"totalCharges\": { \"amountMicros\": \"-200000000\", \"currencyCode\": \"INR\" }, \"totalItemPrice\": { \"amountMicros\": \"-190000000\", \"currencyCode\": \"INR\" }, \"totalFees\": { \"amountMicros\": \"8000000\", \"currencyCode\": \"INR\" }, \"totalDirectTaxes\": { \"amountMicros\": \"-10000000\", \"currencyCode\": \"INR\" }, \"totalWithholdingTaxes\": { \"amountMicros\": \"0\", \"currencyCode\": \"INR\" } }, { \"revshareCategory\": \"CONTENT\", \"totalCharges\": { \"amountMicros\": \"-150000000\", \"currencyCode\": \"INR\" }, \"totalItemPrice\": { \"amountMicros\": \"-142500000\", \"currencyCode\": \"INR\" }, \"totalFees\": { \"amountMicros\": \"6000000\", \"currencyCode\": \"INR\" }, \"totalDirectTaxes\": { \"amountMicros\": \"-7500000\", \"currencyCode\": \"INR\" }, \"totalWithholdingTaxes\": { \"amountMicros\": \"0\", \"currencyCode\": \"INR\" } } ] } ], \"captureEvents\": [ { \"eventRequestId\": \"bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ\", \"revshareCategory\": \"APP\", \"issuerId\": { \"value\": \"invisiCarrier\" }, \"eventDetail\": { \"eventCharge\": { \"amountMicros\": \"700000000\", \"currencyCode\": \"INR\" }, \"eventTax\": { \"amountMicros\": \"35000000\", \"currencyCode\": \"INR\" }, \"eventFee\": { \"amountMicros\": \"-28000000\", \"currencyCode\": \"INR\" }, \"presentmentChargeAmount\": { \"amountMicros\": \"700000000\", \"currencyCode\": \"INR\" }, \"nanoExchangeRate\": \"10000000000000\" } }, { \"eventRequestId\": \"Ggghvh78200PQ3Yrpb\", \"revshareCategory\": \"CONTENT\", \"issuerId\": { \"value\": \"invisiCarrier\" }, \"eventDetail\": { \"eventCharge\": { \"amountMicros\": \"800000000\", \"currencyCode\": \"INR\" }, \"eventTax\": { \"amountMicros\": \"40000000\", \"currencyCode\": \"INR\" }, \"eventFee\": { \"amountMicros\": \"-32000000\", \"currencyCode\": \"INR\" }, \"presentmentChargeAmount\": { \"amountMicros\": \"800000000\", \"currencyCode\": \"INR\" }, \"nanoExchangeRate\": \"10000000000000\" } }, { \"eventRequestId\": \"bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ\", \"revshareCategory\": \"SPECIAL_APP\", \"issuerId\": { \"value\": \"invisiCarrier\" }, \"eventSummary\": { \"eventCharge\": { \"amountMicros\": \"500000000\", \"currencyCode\": \"INR\" }, \"eventTax\": { \"amountMicros\": \"25000000\", \"currencyCode\": \"INR\" }, \"presentmentChargeAmount\": { \"amountMicros\": \"500000000\", \"currencyCode\": \"INR\" }, \"nanoExchangeRate\": \"10000000000000\" } } ], \"refundEvents\": [ { \"eventRequestId\": \"liUrreQY233839dfFFb24gaQM\", \"revshareCategory\": \"APP\", \"issuerId\": { \"value\": \"invisiCarrier\" }, \"eventDetail\": { \"eventCharge\": { \"amountMicros\": \"-200000000\", \"currencyCode\": \"INR\" }, \"eventTax\": { \"amountMicros\": \"-10000000\", \"currencyCode\": \"INR\" }, \"eventFee\": { \"amountMicros\": \"8000000\", \"currencyCode\": \"INR\" }, \"presentmentChargeAmount\": { \"amountMicros\": \"-200000000\", \"currencyCode\": \"INR\" }, \"nanoExchangeRate\": \"10000000000000\" } }, { \"eventRequestId\": \"IIghhhUrreQY233839II9qM==\", \"revshareCategory\": \"CONTENT\", \"issuerId\": { \"value\": \"invisiCarrier\" }, \"eventDetail\": { \"eventCharge\": { \"amountMicros\": \"-150000000\", \"currencyCode\": \"INR\" }, \"eventTax\": { \"amountMicros\": \"-7500000\", \"currencyCode\": \"INR\" }, \"eventFee\": { \"amountMicros\": \"6000000\", \"currencyCode\": \"INR\" }, \"presentmentChargeAmount\": { \"amountMicros\": \"-150000000\", \"currencyCode\": \"INR\" }, \"nanoExchangeRate\": \"10000000000000\" } } ] } ",
        "parameters": [
          {
            "name": "body",
            "description": "The request body.",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/RemittanceStatementDetailsRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "schema": {
              "$ref": "#/definitions/RemittanceStatementDetailsResponse"
            }
          }
        }
      }
    },
    "/carriers-v1/acceptRemittanceStatement": {
      "post": {
        "tags": ["vgw"],
        "operationId": "AcceptRemittanceStatement",
        "description": "Tells Google that the statement indicated in this request will be paid. If the endpoint encounters an error while processing the request, the endpoint will return HTTP 4xx or 5xx and the HTTP body will either be of type `ErrorResponse` or contain a generic error (e.g. a message similar to \"There was an error. Please try again later.\"). The generic error is used in situations where an `ErrorResponse` with a clear description could be used to help an attacker understand the payment integrator account identifier of other integrators. In these situations, where either the signing key doesn't match, the payment integrator identifier was not found, or the encryption key was unknown, this method will return a generic error. If the request signature could be verified, additional information regarding the error will be returned in an `ErrorResponse`. An example request looks like: { \"requestHeader\": { \"protocolVersion\": { \"major\": 1 }, \"requestId\": \"0123434-abc\", \"requestTimestamp\": { \"epochMillis\": \"1502545413098\" }, \"paymentIntegratorAccountId\": \"InvisiCashUSA_USD\" }, \"statementId\": \"0123434-statement-abc\" } An example response looks like: { \"responseHeader\": { \"responseTimestamp\": { \"epochMillis\": \"1519996752221\" } }, \"result\": { \"success\": {} } } ",
        "parameters": [
          {
            "name": "body",
            "description": "The request body.",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/AcceptRemittanceStatementRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "schema": {
              "$ref": "#/definitions/AcceptRemittanceStatementResponse"
            }
          }
        }
      }
    },
    "/carriers-v1/echo": {
      "post": {
        "tags": ["vgw"],
        "operationId": "Echo",
        "description": "Echos back a string sent from the client. If the echo is successful, the endpoint will return an HTTP 200 and the response will be of type `EchoResponse`. If the endpoint encounters an error while processing the request, the endpoint will return HTTP 4xx or 5xx and the HTTP body will either be of type `ErrorResponse` or contain a generic error (e.g. a message similar to \"There was an error. Please try again later.\"). The generic error is used in situations where an `ErrorResponse` with a clear description could be used to help an attacker understand the payment integrator account identifier of other integrators. In these situations, where either the signing key doesn't match, the payment integrator identifier was not found, or the encryption key was unknown, this method will return a generic error. If the request signature could be verified, additional information regarding the error will be returned in an `ErrorResponse`. An example request looks like: { \"requestHeader\": { \"protocolVersion\": { \"major\": 1 }, \"requestId\": \"G1MQ0YERJ0Q7LPM\", \"requestTimestamp\": { \"epochMillis\": \"1481899949606\" }, \"paymentIntegratorAccountId\": \"InvisiCashUSA_USD\" }, \"clientMessage\": \"Client echo message\" } An example success response looks like: { \"responseHeader\": { \"responseTimestamp\": { \"epochMillis\":\"1481899950236\" } }, \"clientMessage\": \"Client echo message\", \"serverMessage\": \"Debug ID 12345\" } ",
        "parameters": [
          {
            "name": "body",
            "description": "The request body.",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/EchoRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "schema": {
              "$ref": "#/definitions/EchoResponse"
            }
          }
        }
      }
    },
    "/carriers-v1/getDisputeInquiryReport": {
      "post": {
        "tags": ["vgw"],
        "operationId": "GetDisputeInquiryReport",
        "description": "Get a report that provides information to facilitate a customer support conversation with a user regarding a potential dispute of a payment. Responses to this query may be empty if this method does not return an HTTP 200. If the endpoint encounters an error while processing the request, the endpoint will return HTTP 4xx or 5xx and the HTTP body will either be of type `ErrorResponse` or contain a generic error (e.g. a message similar to \"There was an error. Please try again later.\"). The generic error is used in situations where an `ErrorResponse` with a clear description could be used to help an attacker understand the payment integrator account identifier of other integrators. In these situations, where either the signing key doesn't match, the payment integrator identifier was not found, or the encryption key was unknown, this method will return a generic error. If the request signature could be verified, additional information regarding the error will be returned in an `ErrorResponse`. An example request looks like: { \"requestHeader\": { \"protocolVersion\": { \"major\": 1 }, \"requestId\": \"HsKv5pvtQKTtz7rdcw1YqE\", \"requestTimestamp\": { \"epochMillis\": \"1519996751331\" }, \"paymentIntegratorAccountId\": \"InvisiCashUSA_USD\" }, \"paymentLookupCriteria\": { \"googleTransactionReferenceNumberCriteria\": { \"googleTransactionReferenceNumber\": \"714545417102363157911822\", \"authorizationCode\": \"111111\" } }, \"existingGoogleClaimId\": \"138431383281\", \"requestOriginator\": { \"organizationId\": \"ISSUER_256\", \"organizationDescription\": \"Community Bank of Some City\", \"agentId\": \"982749\" } } An example response looks like: { \"responseHeader\": { \"responseTimestamp\": { \"epochMillis\": \"1519996752221\" } }, \"result\": { \"success\": { \"googleClaimId\": \"138431383281\", \"report\": { \"customerAccount\": { \"customerEmail\": \"example@gmail.com\", \"customerName\" : \"Example Customer\" }, \"order\": { \"timestamp\": { \"epochMillis\": \"1517992525972\" }, \"orderId\": \"SOP.8976-1234-1234-123456..99\", \"subTotalAmount\": { \"amountMicros\": \"206990000\", \"currencyCode\": \"USD\" }, \"totalAmount\": { \"amountMicros\": \"212990000\", \"currencyCode\": \"USD\" }, \"shippingAddress\": { \"addressLine\": [\"123 Main St\"], \"localityName\": \"Springfield\", \"administrativeAreaName\": \"CO\", \"postalCodeNumber\": \"80309\", \"countryCode\": \"US\" }, \"taxes\": [ { \"description\": \"Colorado Sales Tax\", \"amount\": { \"amountMicros\": \"6000000\", \"currencyCode\": \"USD\" } } ], \"items\": [ { \"description\": \"Super cool gizmo\", \"merchant\": \"HTC\", \"googleProductName\": \"Google Store\", \"quantity\": \"2\", \"totalPrice\": { \"amountMicros\": \"198000000\", \"currencyCode\": \"USD\" } }, { \"description\": \"Gizmo charger\", \"merchant\": \"HTC\", \"googleProductName\": \"Google Store\", \"quantity\": \"1\", \"totalPrice\": { \"amountMicros\": \"8990000\", \"currencyCode\": \"USD\" } } ] }, \"payment\": { \"billingAddress\" : { \"addressLine\": [\"123 Main St\"], \"localityName\": \"Springfield\", \"administrativeAreaName\": \"CO\", \"postalCodeNumber\": \"80309\", \"countryCode\": \"US\" }, \"amount\": { \"amountMicros\": \"100000000\", \"currencyCode\": \"USD\" }, \"refunds\": [ { \"amount\": { \"amountMicros\": \"9250000\", \"currencyCode\": \"USD\" }, \"initiatedTimestamp\": { \"epochMillis\": \"1518811245384\" } } ], \"cardDetails\": { \"authResult\": \"APPROVED\" } } } } } } ",
        "parameters": [
          {
            "name": "body",
            "description": "The request body.",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/GetDisputeInquiryReportRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "schema": {
              "$ref": "#/definitions/GetDisputeInquiryReportResponse"
            }
          }
        }
      }
    },
    "/carriers-v1/fraudNotification": {
      "post": {
        "tags": ["vgw"],
        "operationId": "FraudNotification",
        "description": "Notifies Google of a fraud dispute initiated by a customer. It is recommended that Google is notified of all potential fraud that has occurred. Fraud can occur without a chargeback and a chargeback can occur without fraud. The information provided to this method does not initiate any money movement. It is used only to update Google's internal risk engine to reduce overall fraud. Google does not respond to this request with any information about the transaction. If the endpoint encounters an error while processing the request, the endpoint will return HTTP 4xx or 5xx and the HTTP body will either be of type `ErrorResponse` or contain a generic error (e.g. a message similar to \"There was an error. Please try again later.\"). The generic error is used in situations where an `ErrorResponse` with a clear description could be used to help an attacker understand the payment integrator account identifier of other integrators. In these situations, where either the signing key doesn't match, the payment integrator identifier was not found, or the encryption key was unknown, this method will return a generic error. If the request signature could be verified, additional information regarding the error will be returned in an `ErrorResponse`. An example request looks like: { \"requestHeader\": { \"protocolVersion\": { \"major\": 1 }, \"requestId\": \"f3b6cffe-6fa0-4c33-84b5-7ff8d1ac9ecc\", \"requestTimestamp\": { \"epochMillis\": \"1483532962000\" }, \"paymentIntegratorAccountId\": \"SpeedyPaymentsIndia_INR\" }, \"captureRequestId\": \"G112YZH4XPDV88J\", \"fraudType\": \"FRAUDULENT_USE\", \"rawResult\": { \"scope\": \"VISA\", \"rawCode\": \"06\" } } An example response looks like: { \"responseHeader\": { \"responseTimestamp\": { \"epochMillis\": \"1483532962349\" } }, \"result\": { \"success\": {} } } ",
        "parameters": [
          {
            "name": "body",
            "description": "The request body.",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/FraudNotificationRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "schema": {
              "$ref": "#/definitions/FraudNotificationResponse"
            }
          }
        }
      }
    },
    "/carriers-v1/updateAssociatedAccount": {
      "post": {
        "tags": ["vgw"],
        "operationId": "UpdateAssociatedAccountInfo",
        "description": "Requests an update to an associated user account. This method requires that a complete snapshot of the associated account information be provided, along with an update sequence timestamp. The update sequence timestamp is used to determine the most recent update. Updates with an update sequence timestamp older than the current Google record are dropped. The update sequence timestamp should reflect the time the state of the account was read in milliseconds. The update sequence timestamp must be within +\/- 1 min of the Google server time when the request is received, or the request will be rejected with response code 401. Failed requests may be retried until a 401 response code is received. If a 401 response code is received, the client should refresh the updateSequenceTimestamp prior to retrying the request. If the endpoint encounters an error while processing the request, the endpoint will return HTTP 4xx or 5xx and the HTTP body will either be of type `ErrorResponse` or contain a generic error (e.g. a message similar to \"There was an error. Please try again later.\"). The generic error is used in situations where an `ErrorResponse` with a clear description could be used to help an attacker understand the payment integrator account identifier of other integrators. In these situations, where either the signing key doesn't match, the payment integrator identifier was not found, or the encryption key was unknown, this method will return a generic error. If the request signature could be verified, additional information regarding the error will be returned in an `ErrorResponse`. An example request looks like: { \"requestHeader\": { \"protocolVersion\": { \"major\": 1 }, \"requestId\": \"8a986fe8-5a2c-45a4-a1bb-3bed6e651020\", \"requestTimestamp\": { \"epochMillis\": \"1482452962000\" }, \"paymentIntegratorAccountId\": \"InvisiCashUSA_USD\" }, \"googlePaymentToken\": { \"issuerId\": { \"value\": \"InvisiCashUSA\" }, \"token\": \"xcoNWE23812Sflks9an01%s\" }, \"updateSequenceTimestamp\": { \"epochMillis\": \"1482452962000\" }, \"accountInfo\": { \"accountStatus\": \"ACCOUNT_AVAILABLE\", \"transactionLimits\": { \"transactionMaxLimit\": { \"limitAmount\": { \"amountMicros\": \"100000000\", \"currencyCode\": \"JPY\" } } }, \"accountIds\": { \"partialAccountNickname\": \"(XXX) XXX-5555\", \"accountAlias\": { \"phoneNumber\": { \"value\": \"+15555555555\" } } } } } An example response looks like: { \"responseHeader\": { \"responseTimestamp\": { \"epochMillis\": \"1482452962840\" } }, \"result\": { \"success\": {} } } ",
        "parameters": [
          {
            "name": "body",
            "description": "The request body.",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/UpdateAssociatedAccountRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "schema": {
              "$ref": "#/definitions/UpdateAssociatedAccountResponse"
            }
          }
        }
      }
    },
    "/carriers-v1/authenticationResultNotification": {
      "post": {
        "tags": ["vgw"],
        "operationId": "AuthenticationResultNotification",
        "description": "Completes an authentication request that was triggered by Google in a different context that cannot receive a synchronous response from the vendor. For instance, an authentication based on sending an SMS from the user's device. If the endpoint encounters an error while processing the request, the endpoint will return HTTP 4xx or 5xx and the HTTP body will either be of type `ErrorResponse` or contain a generic error (e.g. a message similar to \"There was an error. Please try again later.\"). The generic error is used in situations where an `ErrorResponse` with a clear description could be used to help an attacker understand the payment integrator account identifier of other integrators. In these situations, where either the signing key doesn't match, the payment integrator identifier was not found, or the encryption key was unknown, this method will return a generic error. If the request signature could be verified, additional information regarding the error will be returned in an `ErrorResponse`. An example request looks like: { \"requestHeader\": { \"protocolVersion\": { \"major\": 1 }, \"requestId\": \"8c700b9e-62d4-11e9-a923-1681be663d3e\", \"requestTimestamp\": { \"epochMillis\": \"1502545413026\" }, \"paymentIntegratorAccountId\": \"InvisiCashUSA_USD\" }, \"authenticationRequestId\": \"Y382JCD7FK5U1356168QNAJHBTDGADAGGD\", \"result\": { \"success\": {} } } An example response looks like: { \"responseHeader\": { \"responseTimestamp\": { \"epochMillis\": \"1502545413098\" } }, \"result\": { \"success\": {} } } ",
        "parameters": [
          {
            "name": "body",
            "description": "The request body.",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/AuthenticationResultNotificationRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "schema": {
              "$ref": "#/definitions/AuthenticationResultNotificationResponse"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "RemittanceStatementDetailsRequest": {
      "description": "Request object for the remittance statement detail method.",
      "type": "object",
      "properties": {
        "requestHeader": {
          "description": "**REQUIRED**: Common header for all requests.",
          "$ref": "#/definitions/RequestHeader"
        },
        "statementId": {
          "description": "**REQUIRED**: Request ID of the statement notification.",
          "type": "string"
        },
        "eventOffset": {
          "description": "**OPTIONAL**: Return events starting at this offset. This should be set to the `nextEventOffset` if one was returned or left unspecified if this is the first request. If `eventOffset` is zero, events will be returned starting with the first event. If this is two, events will be returned starting with the third event. If unspecified, `eventOffset` will be assumed to be zero. *Note:* If `eventOffset` exceeds the total number of events (i.e. `eventOffset` >= `remittanceStatementSummary.totalEvents`) then no events will be returned. ",
          "type": "integer",
          "format": "int32"
        },
        "numberOfEvents": {
          "description": "**OPTIONAL**: Number of events to show per page. If unspecified or greater than 1000, this will be 1000.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "RequestHeader": {
      "description": "Header object that is defined on all requests sent to the server.",
      "type": "object",
      "properties": {
        "requestId": {
          "description": "**REQUIRED**: Unique identifier of this request. This is a string that has a max length of 100 characters, and contains only the characters \"a-z\", \"A-Z\", \"0-9\", \":\", \"-\", and \"_\".",
          "type": "string"
        },
        "requestTimestamp": {
          "description": "**REQUIRED**: Timestamp of this request. The receiver must verify that this timestamp is \u00B1 60s of 'now', and reject the request if it is not. This request timestamp is not idempotent upon retries.",
          "$ref": "#/definitions/Timestamp"
        },
        "protocolVersion": {
          "description": "**REQUIRED**: The version of this request.",
          "$ref": "#/definitions/Version"
        },
        "paymentIntegratorAccountId": {
          "description": "**REQUIRED**: Identifies a unique account with contractual constraints.",
          "type": "string"
        }
      }
    },
    "Timestamp": {
      "description": "A timestamp object representing a point on the ISO timeline in milliseconds since the Unix epoch.",
      "type": "object",
      "properties": {
        "epochMillis": {
          "description": "**REQUIRED**: Milliseconds since the Unix epoch",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "Version": {
      "description": "Version object contains the major version of the API. Versions of the same major version are guaranteed to be compatible. The integrator must support all requests for the same major version.",
      "type": "object",
      "properties": {
        "major": {
          "description": "**REQUIRED**: Major version. This is marked for compatibility requests with different versions are not guaranteed to be compatible.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "RemittanceStatementDetailsResponse": {
      "description": "Response object for the remittance statement detail method.",
      "type": "object",
      "properties": {
        "responseHeader": {
          "description": "**REQUIRED**: Common header for all responses.",
          "$ref": "#/definitions/ResponseHeader"
        },
        "eventOffset": {
          "description": "**REQUIRED**: The event offset of this response.",
          "type": "integer",
          "format": "int32"
        },
        "nextEventOffset": {
          "description": "**OPTIONAL**: The offset of the next event to return. If unspecified there are no more events to retrieve for this statement.",
          "type": "integer",
          "format": "int32"
        },
        "remittanceStatementSummary": {
          "description": "**REQUIRED**: Summary of this remittance statement.",
          "$ref": "#/definitions/RemittanceStatementSummary"
        },
        "issuerSummaries": {
          "description": "**REQUIRED**: Summaries of the events in this statement, categorized by issuer. *Note:* this is a set, it has no defined order. ",
          "type": "array",
          "items": {
            "$ref": "#/definitions/RemittanceStatementDetailsResponseIssuerSummary"
          }
        },
        "captureEvents": {
          "description": "**REQUIRED**: Set of capture events. *Note:* this is a set, it has no defined order. ",
          "type": "array",
          "items": {
            "$ref": "#/definitions/RemittanceStatementDetailsResponseEvent"
          }
        },
        "refundEvents": {
          "description": "**REQUIRED**: Set of refund events. *Note:* this is a set, it has no defined order. ",
          "type": "array",
          "items": {
            "$ref": "#/definitions/RemittanceStatementDetailsResponseEvent"
          }
        },
        "adjustmentEvents": {
          "description": "**OPTIONAL**: Set of adjustment events. Adjustment events may be added at Google's discretion to reconcile billing discrepancies, for example if fees were undercomputed for a set of prior transactions, an adjustment may be used to make the integrator whole. *Note:* this is a set, it has no defined order. ",
          "type": "array",
          "items": {
            "$ref": "#/definitions/RemittanceStatementDetailsResponseAdjustmentEvent"
          }
        }
      }
    },
    "ResponseHeader": {
      "description": "Header object that is defined on all responses sent from the server.",
      "type": "object",
      "properties": {
        "responseTimestamp": {
          "description": "**REQUIRED**: Timestamp of this response. The receiver must verify that this timestamp is \u00B1 60s of 'now', and reject the response if it is not.",
          "$ref": "#/definitions/Timestamp"
        }
      }
    },
    "RemittanceStatementSummary": {
      "description": "Summary object about a remittance statement.",
      "type": "object",
      "properties": {
        "statementDate": {
          "description": "**REQUIRED**: Date (in America\/Los Angeles) that this statement was created.",
          "$ref": "#/definitions/Timestamp"
        },
        "billingPeriod": {
          "description": "**REQUIRED**: The billing period this statement covers.",
          "$ref": "#/definitions/BillingPeriod"
        },
        "dateDue": {
          "description": "**OPTIONAL**: The date that the remittance is due. This is represented as a Timestamp. It is a date (and therefore will always start at the first millisecond of the day in the billing timezone). This is set as long as the `totalDueByIntegrator` is greater than 0.",
          "$ref": "#/definitions/Timestamp"
        },
        "totalDueByIntegrator": {
          "description": "**REQUIRED**: This value is always positive.",
          "$ref": "#/definitions/Amount"
        },
        "totalEvents": {
          "description": "**REQUIRED**: Total number of events in this statement.",
          "type": "integer",
          "format": "int32"
        },
        "totalProcessedAmount": {
          "description": "**TO_BE_REQUIRED**: This value is the sum of all the event charges in this statement.",
          "$ref": "#/definitions/Amount"
        },
        "totalDirectTaxAmount": {
          "description": "**OPTIONAL**: This value is the sum of all direct taxes applied to all events in this statement. This value is populated for integrators on a contractual basis.",
          "$ref": "#/definitions/Amount"
        },
        "totalFeesAmount": {
          "description": "**TO_BE_REQUIRED**: This value is the sum of all fees applied for all events in this statement.",
          "$ref": "#/definitions/Amount"
        },
        "totalWithholdingTaxAmount": {
          "description": "**OPTIONAL**: This value is the total withholding tax applied for this statement. This value is populated for integrators on a contractual basis.",
          "$ref": "#/definitions/Amount"
        },
        "totalPresentmentAmounts": {
          "description": "**REQUIRED**: These are the total amounts presented to the customer. There will be one entry for each presentment currency.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/Amount"
          }
        }
      }
    },
    "BillingPeriod": {
      "description": "Billing period of this statement.",
      "type": "object",
      "properties": {
        "startDate": {
          "description": "**REQUIRED**: The start date of the billing period. This is represented as a Timestamp. It is a date (and therefore will always start at the first millisecond of the day in the billing timezone). This is the first millisecond of the day of the billing period, 00:00:00.000",
          "$ref": "#/definitions/Timestamp"
        },
        "endDate": {
          "description": "**REQUIRED**: The end date of the billing period. This is represented as a Timestamp. This is the last millisecond of the last day of the billing period, 23:59:59.999",
          "$ref": "#/definitions/Timestamp"
        }
      }
    },
    "Amount": {
      "description": "Associates an amount in micros with a currency code.",
      "type": "object",
      "properties": {
        "amountMicros": {
          "description": "**REQUIRED**: An amount in [micros]({{glossary_path}}#micros \"What are micros?\").",
          "type": "string",
          "format": "int64"
        },
        "currencyCode": {
          "description": "**REQUIRED**: ISO 4217 3-letter currency code",
          "type": "string"
        }
      }
    },
    "RemittanceStatementDetailsResponseIssuerSummary": {
      "description": "A summary of the events in this statement pertaining to a particular issuer.",
      "type": "object",
      "properties": {
        "issuerId": {
          "description": "**REQUIRED**: The issuer this summary applies to.",
          "$ref": "#/definitions/IssuerId"
        },
        "totalByIssuer": {
          "description": "**REQUIRED**: The invoiced amount attributed to this issuer in this statement. This value is provided for information only, it should not be remitted separately. Instead the total_due_by_integrator found in the RemittanceStatementSummary should be remitted.",
          "$ref": "#/definitions/Amount"
        },
        "captureSummaries": {
          "description": "**OPTIONAL**: Summaries of all capture events that occurred during this statement period, classified by RevshareCategory.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/RemittanceStatementDetailsResponseRevshareCategorySummary"
          }
        },
        "refundSummaries": {
          "description": "**OPTIONAL**: Summaries of all refund events that occurred during this statement period, classified by RevshareCategory.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/RemittanceStatementDetailsResponseRevshareCategorySummary"
          }
        }
      }
    },
    "IssuerId": {
      "description": "A unique identifier for an issuer of user accounts.",
      "type": "object",
      "properties": {
        "value": {
          "description": "**REQUIRED**: The string value of the identifier. This unique identifier is defined by Google. Google will share a list with the identifiers for all external issuers available through the payment integrator.",
          "type": "string"
        }
      }
    },
    "RemittanceStatementDetailsResponseRevshareCategorySummary": {
      "description": "A summary of transaction events pertaining to a particular revshare category.",
      "type": "object",
      "properties": {
        "revshareCategory": {
          "description": "**REQUIRED**: The revshare category applied to all events in this summary.",
          "type": "string",
          "enum": [
            "REVSHARE_CATEGORY_UNSPECIFIED",
            "APP",
            "APP_SUBSCRIPTION",
            "CONTENT",
            "SPECIAL_APP"
          ]
        },
        "totalCharges": {
          "description": "**REQUIRED**: The sum of all event charges for this revshare category.",
          "$ref": "#/definitions/Amount"
        },
        "totalItemPrice": {
          "description": "**REQUIRED**: The sum of all item prices purchased in this revshare category.",
          "$ref": "#/definitions/Amount"
        },
        "totalFees": {
          "description": "**REQUIRED**: The sum of all fees for this revshare category.",
          "$ref": "#/definitions/Amount"
        },
        "totalDirectTaxes": {
          "description": "**REQUIRED**: The sum of all direct taxes, e.g. sales tax, charged for this revshare category.",
          "$ref": "#/definitions/Amount"
        },
        "totalWithholdingTaxes": {
          "description": "**REQUIRED**: The sum of all taxes withheld for this revshare category.",
          "$ref": "#/definitions/Amount"
        }
      }
    },
    "RemittanceStatementDetailsResponseEvent": {
      "description": "Structure representing a single event included in a remittance statement.",
      "type": "object",
      "properties": {
        "eventRequestId": {
          "description": "**REQUIRED**: For capture or refund events, this will be the `requestId` that Google sends with the request. For reverse refund, chargeback and reverse chargeback events, this will be the `requestId` that the Payment Integrator sends with the notification of that event.",
          "type": "string"
        },
        "revshareCategory": {
          "description": "**REQUIRED**: The revshare category applied to this Event.",
          "type": "string",
          "enum": [
            "REVSHARE_CATEGORY_UNSPECIFIED",
            "APP",
            "APP_SUBSCRIPTION",
            "CONTENT",
            "SPECIAL_APP"
          ]
        },
        "issuerId": {
          "description": "**REQUIRED**: The issuer this event applies to.",
          "$ref": "#/definitions/IssuerId"
        },
        "eventDetail": {
          "description": "Detailed information about this event, including fees",
          "$ref": "#/definitions/RemittanceStatementDetailsResponseEventDetail"
        },
        "eventSummary": {
          "description": "Information about this event, excluding fees",
          "$ref": "#/definitions/RemittanceStatementDetailsResponseEventSummary"
        }
      }
    },
    "RemittanceStatementDetailsResponseEventDetail": {
      "type": "object",
      "properties": {
        "eventCharge": {
          "description": "**REQUIRED**: If this value is negative then this represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google. For example, capture transactions will always be positive, and refund transactions will always be negative.",
          "$ref": "#/definitions/Amount"
        },
        "eventTax": {
          "description": "**REQUIRED**: If this value is negative then this represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google. This value is the tax applied directly to this event, e.g. sales tax.",
          "$ref": "#/definitions/Amount"
        },
        "eventFee": {
          "description": "**REQUIRED**: If this value is negative then this represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google. For example, if an agreement says that Google will pay 1% of the `transactionCharge` to the payment integrator, and will reverse that 1% upon refund of that transaction, then the capture fee will be negative and upon refund the refund fee will be positive.",
          "$ref": "#/definitions/Amount"
        },
        "presentmentChargeAmount": {
          "description": "**REQUIRED**: Transaction amount in the presentment (aka transaction) currency prior to foreign exchange. This field follows the same sign convention as the `eventCharge` field.",
          "$ref": "#/definitions/Amount"
        },
        "nanoExchangeRate": {
          "description": "**REQUIRED**: The exchange rate used in converting the presentment amount to the settlement (invoice) amount. This value is in *nano* basis points (1 basis point = .0001 = .01%). That is, to get the exchange rate, divide this field by 10^13.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "RemittanceStatementDetailsResponseEventSummary": {
      "description": "Information about this event.",
      "type": "object",
      "properties": {
        "eventCharge": {
          "description": "**REQUIRED**: If this value is negative then this represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google. For example, capture transactions will always be positive, and refund transactions will always be negative.",
          "$ref": "#/definitions/Amount"
        },
        "eventTax": {
          "description": "**REQUIRED**: If this value is negative then this represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google. This value is the tax applied directly to this event, e.g. sales tax.",
          "$ref": "#/definitions/Amount"
        },
        "presentmentChargeAmount": {
          "description": "**REQUIRED**: Transaction amount in the presentment (aka transaction) currency prior to foreign exchange. This field follows the same sign convention as the `eventCharge` field.",
          "$ref": "#/definitions/Amount"
        },
        "nanoExchangeRate": {
          "description": "**REQUIRED**: The exchange rate used in converting the presentment amount to the settlement (invoice) amount. This value is in *nano* basis points (1 basis point = .0001 = .01%). That is, to get the exchange rate, divide this field by 10^13.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "RemittanceStatementDetailsResponseAdjustmentEvent": {
      "description": "Information about an adjustment event.",
      "type": "object",
      "properties": {
        "adjustmentId": {
          "description": "**REQUIRED**: A unique ID assigned by Google to this adjustment event.",
          "type": "string"
        },
        "adjustmentAmount": {
          "description": "**REQUIRED**: If this value is negative then this represents monetary value moving from Google to the payment integrator. If this is positive it is money from the payment integrator due to Google.",
          "$ref": "#/definitions/Amount"
        },
        "adjustmentDescription": {
          "description": "**REQUIRED**: A human readable description of the reason this adjustment was created.",
          "type": "string"
        }
      }
    },
    "ErrorResponse": {
      "description": "Error Response object for all methods.",
      "type": "object",
      "properties": {
        "responseHeader": {
          "description": "**REQUIRED**: Common header for all responses.",
          "$ref": "#/definitions/ResponseHeader"
        },
        "errorDescription": {
          "description": "**OPTIONAL**: Provide a description of this status for support reps to debug errors. Note that this is never shown to users. It can contain descriptive, non-sensitive text used for debugging. Note that some values for errorResponseCode should be accompanied by additional detail in this field. Warning: Do not include any tokens in this message unless they are defined as public.",
          "type": "string"
        },
        "paymentIntegratorErrorIdentifier": {
          "description": "**OPTIONAL**: This identifier is specific to the integrator and is generated by the integrator. It is used for debugging purposes only in order to identify this call. This is the identifier that the integrator knows this call by.",
          "type": "string"
        },
        "errorResponseResult": {
          "description": "**OPTIONAL**: A code that captures the type of error that occurred.",
          "$ref": "#/definitions/ErrorResponseErrorResponseResult"
        }
      }
    },
    "ErrorResponseErrorResponseResult": {
      "description": "Error Codes",
      "type": "object",
      "properties": {
        "invalidApiVersion": {
          "description": "Used if the request's API version is unsupported. Advised HTTP Code: 400",
          "$ref": "#/definitions/ErrorResponseInvalidApiVersion"
        },
        "invalidPayloadSignature": {
          "description": "Used if the signature of the payload is to an unknown or inactive key. Advised HTTP Code: 401",
          "$ref": "#/definitions/ErrorResponseInvalidPayloadSignature"
        },
        "invalidPayloadEncryption": {
          "description": "Used if the encryption of the payload is to an unknown or inactive key. Advised HTTP Code: 400",
          "$ref": "#/definitions/ErrorResponseInvalidPayloadEncryption"
        },
        "requestTimestampOutOfRange": {
          "description": "Used if the request_timestamp is not \u00B1 60s of now. Advised HTTP Code: 400",
          "$ref": "#/definitions/ErrorResponseRequestTimestampOutOfRange"
        },
        "invalidIdentifier": {
          "description": "Used if an identifier sent in the request was invalid or unknown. This may include PIAID, captureRequestId, Google Payment Token, etc. Advised HTTP Code: 404",
          "$ref": "#/definitions/ErrorResponseInvalidIdentifier"
        },
        "idempotencyViolation": {
          "description": "Used if the request violates the idempotency requirements for the request. Advised HTTP Code: 412",
          "$ref": "#/definitions/ErrorResponseIdempotencyViolation"
        },
        "invalidFieldValue": {
          "description": "Used if the request contains a value for a field that isn't in the set of supported values. Advised HTTP Code: 400",
          "$ref": "#/definitions/ErrorResponseInvalidFieldValue"
        },
        "missingRequiredField": {
          "description": "Used if a field that is required is unset in the request. Advised HTTP Code: 400",
          "$ref": "#/definitions/ErrorResponseMissingRequiredField"
        },
        "preconditionViolation": {
          "description": "Used if a constraint on the operation is violated (e.g. when a request for a refund amount exceeds the amount remaining on the transaction). Advised HTTP Code: 400",
          "$ref": "#/definitions/ErrorResponsePreconditionViolation"
        },
        "userActionInProgress": {
          "description": "Used if the request cannot be processed at this time because it would interrupt an in-process user action which effectively acts as a system lock. This code must *not* be used to indicate failures due to implementation-specific internal concurrency errors. Advised HTTP Code: 423",
          "$ref": "#/definitions/ErrorResponseUserActionInProgress"
        },
        "invalidDecryptedRequest": {
          "description": "Used if the request payload could be decrypted, but the resulting message could not be parsed. Advised HTTP Code: 400",
          "$ref": "#/definitions/ErrorResponseInvalidDecryptedRequest"
        },
        "forbidden": {
          "description": "Access to the requested resource is forbidden. Advised Http Code: 403",
          "$ref": "#/definitions/ErrorResponseForbidden"
        }
      }
    },
    "ErrorResponseInvalidApiVersion": {
      "description": "Used if the request's API version is unsupported.",
      "type": "object",
      "properties": {
        "requestVersion": {
          "description": "**REQUIRED**: The invalid version that was specified on the request.",
          "$ref": "#/definitions/Version"
        },
        "expectedVersion": {
          "description": "**REQUIRED**: The expected version.",
          "$ref": "#/definitions/Version"
        }
      }
    },
    "ErrorResponseInvalidPayloadSignature": {
      "description": "This message is intentionally empty right now. New fields could be added in the future.",
      "type": "object",
      "properties": {
      }
    },
    "ErrorResponseInvalidPayloadEncryption": {
      "description": "This message is intentionally empty right now. New fields could be added in the future.",
      "type": "object",
      "properties": {
      }
    },
    "ErrorResponseRequestTimestampOutOfRange": {
      "description": "Used if the request_timestamp is not \u00B1 60s of now.",
      "type": "object",
      "properties": {
        "requestTimestamp": {
          "description": "**REQUIRED**: The timestamp provided in the request",
          "$ref": "#/definitions/Timestamp"
        },
        "serverTimestampAtReceipt": {
          "description": "**REQUIRED**: The server time at receipt, used for comparison",
          "$ref": "#/definitions/Timestamp"
        }
      }
    },
    "ErrorResponseInvalidIdentifier": {
      "description": "Used if an identifier sent in the request was invalid or unknown. This may include PIAID, captureRequestId, Google Payment Token, etc.",
      "type": "object",
      "properties": {
        "invalidIdentifierType": {
          "description": "**REQUIRED**: The type of identifier that was invalid, e.g. PIAID, captureRequestId, etc.",
          "type": "string"
        }
      }
    },
    "ErrorResponseIdempotencyViolation": {
      "description": "This message is intentionally empty right now. New fields could be added in the future.",
      "type": "object",
      "properties": {
      }
    },
    "ErrorResponseInvalidFieldValue": {
      "description": "Used if the request contains a value for a field that isn't in the set of supported values.",
      "type": "object",
      "properties": {
        "invalidFieldName": {
          "description": "**REQUIRED**: The name of the field that was found to be invalid.",
          "type": "string"
        }
      }
    },
    "ErrorResponseMissingRequiredField": {
      "description": "Used if a field that is required is unset in the request.",
      "type": "object",
      "properties": {
        "missingFieldNames": {
          "description": "**REQUIRED**: The names of the missing fields.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ErrorResponsePreconditionViolation": {
      "description": "This message is intentionally empty right now. New fields could be added in the future.",
      "type": "object",
      "properties": {
      }
    },
    "ErrorResponseUserActionInProgress": {
      "description": "This message is intentionally empty right now. New fields could be added in the future.",
      "type": "object",
      "properties": {
      }
    },
    "ErrorResponseInvalidDecryptedRequest": {
      "description": "This message is intentionally empty right now. New fields could be added in the future.",
      "type": "object",
      "properties": {
      }
    },
    "ErrorResponseForbidden": {
      "description": "This message is intentionally empty right now. New fields could be added in the future.",
      "type": "object",
      "properties": {
      }
    },
    "AcceptRemittanceStatementRequest": {
      "description": "Request object for the `acceptRemittanceStatement` method.",
      "type": "object",
      "properties": {
        "requestHeader": {
          "description": "**REQUIRED**: Common header for all requests.",
          "$ref": "#/definitions/RequestHeader"
        },
        "statementId": {
          "description": "**REQUIRED**: Request ID of the statement notification.",
          "type": "string"
        }
      }
    },
    "AcceptRemittanceStatementResponse": {
      "description": "Response object for the `acceptRemittanceStatement` method.",
      "type": "object",
      "properties": {
        "responseHeader": {
          "description": "**REQUIRED**: Common header for all responses.",
          "$ref": "#/definitions/ResponseHeader"
        },
        "result": {
          "description": "**REQUIRED**: Result of the AcceptRemittanceStatement call.",
          "$ref": "#/definitions/AcceptRemittanceStatementResponseAcceptRemittanceStatementResult"
        }
      }
    },
    "AcceptRemittanceStatementResponseAcceptRemittanceStatementResult": {
      "description": "Result codes for the `acceptRemittanceStatement` method.",
      "type": "object",
      "properties": {
        "success": {
          "description": "Remittance statement accepted successfully",
          "$ref": "#/definitions/Empty"
        }
      }
    },
    "Empty": {
      "description": " This object is used for extensibility because booleans and enumerations often need to be extended with extra data. The implementer uses it to determine presence. The enumeration this represents may be extended to contain data in future versions. The JSON representation for `Empty` is empty JSON object `{}`.",
      "type": "object",
      "properties": {
      }
    },
    "EchoRequest": {
      "description": "Request object for the echo method.",
      "type": "object",
      "properties": {
        "requestHeader": {
          "description": "**REQUIRED**: Common header for all requests.",
          "$ref": "#/definitions/RequestHeader"
        },
        "clientMessage": {
          "description": "**REQUIRED**: Message to echo in the response.",
          "type": "string"
        }
      }
    },
    "EchoResponse": {
      "description": "Response object for the echo method.",
      "type": "object",
      "properties": {
        "responseHeader": {
          "description": "**REQUIRED**: Common header for all responses.",
          "$ref": "#/definitions/ResponseHeader"
        },
        "clientMessage": {
          "description": "**REQUIRED**: Message received in the request.",
          "type": "string"
        },
        "serverMessage": {
          "description": "**OPTIONAL**: Server message, independent of the `clientMessage` being echoed.",
          "type": "string"
        }
      }
    },
    "GetDisputeInquiryReportRequest": {
      "description": "Request payload for the `getDisputeInquiryReport` method.",
      "type": "object",
      "properties": {
        "requestHeader": {
          "description": "**REQUIRED**: Common header for all requests.",
          "$ref": "#/definitions/RequestHeader"
        },
        "paymentLookupCriteria": {
          "description": "**REQUIRED**: Criteria indicating the payment that is to be looked up for this inquiry.",
          "$ref": "#/definitions/PaymentLookupCriteria"
        },
        "existingGoogleClaimId": {
          "description": "**OPTIONAL**: A Google-generated string returned by a previous call to `getDisputeInquiryReport` that uniquely identifies this customer dispute claim. If this is not present, a new claim ID will be generated. The caller may provide a `googleClaimId` that was returned by a previous call to `getDisputeInquiryReport` if it is a continuation of the same customer dispute. The claim ID that is populated here or generated will be returned in the response's `googleClaimId` field. It is not valid to provide a `googleClaimId` that wasn't returned by a previous call to `getDisputeInquiryReport`. If this occurs, HTTP 400 Bad Request will be returned.",
          "type": "string"
        },
        "requestOriginator": {
          "description": "**REQUIRED**: Information about the organization or organizational sub-group that originated this request.",
          "$ref": "#/definitions/RequestOriginator"
        }
      }
    },
    "PaymentLookupCriteria": {
      "description": "Container for criteria that can uniquely lookup a payment. One (and only one) member field must be populated.",
      "type": "object",
      "properties": {
        "arnCriteria": {
          "description": "Lookup based on Acquirer Reference Number (ARN).",
          "$ref": "#/definitions/PaymentLookupCriteriaArnCriteria"
        },
        "googleTransactionReferenceNumberCriteria": {
          "description": "Lookup based on the Google Transaction Reference Number.",
          "$ref": "#/definitions/PaymentLookupCriteriaGoogleTransactionReferenceNumberCriteria"
        },
        "captureRequestCriteria": {
          "description": "Lookup based on the original capture request.",
          "$ref": "#/definitions/PaymentLookupCriteriaCaptureRequestCriteria"
        }
      }
    },
    "PaymentLookupCriteriaArnCriteria": {
      "description": "Payment lookup criteria based on Acquirer Reference Number (ARN).",
      "type": "object",
      "properties": {
        "acquirerReferenceNumber": {
          "description": "**REQUIRED**: The Acquirer Reference Number (ARN) that uniquely identifies the payment. Must be 23 digits long.",
          "type": "string"
        },
        "authorizationCode": {
          "description": "**REQUIRED**: The Authorization Code for the transaction.",
          "type": "string"
        }
      }
    },
    "PaymentLookupCriteriaGoogleTransactionReferenceNumberCriteria": {
      "description": "Payment lookup criteria based on the Google-generated Transaction Reference Number.",
      "type": "object",
      "properties": {
        "googleTransactionReferenceNumber": {
          "description": "**REQUIRED**: The Google-generated Transaction Reference Number that uniquely identifies the payment.",
          "type": "string"
        },
        "authorizationCode": {
          "description": "**REQUIRED**: The Authorization Code for the transaction.",
          "type": "string"
        }
      }
    },
    "PaymentLookupCriteriaCaptureRequestCriteria": {
      "description": "Payment lookup criteria based on the original capture request.",
      "type": "object",
      "properties": {
        "captureRequestId": {
          "description": "**REQUIRED**: A unique identifier for this transaction. This is the `requestId` generated by Google during the `capture` call which is being looked up.",
          "type": "string"
        }
      }
    },
    "RequestOriginator": {
      "description": "Information about the organization or organizational sub-group, and optionally the employee, from which this request originated. This allows Google to identify issues or abuse and implement controls at a finer-grained level than the `paymentIntegratorAccountId`. It is especially valuable when the called is an intermediary service provider that sources request from multiple external clients.",
      "type": "object",
      "properties": {
        "organizationId": {
          "description": "**REQUIRED**: An identifier of the company, organization, or organizational group from which this request originated. Must be unique within this `paymentIntegratorAccountId`.",
          "type": "string"
        },
        "organizationDescription": {
          "description": "**REQUIRED**: A human-readable name or description of the organization that can be used to ease communication between employees of Google and the integrator regarding that organization.",
          "type": "string"
        },
        "agentId": {
          "description": "**OPTIONAL**: A unique identifier for the specific agent (employee) of the organization identified by `organizationId` from whom this request originated. Must be unique within this `organizationId`.",
          "type": "string"
        }
      }
    },
    "GetDisputeInquiryReportResponse": {
      "description": "Response payload for the `getDisputeInquiryReport` method.",
      "type": "object",
      "properties": {
        "responseHeader": {
          "description": "**REQUIRED**: Common header for all responses.",
          "$ref": "#/definitions/ResponseHeader"
        },
        "result": {
          "description": "**REQUIRED**: Result of this call.",
          "$ref": "#/definitions/GetDisputeInquiryReportResponseGetDisputeInquiryReportResult"
        }
      }
    },
    "GetDisputeInquiryReportResponseGetDisputeInquiryReportResult": {
      "description": "Result codes for the `getDisputeInquiryReport` method.",
      "type": "object",
      "properties": {
        "success": {
          "description": "The payment was found and a report is provided.",
          "$ref": "#/definitions/GetDisputeInquiryReportResponseGetDisputeInquiryReportResultSuccessDetails"
        },
        "paymentNotFound": {
          "description": "The requested payment was not found.",
          "$ref": "#/definitions/Empty"
        },
        "paymentTooOld": {
          "description": "The requested payment was found, but a report was not provided due to the age of the payment.",
          "$ref": "#/definitions/Empty"
        },
        "orderCannotBeReturned": {
          "description": "The requested payment belongs to an order that exists, but cannot be returned. Reasons include cases where the order was removed at the request of its owner. *Note:* this is a permanent state.",
          "$ref": "#/definitions/Empty"
        },
        "noAdditionalDetails": {
          "description": "The requested payment was found, but a report is not available.",
          "$ref": "#/definitions/Empty"
        }
      }
    },
    "GetDisputeInquiryReportResponseGetDisputeInquiryReportResultSuccessDetails": {
      "description": "The payment was found and a report is provided.",
      "type": "object",
      "properties": {
        "googleClaimId": {
          "description": "**REQUIRED**: A Google-generated string that uniquely identifies this customer dispute. If `existingGoogleClaimId` was populated in the request, this will be the same value. Otherwise, it will be a newly generated value. This value can be provided in future `getDisputeInquiryReport` requests if they are part of the same customer dispute.",
          "type": "string"
        },
        "report": {
          "description": "**REQUIRED**: Details relevant to the dispute of the payment identified in the request.",
          "$ref": "#/definitions/PurchaseReport"
        }
      }
    },
    "PurchaseReport": {
      "description": "A report containing relevant details of the purchase associated with the requested payment.",
      "type": "object",
      "properties": {
        "customerAccount": {
          "description": "**REQUIRED**: Information regarding the customer and their account.",
          "$ref": "#/definitions/PurchaseReportCustomerAccount"
        },
        "order": {
          "description": "**OPTIONAL**: Information regarding the order on which the payment was made. Not available for all purchase reports.",
          "$ref": "#/definitions/PurchaseReportOrder"
        },
        "payment": {
          "description": "**REQUIRED**: Information regarding the payment. Note: Multiple payments are possible on a single order, but this will only contain info for the payment that was identified in the original request.",
          "$ref": "#/definitions/PurchaseReportPayment"
        }
      }
    },
    "PurchaseReportCustomerAccount": {
      "description": "Information about the customer's account.",
      "type": "object",
      "properties": {
        "customerEmail": {
          "description": "**OPTIONAL**: The email address associated with the customer's Google account.",
          "type": "string"
        },
        "customerName": {
          "description": "**REQUIRED**: The customer's name.",
          "type": "string"
        }
      }
    },
    "PurchaseReportOrder": {
      "description": "Information about the order.",
      "type": "object",
      "properties": {
        "timestamp": {
          "description": "**REQUIRED**: Timestamp of when the order was made.",
          "$ref": "#/definitions/Timestamp"
        },
        "orderId": {
          "description": "**OPTIONAL**: A string uniquely identifying this order.",
          "type": "string"
        },
        "subTotalAmount": {
          "description": "**REQUIRED**: Total amount of this order before tax.",
          "$ref": "#/definitions/Amount"
        },
        "totalAmount": {
          "description": "**REQUIRED**: Total amount of this order including tax.",
          "$ref": "#/definitions/Amount"
        },
        "shippingAddress": {
          "description": "**OPTIONAL**: Shipping address for the physical items in this order.",
          "$ref": "#/definitions/Address"
        },
        "items": {
          "description": "**REQUIRED**: List of items that were part of this order.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/PurchaseReportOrderItem"
          }
        },
        "taxes": {
          "description": "**REQUIRED**: List of taxes that were part of this order. This list may be empty.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/PurchaseReportOrderTax"
          }
        }
      }
    },
    "Address": {
      "description": "Structure holding information about a physical address.",
      "type": "object",
      "properties": {
        "addressLine": {
          "description": "**OPTIONAL**: This holds unstructured Address text.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "localityName": {
          "description": "**OPTIONAL**: This is something of a fuzzy term, but it generally refers to the city\/town portion of an address. In regions of the world where localities are not well defined or do not fit into this structure well (for example, Japan and China), leave locality_name empty and use address_line. Examples: US city, IT comune, UK post town.",
          "type": "string"
        },
        "administrativeAreaName": {
          "description": "**OPTIONAL**: Top-level administrative subdivision of this country\" Examples: US state, IT region, CN province, JP prefecture.\"",
          "type": "string"
        },
        "postalCodeNumber": {
          "description": "**OPTIONAL**: Despite the name, postal_code_number values are frequently alphanumeric. Examples: \"94043\", \"SW1W\", \"SW1W 9TQ\".",
          "type": "string"
        },
        "countryCode": {
          "description": "**OPTIONAL**: Customer address country code, expected to be ISO-3166-1 Alpha-2.",
          "type": "string"
        }
      }
    },
    "PurchaseReportOrderItem": {
      "description": "Information about an item in the order.",
      "type": "object",
      "properties": {
        "description": {
          "description": "**OPTIONAL**: A description of the item that was purchased.",
          "type": "string"
        },
        "merchant": {
          "description": "**REQUIRED**: The seller, artist, or maker of the item.",
          "type": "string"
        },
        "quantity": {
          "description": "**OPTIONAL**: The quantity that were ordered of this item. This field will be omitted if integer quantities are not applicable to the product (metered products may have fractional quantities for example).",
          "type": "string",
          "format": "int64"
        },
        "totalPrice": {
          "description": "**OPTIONAL**: The total price of this item.",
          "$ref": "#/definitions/Amount"
        },
        "googleProductName": {
          "description": "**REQUIRED**: Name of the Google product service for the item.",
          "type": "string"
        }
      }
    },
    "PurchaseReportOrderTax": {
      "description": "Information about a tax that applies to this order.",
      "type": "object",
      "properties": {
        "description": {
          "description": "**REQUIRED**: A description of the tax.",
          "type": "string"
        },
        "amount": {
          "description": "**REQUIRED**: The amount of the tax.",
          "$ref": "#/definitions/Amount"
        }
      }
    },
    "PurchaseReportPayment": {
      "description": "Information about the payment.",
      "type": "object",
      "properties": {
        "billingAddress": {
          "description": "**REQUIRED**: Billing address for this payment.",
          "$ref": "#/definitions/Address"
        },
        "amount": {
          "description": "**REQUIRED**: Amount of this payment.",
          "$ref": "#/definitions/Amount"
        },
        "refunds": {
          "description": "**REQUIRED**: List of refunds made to this payment. This list may be empty.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/PurchaseReportPaymentRefund"
          }
        },
        "cardDetails": {
          "description": "Payment details specific to credit & debit card FoPs.",
          "$ref": "#/definitions/PurchaseReportPaymentPaymentCardDetails"
        }
      }
    },
    "PurchaseReportPaymentRefund": {
      "description": "Information about a refund made on a payment.",
      "type": "object",
      "properties": {
        "amount": {
          "description": "**REQUIRED**: The amount refunded.",
          "$ref": "#/definitions/Amount"
        },
        "initiatedTimestamp": {
          "description": "**REQUIRED**: Timestamp of when the refund was initiated.",
          "$ref": "#/definitions/Timestamp"
        }
      }
    },
    "PurchaseReportPaymentPaymentCardDetails": {
      "description": "Payment details specific to credit & debit cards.",
      "type": "object",
      "properties": {
        "authResult": {
          "description": "**REQUIRED**: Result of payment auth.",
          "type": "string",
          "enum": [
            "UNKNOWN_RESULT",
            "APPROVED",
            "DENIED",
            "NOT_ATTEMPTED"
          ]
        }
      }
    },
    "FraudNotificationRequest": {
      "description": "Request object for the Google hosted FraudNotification method.",
      "type": "object",
      "properties": {
        "requestHeader": {
          "description": "**REQUIRED**: Common header for all requests.",
          "$ref": "#/definitions/RequestHeader"
        },
        "captureRequestId": {
          "description": "**REQUIRED**: A unique identifier for the capture the potential fraud is associated with. This is the `requestId` generated by Google during the `captureFundsReservation` or `capture` for the original request.",
          "type": "string"
        },
        "fraudType": {
          "description": "**REQUIRED**: This is the type of fraud that may have occurred.",
          "type": "string",
          "enum": [
            "UNKNOWN_TYPE",
            "FRAUDULENT_USE",
            "COUNTERFEIT",
            "LOST",
            "STOLEN",
            "ACCOUNT_TAKEOVER",
            "FRAUDULENT_APPLICATION",
            "CARD_NOT_RECEIVED",
            "OTHER",
            "SCAM",
            "MERCHANT_FRAUD"
          ]
        },
        "rawResult": {
          "description": "**REQUIRED**: Raw result of the fraud notification from the issuer. Used to help inform Google's risk engine and analytics. In fraud code\u2013mapping situations, data is sometimes lost. The integrator can choose to give Google a raw code. For example, a credit card gateway (the integrator) may use this field to communicate to Google the exact fraud code that was received from the VISA network. In that case, the `scope` would be \"visa\" and the `rawCode` would be whatever the VISA network returned.",
          "$ref": "#/definitions/RawResult"
        }
      }
    },
    "RawResult": {
      "description": "Raw result object.",
      "type": "object",
      "properties": {
        "scope": {
          "description": "**OPTIONAL**: Scope of the raw_code, can be empty.",
          "type": "string"
        },
        "rawCode": {
          "description": "**REQUIRED**: Raw code from the integrator or subsystems within it.",
          "type": "string"
        }
      }
    },
    "FraudNotificationResponse": {
      "description": "Response object for the Google hosted FraudNotification method.",
      "type": "object",
      "properties": {
        "responseHeader": {
          "description": "**REQUIRED**: Common header for all responses.",
          "$ref": "#/definitions/ResponseHeader"
        },
        "result": {
          "description": "**REQUIRED**: Result of this call.",
          "$ref": "#/definitions/FraudNotificationResponseFraudNotificationResult"
        }
      }
    },
    "FraudNotificationResponseFraudNotificationResult": {
      "description": "Result codes for the `fraudNotification` method.",
      "type": "object",
      "properties": {
        "success": {
          "description": "Fraud notification was successfully processed.",
          "$ref": "#/definitions/Empty"
        }
      }
    },
    "UpdateAssociatedAccountRequest": {
      "description": "Request object for the updateAssociatedAccount method.",
      "type": "object",
      "properties": {
        "requestHeader": {
          "description": "**REQUIRED**: Common header for all requests.",
          "$ref": "#/definitions/RequestHeader"
        },
        "googlePaymentToken": {
          "description": "**REQUIRED**: This is the token that both companies will use to identify the account to be updated.",
          "$ref": "#/definitions/GooglePaymentToken"
        },
        "updateSequenceTimestamp": {
          "description": "**REQUIRED**: A timestamp describing when this update request was sent. This timestamp is compared to the updateSequenceTimestamp of the current Google record. Updates with an updateSequenceTimestamp older than the current Google record are dropped.",
          "$ref": "#/definitions/Timestamp"
        },
        "accountInfo": {
          "description": "A complete snapshot of the account information.",
          "$ref": "#/definitions/AccountInfo"
        },
        "accountClosureInfo": {
          "description": "Information about the closure of a user account held with the integrator. Returning this value will cause the user\u2019s account to be closed with Google. Closed accounts may not be re-opened via UpdateAssociatedAccount. The user will be forced to add a new account by going through the association flow again.",
          "$ref": "#/definitions/AccountClosureInfo"
        }
      }
    },
    "GooglePaymentToken": {
      "description": "Describes a GooglePaymentToken (GPT), including the token and the issuer of the backing user account.",
      "type": "object",
      "properties": {
        "issuerId": {
          "description": "**REQUIRED**: The identifier of the issuer of the backing user account.",
          "$ref": "#/definitions/IssuerId"
        },
        "token": {
          "description": "**REQUIRED**: This is the token that both companies will use to identify the account for purchases between each other.",
          "type": "string"
        }
      }
    },
    "AccountInfo": {
      "description": "Details about a change to a user's account information.",
      "type": "object",
      "properties": {
        "accountStatus": {
          "description": "**REQUIRED**: The status of the user\u2019s account with the integrator.",
          "type": "string",
          "enum": [
            "ACCOUNT_STATUS_UNSPECIFIED",
            "ACCOUNT_AVAILABLE",
            "ACCOUNT_ON_HOLD"
          ]
        },
        "transactionLimits": {
          "description": "**REQUIRED**: Defines user scoped transaction limits.",
          "$ref": "#/definitions/TransactionLimits"
        },
        "accountIds": {
          "description": "**REQUIRED**: Defines a nickname for the user account.",
          "$ref": "#/definitions/AccountIds"
        }
      }
    },
    "TransactionLimits": {
      "description": "Defines transaction limits for the enclosing entity.",
      "type": "object",
      "properties": {
        "transactionMaxLimit": {
          "description": "**REQUIRED**: Defines the value and currency of a maximum per transaction limit for the enclosing type, or states that no maximum per transaction limit exists.",
          "$ref": "#/definitions/TransactionLimit"
        }
      }
    },
    "TransactionLimit": {
      "description": "Defines a transaction limit amount or the absence of a limit.",
      "type": "object",
      "properties": {
        "limitAmount": {
          "description": "The value of the allowable transaction. This is used to determine whether or not the user should be given this integrator as an option to process a specific transaction. *Note:* that either this value or the `noLimit` can be present, never both.",
          "$ref": "#/definitions/Amount"
        },
        "noLimit": {
          "description": "Indicates that there is no transaction limit. This is used to determine whether or not the user should be given this integrator as an option to process a specific transaction. *Note:* that either this value or the `limitAmount` can be present, never both.",
          "$ref": "#/definitions/Empty"
        }
      }
    },
    "AccountIds": {
      "description": "Identifiers of the user's account.",
      "type": "object",
      "properties": {
        "partialAccountNickname": {
          "description": "String by which the user knows this account for display purposes. This is a suffix of the account nickname. For example last four digits of a phone number. Google will indicate in the user interface that this is only a suffix of the nickname. *Caution:* This value can be PII, but must never be SPII. This value will be displayed in UIs like the purchase flow to allow the user to distinguish between payment methods. *Note:* that either this value or the `fullAccountNickname` must be present, never both.",
          "type": "string"
        },
        "fullAccountNickname": {
          "description": "String by which the user knows this account for display purposes. Unlike `partialAccountNickname` this is the full account nickname. For example `56565-56501` for a phone number or sally@sample-email.com for an email identity. *Caution:* This value can be PII, but must never be SPII. This value will be displayed in UIs like the purchase flow to allow the user to distinguish between payment methods. *Note:* that either this value or the `accountNickname` must be present, never both.",
          "type": "string"
        },
        "accountAlias": {
          "description": "**OPTIONAL**: An additional account alias the user associates with their vendor account. These are used for Google risk to understand account re-use and account relationships and Google customer operation agents to help customers diagnose issues. These aliases should be user recognizable (for example the user knows this alias because it appears on their statement or appears on the website after they log into the account).",
          "$ref": "#/definitions/AccountAlias"
        }
      }
    },
    "AccountAlias": {
      "description": "Defines the type and value of an alias that a user associates with their vendor account.",
      "type": "object",
      "properties": {
        "phoneNumber": {
          "description": "The phone number the user has on file with the integrator.",
          "$ref": "#/definitions/PhoneNumber"
        },
        "emailAddress": {
          "description": "The email address the user has on file with the integrator.",
          "type": "string"
        }
      }
    },
    "PhoneNumber": {
      "description": "An E.164 formatted phone number. Examples include +14035551111 and +918067218000. This will always lead with a + and include only numbers afterwards (no dashes).",
      "type": "object",
      "properties": {
        "value": {
          "description": "**REQUIRED**: This is a E.164 formatted phone number. Examples include +14035551111 and +918067218000. This will always lead with a + and include only numbers afterwards (no dashes).",
          "type": "string"
        }
      }
    },
    "AccountClosureInfo": {
      "description": "Details about the closure of a user's account.",
      "type": "object",
      "properties": {
        "accountTakenOver": {
          "description": "The user\u2019s account held with the integrator has been closed. The integrator suspects the user's account has been taken over.",
          "$ref": "#/definitions/Empty"
        },
        "fraud": {
          "description": "The user\u2019s account held with the integrator has been closed because of fraud.",
          "$ref": "#/definitions/Empty"
        },
        "closedByUser": {
          "description": "The account was closed at the request of the user.",
          "$ref": "#/definitions/Empty"
        }
      }
    },
    "UpdateAssociatedAccountResponse": {
      "description": "Response object for the updateAssociatedAccount method.",
      "type": "object",
      "properties": {
        "responseHeader": {
          "description": "**REQUIRED**: Common header for all responses.",
          "$ref": "#/definitions/ResponseHeader"
        },
        "result": {
          "description": "**REQUIRED**: Contains the result of the request.",
          "$ref": "#/definitions/UpdateAssociatedAccountResponseUpdateAssociatedAccountResult"
        }
      }
    },
    "UpdateAssociatedAccountResponseUpdateAssociatedAccountResult": {
      "description": "Result codes for the account update.",
      "type": "object",
      "properties": {
        "success": {
          "description": "The 'UpdateAssociatedAccountRequest' was received successfully by Google. The account will be updated.",
          "$ref": "#/definitions/Empty"
        },
        "missingAccountAliasType": {
          "description": "A required AccountAlias type is missing",
          "$ref": "#/definitions/UpdateAssociatedAccountResponseUpdateAssociatedAccountResultMissingAccountAliasType"
        }
      }
    },
    "UpdateAssociatedAccountResponseUpdateAssociatedAccountResultMissingAccountAliasType": {
      "description": "Details about a missing AccountAlias type.",
      "type": "object",
      "properties": {
        "missingAccountAliasType": {
          "description": "**REQUIRED**: If a required AccountAlias type was not provided, the field name corresponding to that type will be given here.",
          "type": "string"
        }
      }
    },
    "AuthenticationResultNotificationRequest": {
      "description": "Request object for the `authenticationResultNotification` method.",
      "type": "object",
      "properties": {
        "requestHeader": {
          "description": "**REQUIRED**: Common header for all requests.",
          "$ref": "#/definitions/RequestHeader"
        },
        "authenticationRequestId": {
          "description": "**REQUIRED**: Reflected back to Google by the payment integrator. This is the ID of this particular authentication session. It was originally generated by Google and sent to the payment integrator at the start of the authentication flow.",
          "type": "string"
        },
        "result": {
          "description": "**REQUIRED**: The result of the authentication attempt.",
          "$ref": "#/definitions/AuthenticationResult"
        }
      }
    },
    "AuthenticationResult": {
      "description": "The result of the authentication attempt.",
      "type": "object",
      "properties": {
        "success": {
          "description": "The user was authenticated successfully.",
          "$ref": "#/definitions/Empty"
        },
        "authenticationFailed": {
          "description": "The user was not authenticated and the current flow should be aborted or authentication should be retried.",
          "$ref": "#/definitions/Empty"
        }
      }
    },
    "AuthenticationResultNotificationResponse": {
      "description": "Response object for the `authenticationResultNotification` method.",
      "type": "object",
      "properties": {
        "responseHeader": {
          "description": "**REQUIRED**: Common header for all responses.",
          "$ref": "#/definitions/ResponseHeader"
        },
        "result": {
          "description": "**REQUIRED**: Result of this call.",
          "$ref": "#/definitions/AuthenticationResultNotificationResponseAuthenticationResultNotificationResult"
        }
      }
    },
    "AuthenticationResultNotificationResponseAuthenticationResultNotificationResult": {
      "description": "Result codes for the `authenticationResultNotification` method.",
      "type": "object",
      "properties": {
        "success": {
          "description": "The authentication result was successfully processed.",
          "$ref": "#/definitions/Empty"
        }
      }
    }
  }
}
