Pick the right SumUp integration path and apply security best practices. Use when deciding between Hosted Checkout, Card Widget, Checkouts API, mobile SDKs, terminal SDKs, or Cloud API; choosing API key vs OAuth vs restricted keys; or reviewing SumUp integration security.
Installs into .claude/skills of the current project.
Are you the author of Source 39a0a4ddb4dc6b382e9bf289?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/gutsofpratik-source-39a0a4ddb4dc6b382e9bf289)
---
name: sumup-best-practices
description: Pick the right SumUp integration path and apply security best practices. Use when deciding between Hosted Checkout, Card Widget, Checkouts API, mobile SDKs, terminal SDKs, or Cloud API; choosing API key vs OAuth vs restricted keys; or reviewing SumUp integration security.
license: Apache-2.0
---
# SumUp Integration Decisions and Best Practices
Knowledge and APIs can change. Always prefer the latest SumUp docs in markdown format over stale memory.
- Docs root: `https://developer.sumup.com/`
- LLM entrypoint: `https://developer.sumup.com/llms.txt`
Use this skill for architecture and security decisions, not implementation walkthroughs.
## Quick Decision Tree
```text
Need to accept a payment?
├─ In-person (card-present)
│ ├─ Native mobile app controls reader directly -> iOS Terminal SDK / Android Reader SDK
│ ├─ POS/backend controls Solo from non-native environment -> Cloud API
│ └─ Legacy handoff to SumUp app is mandatory -> Payment Switch
└─ Online (card-not-present)
├─ Fastest redirect flow, no embed required -> Hosted Checkout
├─ Embedded payment form with low PCI scope -> Card Widget
├─ Mobile app checkout UX -> Swift Checkout SDK / React Native SDK
├─ Save card and charge later -> Customers + tokenization
└─ Custom orchestration needs -> Checkouts API + 3DS + webhooks
```
## Start Here
1. Classify the request: `terminal`, `online`, or `hybrid`.
2. Choose the lowest-complexity viable path first:
- Prefer Hosted Checkout or Card Widget before custom orchestration.
- Prefer Cloud API for non-native Solo control.
3. Select auth model:
- API key for single-merchant server integrations.
- OAuth 2.0 for delegated or multi-merchant apps.
4. Confirm restricted access and affiliate prerequisites:
- `payments` scope activation where needed.
- Affiliate Key plus app/bundle identifier alignment for card-present.
5. Confirm operational constraints:
- Currency/merchant alignment
- Webhook endpoint readiness and idempotency
- Legacy compatibility requirements
## Non-Negotiable Rules
- Keep API keys and OAuth secrets server-side only.
- Never handle raw PAN/card details directly.
- Create online checkouts server-to-server.
- Prefer hosted/widget/SDK checkout UI over custom card handling.
- Avoid deprecated endpoints.
- Use unique transaction references (`checkout_reference`, `foreignTransactionId`, or equivalent).
- Treat webhook callbacks as signals and verify final state via API before fulfillment.
- Assume retries and duplicate deliveries; enforce idempotent backend handling.
## Required Response Contract
When giving guidance, always return:
1. Chosen integration path with a brief why.
2. Credential model recommendation (API key vs OAuth) and scope requirements.
3. Security posture checklist for the chosen path.
4. Risks/trade-offs and when to pick a different path.
5. Minimum validation plan before production rollout.
## Hand-off to Implementation Skills
- Use `sumup` for end-to-end implementation steps.
- Use `upgrade-sumup` for SDK/API migrations.
- Use `sumup-debug` for failure diagnosis.
- Use `sumup-testing` for sandbox and QA setup.