Skip to main content

Integration Overview

Quick Reference

WhatIntegration models for accepting payments
WhyPick the path that matches your control needs, UX goals, and timeline
Reading Time7 min
DifficultyBeginner
PrerequisitesAuthentication → Environment

Why this decision matters

The integration model you choose determines how card data flows, who handles 3DS, and how much A55 manages for you. Changing models later means re-architecture. Spend 7 minutes here to save weeks later.

Wrong choiceConsequence
H2H when you don't need full controlYou take on card-data handling that A55 could manage for you
SDK when you need full server controlYou fight the SDK instead of leveraging it
Checkout Page when you need pixel-perfect UXYou lose control over the payment experience

Comparison matrix

CriterionH2H (Host-to-Host)SDK (Embedded)Checkout Page (Redirect)
Time to integrateWeeksDaysHours
Card data handlingYour serversSDK in browser — A55 secures itA55 hosted page — fully managed
UX controlFull — every pixel is yoursHigh — native checkout, SDK handles 3DSLimited — A55-hosted page
Who runs 3DSYou (handle url_3ds)SDK (frictionless + challenge)A55 (end-to-end)
SecurityA55 encrypts and vaults all card dataA55 handles card capture and encryptionA55 manages everything end-to-end
Best forTeams needing full server-side controlNative checkout with less 3DS workFastest launch, zero card-data handling

Decision tree

Quick rules
  • Hours to launch? → Checkout Page
  • Native UX, no card-data handling? → SDK
  • Full server-side control? → H2H

1. H2H (Host-to-Host)

Your backend sends card data, customer fields, and 3DS payloads directly to A55.

You handle: Card collection, HTTPS transport, 3DS challenge redirect, webhook processing.

A55 handles: Acquirer routing, authorization, webhook delivery.

StrengthTrade-off
Full control over every step of the paymentYou handle card data before passing it to A55
Custom retry logic and error handling3DS challenge flow requires frontend work
Direct access to all API parametersLongest integration timeline

2. SDK (Embedded Frontend)

Embed the A55 JavaScript SDK on your checkout page. It collects card data, handles 3DS, and reports the result.

You handle: Charge creation on backend, SDK initialization on frontend, webhook processing.

SDK handles: Card field rendering, device fingerprinting, 3DS frictionless/challenge routing, async callbacks.

StrengthTrade-off
Native checkout UX — the SDK renders inside your pageYou integrate and test the SDK lifecycle
Card data never hits your servers — A55 handles it securelyLess flexibility than raw H2H
3DS handled automatically by the SDKRequires frontend JavaScript integration

3. Checkout Page (Redirect)

Create a charge with minimal data, then redirect the payer to A55's hosted page. Card collection, 3DS, and payment completion happen there.

You handle: Charge creation, redirect, return URL handling, webhook processing.

A55 handles: Everything else — card capture, 3DS, payment completion, hosted UI.

StrengthTrade-off
Fastest launch — hours to productionLess control over payment UX
Zero card-data handling — A55 manages everythingRedirect takes user off your site
No frontend JavaScript requiredHosted page styling is A55-managed

Responsibilities summary

ResponsibilityH2HSDKCheckout
Create charge on backendYouYouYou
Collect card dataYouSDKA55
Handle 3DS challengesYouSDKA55
Process webhooksYouYouYou
Card data securityA55 encrypts and vaultsA55 handles in browserA55 manages end-to-end
Frontend JavaScriptNot requiredRequired (SDK)Not required

Integration quickstart

Regardless of model, the backend charge creation call is the same:

curl -s -X POST https://core-manager.a55.tech/api/v1/bank/wallet/charge/ \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"wallet_uuid": "YOUR_WALLET_UUID",
"merchant_id": "YOUR_MERCHANT_UUID",
"payer_name": "Jane Smith",
"payer_email": "jane@example.com",
"payer_tax_id": "12345678909",
"payer_cell_phone": "+5511999999999",
"installment_value": 250.00,
"currency": "BRL",
"due_date": "2026-12-31",
"description": "Order #42",
"type_charge": "credit_card",
"webhook_url": "https://your-app.com/webhooks/a55"
}'

What happens after this call depends on your integration model:

  • H2H: Include card object in the payload; handle url_3ds if returned.
  • SDK: Use the returned charge_uuid to initialize the frontend SDK.
  • Checkout Page: Include is_checkout: true; redirect the payer to the returned URL.

Webhooks are the source of truth

Regardless of integration model

Treat webhooks as authoritative for the final payment state. Show a "processing" state after submission until a webhook confirms the outcome. Terminal states (paid, error, canceled, refunded) do not transition further.

ShowWhen
ProcessingAfter payment submission
SuccessWebhook confirms paid
FailedWebhook confirms error or canceled

Regardless of which integration model you choose, Visa Data Only can boost your approval rates by sharing enriched transaction data with issuers — without adding any friction. Square's pilot showed up to +646 basis points improvement across 6 million transactions.

All three integration methods support Data Only. Add data_only: true to your charge payload and include device_info.

Learn how to activate Data Only →