Overview
This checklist covers everything required to move your integration from sandbox to production. It is designed to be worked through live, on a call with your Push Cash representative, so that any missing information can be supplied in the moment and any blockers resolved before you go live. Please have an engineer with access to your production backend and production cashier domain present. By the time the call wraps, you will have:- Production API key access + IP address restriction for the production API (
api.pushcash.com) - Account identifiers for the accounts you will transact against
- A configured & verified Apple Pay domain for your production cashier (Apple Pay integrations only)
Throughout this guide, production requests are made to
api.pushcash.com. The same API surface is available in sandbox at sandbox.pushcash.com for testing beforehand.Step 1: Production API key & IP allowlisting
Production keys are scoped to your organization and follow the formatpcsk_{env}_{public_id}.{private_key}. Confirm the production segment is present — for example:
POST /keys/verify. The API responds with 200 (OK) and your organization name.
IP address restriction
As an additional layer of security, Push Cash can restrict write requests (POST, PUT, PATCH, DELETE) so they are only accepted from a set of source IP addresses that you specify. This protects your account even if an API key is leaked, since a stolen key cannot move money from an unrecognized network. Read requests (GET, HEAD) are not restricted, so dashboards, monitoring, and reconciliation jobs are unaffected.
IP allowlisting is configured by Push Cash — it is not self-serve. During the call, provide the stable egress IPs of your production backend (the public IPs of your NAT gateways or load balancers, not individual servers that may change). Include every IP your traffic can egress from to avoid intermittent 403 rejections.
Notify Push Cash before changing your network egress (for example, migrating regions or adding a new gateway) so your allowlist can be updated ahead of the cutover.
Step 2: Account identifiers
Account IDs follow the formataccount_WsELzpJOvU6fNafvzWbF6K and are submitted as the account parameter to POST /authorize.
Confirm the production account ID(s) you will transact against, then verify each one by calling GET /account/{id} and checking the name in the response.
You can retrieve all accounts configured for your organization at any time by calling
GET /accounts/list.Step 3: Apple Pay domain verification
This step applies only to integrations using Apple Pay. If your integration does not use Apple Pay, you can skip it. For full details, see the Apple Pay Integration guide.
-
Supply your production domain. Give your Push Cash representative the exact domain your cashier will be served from (for example,
cashier.your-domain.com). -
Receive the domain association file. Over Slack or email, you will receive the
apple-developer-merchantid-domain-association.txtfile generated for that domain. -
Host the file. Place it at:
- Push verifies the domain. Once the file is reachable over HTTPS, your Push Cash counterpart verifies the domain in the Apple developer console. This must be done manually by Push — it is not self-serve.
Go-live checklist
- Production hostname (
api.pushcash.com) is configured and all connections use HTTPS - API key is in the production format (
pcsk_production_...) andPOST /keys/verifyreturns the correct organization - Stable egress IPs supplied to Push Cash and the allowlist is configured
- A write request from an allowlisted IP succeeds (and, optionally, one from an unrecognized IP is rejected with a
403) - Production account ID(s) confirmed and verified via
GET /account/{id} - [Apple Pay only] Production cashier domain supplied to Push Cash
- [Apple Pay only] Domain association file hosted at
/.well-known/apple-developer-merchantid-domain-association.txtand reachable over HTTPS - [Apple Pay only] Push Cash has verified the domain in the Apple developer console