Skip to main content

Endpoints Overview

EndpointMethodDescription
/cardSalePOSTProcess a card payment transaction using tokenized card data. Supports automatic processor cascading or explicit processor targeting.
/transQueryGETRetrieve transaction records by transaction ID or date range, with support for filtering, pagination, and sorting.
/cardRefundPOSTIssue a full or partial refund against a previously successful transaction.

Base URLs

EnvironmentURL
Productionhttps://ozurapay-pay-api-v2-begfcfdthqg2fcdm.eastus-01.azurewebsites.net
Testinghttps://ozurapay-pay-api-v2-staging-c8abbdfhfbd3c5em.eastus-01.azurewebsites.net

Authentication

All transaction endpoints require API key authentication via request headers.
HeaderDescriptionRequired For
x-api-keyYour OzuraPay API keyAll transaction endpoints
Vault-API-keyYour OzuraPay Vault key for tokenized card data/cardSale

Rate Limits

Rate limits are applied per merchant per endpoint.
EndpointLimit
/cardSale100 requests / minute
/transQuery200 requests / minute
/cardRefund20 requests / minute

Endpoints

Process a Card Sale

Processes a card payment transaction for a merchant. Card data is passed via secure Ozura tokenization — you must provide an ozuraCardToken and ozuraCvcSession rather than raw card details.
Processor Cascading: The processor field is optional. If omitted, OzuraPay will automatically select a processor based on the merchant’s active integrations. To target a specific processor, pass one of the supported values explicitly.

Authentication

HeaderRequired
x-api-keyYes
Vault-API-keyYes

Request Body

FieldTypeRequiredDescription
merchantIdstringYesYour OzuraPay merchant ID (max 30 characters).
amountstringYesTransaction amount as a decimal string (e.g. "1.01").
currencystringYesISO 4217 currency code (e.g. "USD").
ozuraCardTokenstringYesTokenized card number obtained from the OzuraPay Vault.
ozuraCvcSessionstringYesCVC session ID obtained from the OzuraPay Vault.
billingFirstNamestringYesCardholder’s first name.
billingLastNamestringYesCardholder’s last name.
billingEmailstringYesCardholder’s email address.
billingPhonestringYesCardholder’s phone number (e.g. "+1234567890").
billingAddress1stringYesBilling street address.
billingCitystringYesBilling city.
billingStatestringYesBilling state/province code (e.g. "FL").
billingZipcodestringYesBilling postal/ZIP code.
billingCountrystringYesISO 3166-1 alpha-2 country code (e.g. "US").
clientIpAddressstringYesEnd customer’s IP address.
salesTaxExemptbooleanYesWhether the transaction is exempt from sales tax.
processorstringNoTarget processor (e.g. "nuvei", "elavon", "worldpay"). If omitted, processor cascading is used.
surchargePercentstringNoSurcharge percentage as a decimal string.
tipAmountstringNoTip amount as a decimal string.
billingAddress2stringNoAdditional address line (apartment, suite, etc.).

Example Request

curl -X POST https://ozurapay-pay-api-v2-staging-c8abbdfhfbd3c5em.eastus-01.azurewebsites.net/cardSale \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_pay_api_key" \
  -H "Vault-API-key: your_vault_api_key" \
  -d '{
    "merchantId": "ozu_7bjg497249681346",
    "amount": "1.01",
    "currency": "USD",
    "ozuraCardToken": "your_card_token",
    "ozuraCvcSession": "your_cvc_session",
    "billingFirstName": "Jane",
    "billingLastName": "Doe",
    "billingEmail": "jane.doe@example.com",
    "billingPhone": "+1234567890",
    "billingAddress1": "123 Main St",
    "billingCity": "Miami",
    "billingState": "FL",
    "billingZipcode": "33101",
    "billingCountry": "US",
    "clientIpAddress": "203.0.113.42",
    "salesTaxExempt": false
  }'

Query Transactions

Retrieves transaction records for a merchant. You can query by a specific transaction ID or by a date range.

Authentication

HeaderRequired
x-api-keyYes

Query Parameters

ParameterTypeRequiredDescription
merchantIdstringYesYour OzuraPay merchant ID (max 30 characters).
transactionIdstringConditionalA specific transaction ID to look up. Required if dateFrom/dateTo are not provided.
dateFromstringConditionalStart of date range. Format: YYYY-MM-DD HH:MM:SS. Required with dateTo if no transactionId.
dateTostringConditionalEnd of date range. Format: YYYY-MM-DD HH:MM:SS. Required with dateFrom if no transactionId.
transactionTypestringNoFilter by transaction type.
pagestringNoPage number for pagination.
limitstringNoNumber of results per page.
fieldsstringNoComma-separated list of fields to include in the response.
sortBystringNoField name to sort results by.
sortOrderstringNoSort direction: "asc" or "desc".
You must provide either transactionId or both dateFrom and dateTo.

Example Requests

curl -X GET "https://ozurapay-pay-api-v2-staging-c8abbdfhfbd3c5em.eastus-01.azurewebsites.net/transQuery?merchantId=ozu_7bjg497249681346&transactionId=txn_abc123" \
  -H "x-api-key: your_pay_api_key"

Response

{
  "status": "success",
  "data": {
    "transactions": [ "..." ],
    "pagination": { "..." }
  }
}

Process a Card Refund

Processes a full or partial refund against a previously successful transaction.
Partial vs. Full Refunds: The amount field is optional. If omitted, the full remaining refundable amount (currentAmount) of the original transaction will be refunded. To issue a partial refund, specify the desired refund amount as a decimal string.

Authentication

HeaderRequired
x-api-keyYes

Request Body

FieldTypeRequiredDescription
transactionIdstringYesThe ID of the original transaction to refund.
merchantIdstringYesYour OzuraPay merchant ID.
amountstringNoRefund amount as a decimal string. If omitted, the full remaining amount is refunded.

Example Requests

curl -X POST https://ozurapay-pay-api-v2-staging-c8abbdfhfbd3c5em.eastus-01.azurewebsites.net/cardRefund \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_pay_api_key" \
  -d '{
    "transactionId": "txn_abc123",
    "merchantId": "ozu_7bjg497249681346"
  }'

Response

{
  "status": "success",
  "data": {
    "transactionId": "...",
    "...": "..."
  }
}