## Step 1: Confirm support for the connectivity and idempotency requirements

It is important to understand and ensure you are able to support the
[transport layer](https://developers.google.com/pay/e-wallets-v1/guides/connectivity/security/transport-layer)
and [application layer](https://developers.google.com/pay/e-wallets-v1/guides/connectivity/security/application-layer)
security requirements as well as the
[protocol standards](https://developers.google.com/pay/e-wallets-v1/guides/connectivity/protocol-standards),
notably those related to
[idempotency](https://developers.google.com/pay/e-wallets-v1/guides/connectivity/protocol-standards#request_idempotency),
prior to integrating.

### Step 2: Work with Google to set up your vendor configuration

Google needs to configure the host(s) and PGP keys to establish communication
with the vendor hosted APIs you implement.

First, you will need to determine the URL for the host(s) on your side
responsible for serving the vendor hosted APIs.
If your implementation is split across multiple hosts (e.g. a 3rd party core or
other service provider), indicate which endpoints are served directly by you
and which are handled on your behalf by a service provider.

Next, if you are hosting any of the vendor hosted APIs, you will need to
[generate the PGP keys](https://developers.google.com/pay/e-wallets-v1/guides/connectivity/security/application-layer#generating_a_new_pgp_key)
that should be used for application layer encryption with your endpoints.

To initiate the vendor configuration and key exchange process, provide the
following to your Google technical point of contact:

- The hostname for the server(s) responsible for serving the vendor hosted APIs.
- the subpath to your API implementation
- The public portion of the PGP key pair you generated

Once Google has set up your vendor configuration, Google will reply with your
[Payment Integrator Account ID (PIAID)](https://developers.google.com/pay/e-wallets-v1/reference/glossary#payment_integrator_account_id)
and Google's public PGP key specific to the endpoints you are hosting.

## Step 3: Establish sandbox echo connectivity

Once you have verified you can meet the integration requirements, have your PGP
keys, and have a [Payment Integrator Account ID (PIAID)](https://developers.google.com/pay/e-wallets-v1/reference/glossary#payment_integrator_account_id)
from Google, you are ready to implement and test the Google hosted `echo` and
vendor hosted `echo` endpoints. Refer to `echo` definitions in the API docs for
the service you are implementing under
[Reference](https://developers.google.com/pay/e-wallets-v1/reference/glossary).

> [!NOTE]
> **Note:** You can test your implementation of `echo` with mock requests using [Amplecash Any API](https://amplecash-6b151.appspot.com/#/integration/v1/apitester). This will allow you to mock Google making a request using fake PGP keys, meaning that this test can happen before [Step 2](https://developers.google.com/pay/e-wallets-v1/guides/implementation-steps#step_2_work_with_google_to_set_up_your_vendor_configuration) is complete.

These scripts use the Google-hosted Sandbox environment echo method to test
baseline connectivity:

- Script using V1 [`echo`](https://developers.google.com/standard-payments/payment-integrator-diagnostic-api/v1/TopLevel/echo): [gsp_sandbox_echo.sh](https://developers.google.com/static/standard-payments/shared/reference/assets/gsp_sandbox_echo.sh)
- Script using V2 [`echo`](https://developers.google.com/standard-payments/payment-integrator-diagnostic-api/v2/TopLevel/echo): [gsp_sandbox_echo_v2.sh](https://developers.google.com/static/standard-payments/shared/reference/assets/gsp_sandbox_echo_v2.sh)

## Step 4: Integrate with the APIs

Once you have the `echo` endpoints working in sandbox, you're ready to
integrate with the rest of our APIs.

Refer to to API docs for the services you are implementing under [Reference](https://developers.google.com/pay/e-wallets-v1/reference/glossary).

## Step 5: Upload your company logos

Follow the [Logo branding guidelines](https://developers.google.com/pay/e-wallets-v1/guides/branding-guidelines).

## Step 6: Testing

During development, you can use our hosted
[Amplecash](https://amplecash-6b151.appspot.com/#/integration/v1/ewallet)
service to mock requests and responses. Once your solution is ready to test a
flow end to end, your Google technical contact can help you perform live tests
from our sandbox environment.

As development wraps up follow the
[testing process](https://developers.google.com/pay/e-wallets-v1/guides/testing-and-launch/testing)
to prepare for launch.

> [!WARNING]
> **Warning:** Your integration cannot be launched until testing is complete.

## Step 7: Launch!

Follow the
[launch process](https://developers.google.com/pay/e-wallets-v1/guides/testing-and-launch/launch-process)
to ensure as smooth a release as possible.