Payment Processing API

Execute and track payment transactions across multiple payment rails with comprehensive validation and real-time status updates.

Production Internal

Description

The Payment Processing API provides comprehensive capabilities for executing, validating, and tracking payment transactions across domestic and international payment rails. This API is designed to handle high-volume payment processing with enterprise-grade security and compliance.

Key Features

  • Multi-rail payment execution (ACH, Wire, Real-time payments)
  • Real-time payment validation and fraud detection
  • Comprehensive transaction status tracking
  • Automated compliance checking (AML, sanctions screening)
  • Idempotency support for safe retries
  • Webhook notifications for payment lifecycle events

Use Cases

Domestic Bill Payment

Execute one-time or recurring bill payments to registered payees with automatic payment scheduling.

Beneficiary Transfer

Transfer funds to pre-registered beneficiaries with built-in validation and compliance checks.

Merchant Settlement

Batch settlement processing for merchant transactions with reconciliation support.

Dependencies

This API depends on the following services:

Related APIs

External Documentation

API Specification

OpenAPI 3.1 specification for Payment Processing API v2.1.0

Format: OpenAPI 3.1 (REST)

Endpoints

POST /v2/payments

Initiate a new payment transaction

View Details
Request Body:
{ "paymentType": "ACH", "amount": { "value": "1000.00", "currency": "USD" }, "debitAccount": "1234567890", "beneficiary": { "accountNumber": "0987654321", "routingNumber": "021000021", "name": "John Doe" }, "description": "Invoice payment", "idempotencyKey": "uuid-here" }
GET /v2/payments/{paymentId}

Retrieve payment transaction details

GET /v2/payments

List payment transactions with filtering

PATCH /v2/payments/{paymentId}/cancel

Cancel a pending payment transaction

Authentication

This API supports two authentication methods:

  • OAuth 2.0: Client credentials flow with scope payments:write
  • Mutual TLS: Certificate-based authentication for high-security scenarios

Rate Limits

  • 100 requests per minute per client
  • 1000 requests per hour per client
  • Burst limit: 200 requests

Get Access to Payment Processing API

🚀 Self-Service Onboarding

This API supports self-service onboarding. Follow these steps to gain access:

  1. Review Requirements
    Ensure your application meets the security and compliance requirements:
    • PCI-DSS compliance certification (required for payment data handling)
    • OAuth 2.0 client registration in Azure AD
    • Network access to payment platform (firewall rules)
  2. Request API Credentials
    Click the "Request Access" button to initiate the automated provisioning workflow. You'll receive:
    • OAuth 2.0 Client ID and Secret
    • API Gateway endpoint URL
    • Initial rate limit quotas
  3. Configure Your Application
    Integrate the API using the provided credentials and endpoint information. Sample code and SDKs are available in the Examples tab.
  4. Test in Sandbox
    Use the sandbox environment to validate your integration:
    • Sandbox URL: https://api-sandbox.company.com/v2/payments
    • Test accounts and scenarios provided in documentation
  5. Request Production Access
    Once testing is complete, submit a production access request through the portal. Production promotion typically takes 1-2 business days.

Support & Assistance

Need help with onboarding?

Environment Variables

Your application will need to configure the following environment variables:

PAYMENT_API_BASE_URL=https://api.company.com PAYMENT_API_CLIENT_ID=your-client-id PAYMENT_API_CLIENT_SECRET=your-client-secret PAYMENT_API_TOKEN_URL=https://login.company.com/oauth2/token PAYMENT_API_SCOPE=payments:write

Code Examples

Execute a Payment (cURL)

curl -X POST https://api.company.com/v2/payments \ -H "Authorization: Bearer {access_token}" \ -H "Content-Type: application/json" \ -d '{ "paymentType": "ACH", "amount": { "value": "1000.00", "currency": "USD" }, "debitAccount": "1234567890", "beneficiary": { "accountNumber": "0987654321", "routingNumber": "021000021", "name": "John Doe" }, "description": "Invoice payment", "idempotencyKey": "550e8400-e29b-41d4-a716-446655440000" }'

Execute a Payment (Python)

import requests from requests_oauthlib import OAuth2Session # OAuth2 authentication client_id = 'your-client-id' client_secret = 'your-client-secret' token_url = 'https://login.company.com/oauth2/token' # Get access token oauth = OAuth2Session(client=BackendApplicationClient(client_id=client_id)) token = oauth.fetch_token(token_url=token_url, client_id=client_id, client_secret=client_secret) # Execute payment payment_data = { "paymentType": "ACH", "amount": {"value": "1000.00", "currency": "USD"}, "debitAccount": "1234567890", "beneficiary": { "accountNumber": "0987654321", "routingNumber": "021000021", "name": "John Doe" }, "description": "Invoice payment", "idempotencyKey": "550e8400-e29b-41d4-a716-446655440000" } response = oauth.post('https://api.company.com/v2/payments', json=payment_data) print(response.json())

Execute a Payment (C#)

using System; using System.Net.Http; using System.Text.Json; using Microsoft.Identity.Client; var app = ConfidentialClientApplicationBuilder.Create(clientId) .WithClientSecret(clientSecret) .WithAuthority(new Uri(authority)) .Build(); var result = await app.AcquireTokenForClient(new[] { scope }) .ExecuteAsync(); var payment = new { paymentType = "ACH", amount = new { value = "1000.00", currency = "USD" }, debitAccount = "1234567890", beneficiary = new { accountNumber = "0987654321", routingNumber = "021000021", name = "John Doe" }, description = "Invoice payment", idempotencyKey = Guid.NewGuid().ToString() }; var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken); var response = await httpClient.PostAsJsonAsync( "https://api.company.com/v2/payments", payment);

API Versions & Deployments

An API version can be deployed to multiple SDLC workload environments.

v2.1.0 Current

Detail:

Release date: 2026-01-15

Changelog highlights:

  • Added support for real-time payment rails
  • Enhanced fraud detection capabilities
  • Improved error handling and validation messages

Deployments

Production

Sandbox

Development

v2.0.5 Supported

Detail:

Release date: 2025-11-20

Support end date: 2026-06-30

Deployments

Sandbox

Development

v1.5.2 Deprecated

Detail:

Release date: 2025-06-10

Deprecation date: 2025-12-01

End of life: 2026-03-31

Deployments

Development