Payment Processing API
Execute and track payment transactions across multiple payment rails with comprehensive validation and real-time status updates.
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:
- Payment Validation API - For beneficiary and routing validation
- Customer Data API - For customer verification
- Compliance Screening API - For AML and sanctions checks
Related APIs
Query payment transaction status and history
Subscribe to payment lifecycle events
External Documentation
API Specification
OpenAPI 3.1 specification for Payment Processing API v2.1.0
Endpoints
/v2/payments
Initiate a new payment transaction
View Details
{
"paymentType": "ACH",
"amount": {
"value": "1000.00",
"currency": "USD"
},
"debitAccount": "1234567890",
"beneficiary": {
"accountNumber": "0987654321",
"routingNumber": "021000021",
"name": "John Doe"
},
"description": "Invoice payment",
"idempotencyKey": "uuid-here"
}
/v2/payments/{paymentId}
Retrieve payment transaction details
/v2/payments
List payment transactions with filtering
/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:
-
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)
-
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
-
Configure Your Application
Integrate the API using the provided credentials and endpoint information. Sample code and SDKs are available in the Examples tab. -
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
- Sandbox URL:
-
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?
- 📧 Email: payments-team@company.com
- 💬 Slack: #payments-api-support
- 📖 Documentation: Integration Guide
- 🎫 Support Portal: Submit a ticket
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