Openpay

Openpay is a Mexican and Colombian online payments platform, part of the BBVA group, offering a REST API for accepting card payments, cash/store payments, and bank transfers (SPEI). The API covers charges, customers, cards, tokens, subscriptions, plans, payouts, transfers, fees, and webhooks under a per-merchant base path with HTTP Basic authentication using a private API key.

6 APIs 0 Features
PaymentsFintechCardsSPEISubscriptions

APIs

Openpay Charges API

Create and manage charges against cards, convenience stores (cash), and banks (SPEI) at both merchant and customer level, including capture, refund, and listing of transactions.

Openpay Customers and Cards API

Create, retrieve, update, list, and delete customers, store and manage their cards at merchant or customer level, and tokenize card data client-side to reduce PCI scope.

Openpay Subscriptions and Plans API

Define plans as templates for recurring charges (amount and frequency) and associate customers and cards to those plans through subscriptions, with full create, update, cancel, ...

Openpay Payouts and Transfers API

Send payouts to registered bank accounts, move funds between customers with transfers, and manage customer bank accounts used as payout destinations.

Openpay Fees API

Charge commission fees to a customer's Openpay balance, typically used in marketplace and split-payment scenarios, and list previously collected fees.

Openpay Webhooks API

Register, verify, retrieve, list, and delete webhook endpoints that receive POST notifications for transaction events such as charge.succeeded, charge.refunded, charge.failed, a...

Collections

Pricing Plans

Openpay Plans Pricing

2 plans

PLANS

Rate Limits

Openpay Rate Limits

3 limits

RATE LIMITS

FinOps

Resources

👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Openpay API
  version: '1.0'
request:
  auth:
    type: basic
    username: '{{privateKey}}'
    password: ''
items:
- info:
    name: Charges
    type: folder
  items:
  - info:
      name: Create a charge at the merchant level.
      type: http
    http:
      method: POST
      url: https://api.openpay.mx/v1/{{merchantId}}/charges
      body:
        type: json
        data: "{\n  \"method\": \"card\",\n  \"source_id\": \"{{tokenId}}\",\n  \"amount\": 100,\n  \"currency\": \"MXN\"\
          ,\n  \"description\": \"Order #1234\",\n  \"device_session_id\": \"{{deviceSessionId}}\"\n}"
    docs: Creates a charge against a card, store (cash), or bank (SPEI).
  - info:
      name: List charges at the merchant level.
      type: http
    http:
      method: GET
      url: https://api.openpay.mx/v1/{{merchantId}}/charges
    docs: Returns a paginated list of charges.
  - info:
      name: Get a charge by id.
      type: http
    http:
      method: GET
      url: https://api.openpay.mx/v1/{{merchantId}}/charges/{{transactionId}}
    docs: Retrieves a single charge.
  - info:
      name: Refund a charge.
      type: http
    http:
      method: POST
      url: https://api.openpay.mx/v1/{{merchantId}}/charges/{{transactionId}}/refund
      body:
        type: json
        data: "{\n  \"description\": \"Customer refund\"\n}"
    docs: Refunds a completed card charge, fully or partially.
  - info:
      name: Capture a previously authorized charge.
      type: http
    http:
      method: POST
      url: https://api.openpay.mx/v1/{{merchantId}}/charges/{{transactionId}}/capture
      body:
        type: json
        data: "{\n  \"amount\": 100\n}"
    docs: Captures a charge created with capture=false.
- info:
    name: Customers
    type: folder
  items:
  - info:
      name: Create a customer.
      type: http
    http:
      method: POST
      url: https://api.openpay.mx/v1/{{merchantId}}/customers
      body:
        type: json
        data: "{\n  \"name\": \"Jane\",\n  \"last_name\": \"Doe\",\n  \"email\": \"jane@example.com\",\n  \"phone_number\"\
          : \"5512345678\"\n}"
    docs: Creates a customer record.
  - info:
      name: List customers.
      type: http
    http:
      method: GET
      url: https://api.openpay.mx/v1/{{merchantId}}/customers
    docs: Returns a paginated list of customers.
  - info:
      name: Get a customer by id.
      type: http
    http:
      method: GET
      url: https://api.openpay.mx/v1/{{merchantId}}/customers/{{customerId}}
    docs: Retrieves a single customer.
  - info:
      name: Update a customer.
      type: http
    http:
      method: PUT
      url: https://api.openpay.mx/v1/{{merchantId}}/customers/{{customerId}}
      body:
        type: json
        data: "{\n  \"name\": \"Jane\",\n  \"last_name\": \"Doe\",\n  \"email\": \"jane@example.com\"\n}"
    docs: Updates a customer record.
  - info:
      name: Delete a customer.
      type: http
    http:
      method: DELETE
      url: https://api.openpay.mx/v1/{{merchantId}}/customers/{{customerId}}
    docs: Deletes a customer record.
- info:
    name: Cards
    type: folder
  items:
  - info:
      name: Store a card for a customer.
      type: http
    http:
      method: POST
      url: https://api.openpay.mx/v1/{{merchantId}}/customers/{{customerId}}/cards
      body:
        type: json
        data: "{\n  \"token_id\": \"{{tokenId}}\",\n  \"device_session_id\": \"{{deviceSessionId}}\"\n}"
    docs: Stores a card for a customer using a token or raw card data.
  - info:
      name: List a customer's cards.
      type: http
    http:
      method: GET
      url: https://api.openpay.mx/v1/{{merchantId}}/customers/{{customerId}}/cards
    docs: Lists the cards stored for a customer.
  - info:
      name: Delete a customer's card.
      type: http
    http:
      method: DELETE
      url: https://api.openpay.mx/v1/{{merchantId}}/customers/{{customerId}}/cards/{{cardId}}
    docs: Deletes a stored card.
- info:
    name: Tokens
    type: folder
  items:
  - info:
      name: Create a card token.
      type: http
    http:
      method: POST
      url: https://api.openpay.mx/v1/{{merchantId}}/tokens
      body:
        type: json
        data: "{\n  \"card_number\": \"4111111111111111\",\n  \"holder_name\": \"Jane Doe\",\n  \"expiration_year\": \"30\"\
          ,\n  \"expiration_month\": \"12\",\n  \"cvv2\": \"123\"\n}"
    docs: Tokenizes card data to reduce PCI scope.
- info:
    name: Plans
    type: folder
  items:
  - info:
      name: Create a plan.
      type: http
    http:
      method: POST
      url: https://api.openpay.mx/v1/{{merchantId}}/plans
      body:
        type: json
        data: "{\n  \"name\": \"Monthly plan\",\n  \"amount\": 150,\n  \"repeat_every\": 1,\n  \"repeat_unit\": \"month\"\
          ,\n  \"retry_times\": 2,\n  \"status_after_retry\": \"unpaid\",\n  \"trial_days\": 30\n}"
    docs: Creates a plan template for subscriptions.
  - info:
      name: List plans.
      type: http
    http:
      method: GET
      url: https://api.openpay.mx/v1/{{merchantId}}/plans
    docs: Lists subscription plans.
- info:
    name: Subscriptions
    type: folder
  items:
  - info:
      name: Create a subscription for a customer.
      type: http
    http:
      method: POST
      url: https://api.openpay.mx/v1/{{merchantId}}/customers/{{customerId}}/subscriptions
      body:
        type: json
        data: "{\n  \"plan_id\": \"{{planId}}\",\n  \"source_id\": \"{{cardId}}\"\n}"
    docs: Subscribes a customer and card to a plan.
  - info:
      name: List a customer's subscriptions.
      type: http
    http:
      method: GET
      url: https://api.openpay.mx/v1/{{merchantId}}/customers/{{customerId}}/subscriptions
    docs: Lists a customer's subscriptions.
  - info:
      name: Cancel a subscription.
      type: http
    http:
      method: DELETE
      url: https://api.openpay.mx/v1/{{merchantId}}/customers/{{customerId}}/subscriptions/{{subscriptionId}}
    docs: Cancels a subscription.
- info:
    name: Payouts
    type: folder
  items:
  - info:
      name: Create a payout to a registered bank account.
      type: http
    http:
      method: POST
      url: https://api.openpay.mx/v1/{{merchantId}}/customers/{{customerId}}/payouts
      body:
        type: json
        data: "{\n  \"method\": \"bank_account\",\n  \"destination_id\": \"{{bankAccountId}}\",\n  \"amount\": 200,\n  \"\
          description\": \"Vendor payout\",\n  \"order_id\": \"payout-001\"\n}"
    docs: Sends a payout to a registered bank account.
  - info:
      name: List a customer's payouts.
      type: http
    http:
      method: GET
      url: https://api.openpay.mx/v1/{{merchantId}}/customers/{{customerId}}/payouts
    docs: Lists payouts for a customer.
- info:
    name: Transfers
    type: folder
  items:
  - info:
      name: Transfer funds from one customer to another.
      type: http
    http:
      method: POST
      url: https://api.openpay.mx/v1/{{merchantId}}/customers/{{customerId}}/transfers
      body:
        type: json
        data: "{\n  \"customer_id\": \"{{destinationCustomerId}}\",\n  \"amount\": 50,\n  \"description\": \"Funds transfer\"\
          ,\n  \"order_id\": \"transfer-001\"\n}"
    docs: Transfers funds between Openpay customers.
- info:
    name: BankAccounts
    type: folder
  items:
  - info:
      name: Add a bank account to a customer.
      type: http
    http:
      method: POST
      url: https://api.openpay.mx/v1/{{merchantId}}/customers/{{customerId}}/bankaccounts
      body:
        type: json
        data: "{\n  \"clabe\": \"012298026516924616\",\n  \"alias\": \"Main account\",\n  \"holder_name\": \"Jane Doe\"\n}"
    docs: Registers a bank account as a payout destination.
  - info:
      name: List a customer's bank accounts.
      type: http
    http:
      method: GET
      url: https://api.openpay.mx/v1/{{merchantId}}/customers/{{customerId}}/bankaccounts
    docs: Lists a customer's registered bank accounts.
- info:
    name: Fees
    type: folder
  items:
  - info:
      name: Charge a commission fee to a customer's balance.
      type: http
    http:
      method: POST
      url: https://api.openpay.mx/v1/{{merchantId}}/fees
      body:
        type: json
        data: "{\n  \"customer_id\": \"{{customerId}}\",\n  \"amount\": 12.5,\n  \"description\": \"Marketplace commission\"\
          ,\n  \"order_id\": \"fee-001\"\n}"
    docs: Charges a commission fee to a customer's Openpay balance.
  - info:
      name: List charged fees.
      type: http
    http:
      method: GET
      url: https://api.openpay.mx/v1/{{merchantId}}/fees
    docs: Lists previously charged fees.
- info:
    name: Webhooks
    type: folder
  items:
  - info:
      name: Register a webhook endpoint.
      type: http
    http:
      method: POST
      url: https://api.openpay.mx/v1/{{merchantId}}/webhooks
      body:
        type: json
        data: "{\n  \"url\": \"https://example.com/openpay/webhook\",\n  \"user\": \"hookuser\",\n  \"password\": \"hookpass\"\
          ,\n  \"event_types\": [\"charge.succeeded\", \"charge.refunded\", \"payout.succeeded\"]\n}"
    docs: Registers a webhook endpoint to receive event notifications.
  - info:
      name: List registered webhooks.
      type: http
    http:
      method: GET
      url: https://api.openpay.mx/v1/{{merchantId}}/webhooks
    docs: Lists registered webhook endpoints.
  - info:
      name: Delete a webhook.
      type: http
    http:
      method: DELETE
      url: https://api.openpay.mx/v1/{{merchantId}}/webhooks/{{webhookId}}
    docs: Deletes a webhook endpoint.