# Method: echo

- [HTTP request](https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/echo#body.HTTP_TEMPLATE)
- [Request body](https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/echo#body.request_body)
  - [JSON representation](https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/echo#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/pay/one-time-payment-code-v1/google-one-time-payment-code-api/echo#body.response_body)

Echos back the `clientMessage` passed in.

The purpose of this method is to test basic connectivity between the payment integrator and Google.

If the echo is successful, the endpoint will return an HTTP 200 and the response will be of type [`EchoResponse`](https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/echo#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`](https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/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`](https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/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`](https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/ErrorResponse).

An example request looks like:


    {
      "requestHeader": {
        "protocolVersion": {
          "major": 1,
          "minor": 0,
          "revision": 0
        },
        "requestId": "ZWNobyB0cmFuc2FjdGlvbg",
        "requestTimestamp": "1481899949606"
      },
      "clientMessage": "client message"
    }

An example response looks like:


    {
      "responseHeader": {
        "responseTimestamp": "1481900013178"
      },
      "clientMessage": "client message",
      "serverMessage": "server message"
    }

### HTTP request

`POST https://vgw.googleapis.com/gsp/one-time-payment-code-v1/echo/https://developers.google.com/pay/one-time-payment-code-v1/reference/glossary#payment_integrator_account_id`

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "requestHeader": { object (https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/RequestHeader) }, "clientMessage": string } ``` |

| Fields ||
|---|---|
| `requestHeader` | `object (https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/RequestHeader)` **REQUIRED**: Common header for all requests. |
| `clientMessage` | `string` **REQUIRED**: Message to echo in the response. |

### Response body

If successful, the response body contains an instance of [ComplexEchoResponse](https://developers.google.com/pay/one-time-payment-code-v1/payment-integrator-one-time-payment-code-api/echo#body.ComplexEchoResponse).