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

External Documentation

API Specification

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

Each major version may have multiple definition contracts. Deployments are per-definition and can target different SDLC workload environments.

v2 Current

Payment Processing v2

Main contract for Production and Development deployments.

SDLC Workload
Base URL
Environment
Status
Spec
Production
https://api.company.com/payments/v2
Azure APIM Prod
βœ“ Healthy
UAT
β€”
Azure APIM Non-Prod
Unknown
Staging
β€”
Azure APIM Non-Prod
Unknown
Development
β€”
Azure APIM Dev
Unknown
Sandbox
https://api-sandbox.company.com/payments/v2
Azure APIM Dev
βœ“ Healthy

v1 Deprecated

End of life: 2026-03-31. Migrate to v2.

Payment Processing v1 – Legacy Contract

def-ppa-v1-deprecated

Development environment only.

Environment
Base URL
Runtime
Status
Spec
Production
https://api.company.com/payments/v1
Azure APIM Prod
Unknown