Note: S2S integration requires your application to be PCI DSS compliant, as raw card data passes through your server.
| Scenario | Recommended |
|---|---|
| Native mobile app (iOS / Android) | ✅ |
| Existing custom payment form | ✅ |
| Full control over payment UI and flow | ✅ |
| Server-side batch payments or auto-charge | ✅ |
| Want UseePay to handle the payment UI | ❌ Use Embedded or Hosted Checkout instead |
| Field | Description |
|---|---|
| Card number | 16-digit PAN |
| Expiry month | MM format |
| Expiry year | YY or YYYY format |
| CVV | 3 or 4 digits |
| Parameter | Description |
|---|---|
amount | Amount in minor units (e.g. 1000 = $10.00) |
currency | ISO 4217 code, e.g. USD |
merchantOrderId | Your unique order ID |
captureMethod | automatic · charge immediately / manual · auth only |
returnUrl | Redirect URL after 3DS completion |
id for the next step.| Parameter | Description |
|---|---|
paymentMethod.card.number | Encrypted or raw card number |
paymentMethod.card.expiryMonth | Card expiry month |
paymentMethod.card.expiryYear | Card expiry year |
paymentMethod.card.cvc | Card CVV |
returnUrl | Where to redirect after 3DS |
| Status | Meaning | Action |
|---|---|---|
succeeded | Payment complete | Fulfill order |
requires_capture | Authorized (manual mode) | Capture when ready |
requires_action | 3DS required | Redirect customer |
failed | Payment declined | Show error, retry |
next_action:{
"status": "requires_action",
"nextAction": {
"type": "redirect",
"redirect": {
"url": "https://3ds.useepay.com/authenticate?token=xxx"
}
}
}nextAction.redirect.url. After authentication, the customer is returned to your returnUrl:https://yoursite.com/payment/result
?payment_intent=pi_1234567890
&redirect_status=succeededAlways verify the final status server-side — do not rely solely on the redirect params.
captureMethod: "manual", the card is authorized but not charged after confirmation. Capture when you are ready to fulfill the order.The authorization hold will expire if not captured within the allowed window.
| Event | Description |
|---|---|
payment_intent.succeeded | Payment completed |
payment_intent.payment_failed | Payment failed |
payment_intent.requires_capture | Authorized, awaiting capture |
payment_intent.canceled | Payment canceled |
Webhook is the recommended way to confirm payment status — more reliable than redirect params or polling.
requires_payment_method
│
▼
requires_confirmation
│
▼
requires_action ──── 3DS auth ────┐
│ │
▼ │
requires_capture (manual mode) │
│ │
▼ ▼
succeeded ◄────────────────────┘
canceled / failed (terminal states)| Payment Method | Notes |
|---|---|
| Credit / Debit Card | Full S2S support including 3DS |
| Apple Pay | Requires Apple Pay token from device |
| Google Pay | Requires Google Pay token from device |
PaymentIntent server-side before submitting card datarequires_action status — redirect customer to 3DS URLPOST /refunds for failed fulfillments