Availability RestrictionThis process is only available for clients who are fully PCI DSS compliant. You must maintain enterprise-grade security and handle raw card data according to all PCI DSS requirements.
Prerequisites
Before you begin, ensure you have full PCI DSS Level 1 certification, which is mandatory for handling raw card data.When to Use This ApproachRaw card processing is recommended for:
- Large enterprise merchants already PCI Level 1 certified.
- Payment processors operating under existing PCI compliance.
- High-volume businesses with existing PCI infrastructure.
- Systems where reduced latency is critical.
- Small to medium businesses without PCI compliance.
- New payment integrations.
- Cost-conscious merchants (compliance maintenance is expensive).
Step 1: Configure API Authentication
Configure your authentication headers to access the PCI-compliant processing endpoints. Include these headers in every request:Step 2: Process the Payment
Send a POST request with raw card data directly to the PCI compliant endpoint. The request structure is identical to the standard process endpoint, but with raw card data.For testing, use the card numbers and test data available in our Testing Data guide to ensure your integration works correctly before going live.
POST
request to the Process Transaction endpoint with the required parameters below:
Parameter | Type | Description |
---|---|---|
operation_type | string | Must be "payment" to process a payment |
amount | number | Payment amount (e.g., 150.00 ) |
currency | string | Currency code (e.g., "MXN" for Mexican Peso) |
customer | object | Customer information containing name and email |
payment_method | object | Payment method details including type and raw card information |
client_reference | string | Your unique reference for this transaction |
return_url | string | URL where customer returns after 3DS authentication |
cURL Example
Step 4: Handle the Response
Process the payment response according to the status received. The API returns a JSON object with the following structure:status
field in your response and implement appropriate logic based on the status value received.
The table below details the fields that are returned in the response:
Field | Type | Description |
---|---|---|
id | string | Unique transaction identifier |
operation_type | string | Always "payment" |
status | string | Transaction status |
amount | decimal | Transaction amount |
currency | string | Currency code |
client_reference | string | Your reference identifier |
payment_id | integer | Internal payment ID |
transaction_id | integer | Internal transaction ID |
provider | string | Payment provider used |
created_at | string | ISO 8601 timestamp |
status_code | integer | HTTP status code |
next_action | object | Required actions (3DS, redirects) |
Validation of
id
and status
fieldsFor proper payment validation, you must check:id
is the unique transaction identifier - store this for future reference.status
is the current payment state - determines next actions.
Next Steps
After implementing PCI compliant raw card processing:- Set up webhooks for real-time payment status updates.
- Implement 3D Secure authentication for enhanced security.
- Review HTTP response codes for comprehensive error handling.
- Test your implementation using testing data.