openapi: 3.0.1 info: title: Openpay BankAccounts Customers API description: REST API for the Openpay online payments platform (BBVA group), available in Mexico and Colombia. Resources are scoped to a merchant under the path /v1/{merchant_id}. The API supports charges against cards, convenience stores (cash), and banks (SPEI); customers and stored cards; client-side tokens; recurring plans and subscriptions; payouts and transfers to bank accounts; commission fees; and webhook notifications. Authentication uses HTTP Basic auth with the merchant private API key as the username and an empty password. termsOfService: https://www.openpay.mx/terminos-y-condiciones.html contact: name: Openpay Support url: https://www.openpay.mx email: soporte@openpay.mx version: '1.0' servers: - url: https://api.openpay.mx/v1 description: Production (Mexico) - url: https://sandbox-api.openpay.mx/v1 description: Sandbox (Mexico) - url: https://api.openpay.co/v1 description: Production (Colombia) - url: https://sandbox-api.openpay.co/v1 description: Sandbox (Colombia) security: - basicAuth: [] tags: - name: Customers description: Manage customer records. paths: /{merchant_id}/customers: parameters: - $ref: '#/components/parameters/MerchantId' post: operationId: createCustomer tags: - Customers summary: Create a customer. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCustomer' responses: '200': description: Customer created. content: application/json: schema: $ref: '#/components/schemas/Customer' get: operationId: listCustomers tags: - Customers summary: List customers. parameters: - $ref: '#/components/parameters/Creation' - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: A list of customers. content: application/json: schema: type: array items: $ref: '#/components/schemas/Customer' /{merchant_id}/customers/{customer_id}: parameters: - $ref: '#/components/parameters/MerchantId' - $ref: '#/components/parameters/CustomerId' get: operationId: getCustomer tags: - Customers summary: Get a customer by id. responses: '200': description: The customer. content: application/json: schema: $ref: '#/components/schemas/Customer' put: operationId: updateCustomer tags: - Customers summary: Update a customer. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCustomer' responses: '200': description: The updated customer. content: application/json: schema: $ref: '#/components/schemas/Customer' delete: operationId: deleteCustomer tags: - Customers summary: Delete a customer. responses: '204': description: Customer deleted. components: parameters: Offset: name: offset in: query required: false description: Number of records to skip for pagination. schema: type: integer default: 0 MerchantId: name: merchant_id in: path required: true description: The merchant identifier that scopes all resources. schema: type: string Creation: name: creation in: query required: false description: Filter by creation date (yyyy-mm-dd). schema: type: string format: date CustomerId: name: customer_id in: path required: true schema: type: string Limit: name: limit in: query required: false description: Maximum number of records to return. schema: type: integer default: 10 schemas: Customer: type: object properties: id: type: string name: type: string last_name: type: string email: type: string phone_number: type: string status: type: string balance: type: number format: float creation_date: type: string format: date-time address: $ref: '#/components/schemas/Address' Address: type: object properties: line1: type: string line2: type: string line3: type: string postal_code: type: string state: type: string city: type: string country_code: type: string example: MX CreateCustomer: type: object required: - name - email properties: name: type: string last_name: type: string email: type: string phone_number: type: string requires_account: type: boolean description: Whether the customer requires an Openpay balance account. address: $ref: '#/components/schemas/Address' securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic authentication. Use the merchant private API key as the username and leave the password empty.