Skip to content

TransactCore Payment API

The TransactCore Payment API enables you to integrate Stripe-powered checkout into your ecommerce applications. It handles payment intent creation, Stripe configuration, and payment lifecycle management through Stripe Connect.

Overview

TransactCore provides a simple REST API for ecommerce payment processing:

  • Stripe Config - Retrieve publishable keys and connected account IDs for Stripe.js initialization
  • Payment Intents - Create, check, and cancel payment intents
  • Stripe Connect - Multi-location payment routing through Stripe Connect accounts
  • PCI Compliance - All card data handled by Stripe Elements, keeping your app out of PCI scope

Payment Flow

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│   Your Backend  │     │  TransactCore   │     │     Stripe      │
└────────┬────────┘     └────────┬────────┘     └────────┬────────┘
         │                       │                       │
         │  GET /config/stripe   │                       │
         │──────────────────────>│                       │
         │  publishable_key,     │                       │
         │  stripe_account_id    │                       │
         │<──────────────────────│                       │
         │                       │                       │
         │                  ┌────────────┐               │
         │                  │  Frontend  │               │
         │                  │  loads     │               │
         │                  │  Stripe.js │               │
         │                  └────────────┘               │
         │                       │                       │
         │  POST /payment-intents│                       │
         │──────────────────────>│  Create PaymentIntent │
         │                       │──────────────────────>│
         │                       │      client_secret    │
         │                       │<──────────────────────│
         │   client_secret       │                       │
         │<──────────────────────│                       │
         │                       │                       │
         │                  ┌────────────┐               │
         │                  │  Frontend  │               │
         │                  │  confirms  │──────────────>│
         │                  │  payment   │  Card payment │
         │                  │  via       │<──────────────│
         │                  │  Stripe.js │  Result       │
         │                  └────────────┘               │

Base URLs

EnvironmentURL
Staginghttps://api-staging.transactcore.retailsuccessplatform.com/api/v1/ecommerce
Productionhttps://api.transactcore.retailsuccessplatform.com/api/v1/ecommerce

Quick Start

1. Get Stripe Config

Retrieve the Stripe publishable key needed to initialize Stripe.js on the client:

bash
curl https://api.transactcore.retailsuccessplatform.com/api/v1/ecommerce/config/stripe \
  -H "Authorization: Bearer ${TOKEN}"

Response:

json
{
  "publishable_key": "pk_live_xxxxx",
  "stripe_account_id": "acct_xxxxx"
}

2. Create a Payment Intent

Create a PaymentIntent to get the client_secret for Stripe.js:

bash
curl -X POST https://api.transactcore.retailsuccessplatform.com/api/v1/ecommerce/payment-intents \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "organization_id": "org_00000k1L2m3N4o5",
    "amount": 3420,
    "currency": "usd"
  }'

Response:

json
{
  "client_secret": "pi_3abc123_secret_xyz789",
  "payment_intent_id": "pi_3abc123",
  "publishable_key": "pk_live_xxxxx",
  "amount": 3420,
  "currency": "usd"
}

3. Confirm Payment on the Client

Use the client_secret with Stripe.js to collect and confirm the payment:

javascript
const stripe = await loadStripe(publishableKey);
const { error, paymentIntent } = await stripe.confirmPayment({
  elements,
  clientSecret: client_secret,
  redirect: 'if_required',
});

Authentication

EndpointScopeRate Limit
Stripe Configtransactcore:payment-intents.read100/min per IP
Connected Accounttransactcore:connected-accounts.read100/min per IP
Create Payment Intenttransactcore:payment-intents.create100/min per IP
Get Payment Intenttransactcore:payment-intents.read100/min per IP
Cancel Payment Intenttransactcore:payment-intents.create100/min per IP

All endpoints require an OAuth 2.0 Bearer token from the Identity API.

Available Scopes

ScopeDescription
transactcore:payment-intents.readGet Stripe config and check payment intent status
transactcore:payment-intents.createCreate and cancel payment intents
transactcore:connected-accounts.readLook up connected account by organization

Use Cases

Ecommerce Checkout

Build a checkout page with Stripe Elements:

  1. Fetch Stripe config from TransactCore
  2. Initialize Stripe.js with the publishable key
  3. Mount Payment Element for card collection
  4. Create a PaymentIntent via your backend
  5. Confirm the payment with Stripe.js
  6. Submit the order with the successful payment_intent_id

Multi-Location Stripe Connect

Route payments to location-specific Stripe Connect accounts:

  1. Pass connected_account_id when fetching Stripe config
  2. Receive the stripe_account_id for the location
  3. Use on_behalf_of in Stripe Elements for Connect mode
  4. Payment is routed to the correct connected account

Next Steps


Changelog
DateChange
2026-03-19Added connected account lookup endpoint and fixed scope format.
2026-03-19Initial publication.

ShopHero CommerceCore Platform