Authentication
OAuth 2.0 client_credentials flow — mint tokens, manage
scopes, rotate secrets.
Welcome to the Tilt partner integration docs. Tilt is a payment infrastructure platform. As an integration partner you can:
payment.* eventsAuthentication
OAuth 2.0 client_credentials flow — mint tokens, manage
scopes, rotate secrets.
API reference
Orders, Payments, Refunds, Locations — full request/response schemas.
Webhooks
Register endpoints and receive payment.* events with HMAC
signature verification.
Sandbox
Test cards and sandbox environment — run end-to-end flows without real money.
Get invited to the admin portal
Your Tilt account manager will create a partner record and send you an invitation to admin.dev.apps.myfinterra.com. Accept the invite and sign in as partner_admin.
Provision an API client
In the admin portal, open your partner page and click the Integrations tab. Under API clients, click New client.
my-app-production)payments:create, payments:read, locations:read are the minimum for chargingclient_secret is shown once; copy it nowclient_id: abc123…client_secret: s3cr3t… ← copy this now; it will not be shown againExchange credentials for an access token
curl -s -X POST \ https://tilt-m2m-dev.auth.us-east-1.amazoncognito.com/oauth2/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials" \ -d "client_id=abc123…" \ -d "client_secret=s3cr3t…" \ -d "scope=tilt/payments:create tilt/payments:read tilt/locations:read"Response:
{ "access_token": "eyJraWQi…", "expires_in": 3600, "token_type": "Bearer"}Tokens are valid for 1 hour. Cache them; re-mint when they expire.
Create an order and charge
curl -s -X POST \ https://pos-api.dev.apps.myfinterra.com/pos/v1/orders \ -H "Authorization: Bearer eyJraWQi…" \ -H "Content-Type: application/json" \ -d '{ "location_id": "<your-location-uuid>", "total_cents": 5000, "description": "Fleet service — invoice #INV-001", "external_reference": "INV-001", "customer_name": "Alice Example", "customer_email": "alice@example.com" }'Response includes order_id. Use that to initiate a payment.
View the charge in the admin portal
Open admin.dev.apps.myfinterra.com, navigate to your partner → Transactions. The charge appears immediately.
| Environment | API base | Admin portal | Docs |
|---|---|---|---|
dev | https://pos-api.dev.apps.myfinterra.com | https://admin.dev.apps.myfinterra.com | https://docs.dev.apps.myfinterra.com |
prod | https://pos-api.apps.myfinterra.com | https://admin.apps.myfinterra.com | https://docs.apps.myfinterra.com |
The live API exposes its own OpenAPI and AsyncAPI specs at stable URLs:
GET /pos/v1/.well-known/openapi.json # OpenAPI 3.1GET /pos/v1/.well-known/asyncapi.json # AsyncAPI 2.6 (webhook events)These are unauthenticated. Import them into Postman, Stoplight, or any OpenAPI-compatible code generator.