First Steps
Register a Sandbox Account
Get started with Tilled by creating a free sandbox account. Your test account gives you access to the sandbox Partner Console, which is an online dashboard where you can manage your integration.
Your sandbox Partner Console account allows you to:
- Make test payments
- Invite team members
- Generate API keys
- Setup webhooks
Create Secret and Publishable API Keys
Create API keys from our Partner Console to be used in your API calls.
Create or Retrieve a Connected Account
View your list of merchant accounts and either utilize the auto-created demo accounts or create your own merchant account. You may prefix the name of the account with an asterisk (e.g. *ACME Inc.
) to bypass needing to submit an onboarding form.
The demo accounts are Shovel Shop (demo)
and Maple Shop (demo)
, with each demo account using a different currency. For instance:
- Shovel Shop = United Stated Dollar (USD)
- Maple Shop = Canadian Dollar (CAD)
Process Your First Test Payment
Create a Payment Method
When creating payment methods of type=card
, instead of passing card numbers directly, we strongly recommend using Tilled.js. We've created a simple payment example project using Node.js to help integrate Tilled.js.
However, if you'd still like to create a payment method via the API with test card numbers:
1$ curl -X POST https://sandbox-api.tilled.com/v1/payment-methods \
2-H "tilled-api-key: {%raw%}{{SECRET_KEY}}{%endraw%}" \
3-H "tilled-account: {%raw%}{{MERCHANT_ACCOUNT_ID}}{%endraw%}" \
4-H "Content-Type: application/json" \
5-d '{"card":{"number":"4111111111111111","exp_month":8,"exp_year":2026},"billing_details":{"address":{"zip":"80301","country":"US"},"name":"John Doe"},"type":"card"}'
Example response:
1{
2 "card": {
3 "brand": "visa",
4 "last4": "1111",
5 "funding": "credit",
6 "exp_year": 2026,
7 "exp_month": 8,
8 "holder_name": "John Doe"
9 },
10 "chargeable": true,
11 "id": "pm_cUfzDJXONNK9bsm4veVXQ",
12 "type": "card",
13 "expires_at": "2021-11-11T00:00:02.331Z", // 15 minutes after creation
14 "billing_details": {
15 "name": "John Doe",
16 "address": { "zip": "80301", "country": "US" }
17 },
18 ...
19}
Create and Confirm a Payment Intent
1$ curl -X POST https://sandbox-api.tilled.com/v1/payment-intents \
2-H "tilled-api-key: {%raw%}{{SECRET_KEY}}{%endraw%}" \
3-H "tilled-account: {%raw%}{{MERCHANT_ACCOUNT_ID}}{%endraw%}" \
4-H "Content-Type: application/json" \
5-d '{ "amount": 1099, "currency": "usd", "payment_method_types": ["card"], "payment_method_id": "pm_uCFzDJXONNK9bsm4veVXQ", "confirm": true }'
Example response:
1{
2 "id": "pi_JL8QI8hXvkI33177EOKFw",
3 "amount": 1099,
4 "currency": "usd",
5 "status": "succeeded",
6 "payment_method": {
7 ...
8 },
9 "charges": [
10 {
11 "id": "ch_yQ36dzG4Katn8WEzuhTmy",
12 "status": "succeeded",
13 "amount_captured": 1099,
14 "captured_at": "2021-11-11T00:04:07.000Z",
15 ...
16 }
17 ],
18 ...
19}