openapi: 3.0.3 info: title: Efí Pay Pix API description: >- Brazilian Pix instant-payments API for Efí Pay (formerly Gerencianet). Implements the Banco Central do Brasil Pix specification (cob/cobv/cobr, locations, devolutions, Pix keys/EVP) plus Efí Pay extensions for Cash-Out (pixSend), splits, MED infractions, recurring/automatic Pix, statements, receipts, and webhooks. OAuth2 client_credentials with mandatory mutual TLS (P12/PEM certificate). version: "2.0" contact: name: Efí Pay Developer Support url: https://dev.efipay.com.br/docs/api-pix license: name: Proprietary servers: - url: https://pix.api.efipay.com.br description: Production - url: https://pix-h.api.efipay.com.br description: Homologation (Sandbox) security: - oauth2Pix: [] tags: - name: Authorization - name: Immediate Charges - name: Due Charges - name: Due Charge Batches - name: Automatic Charges - name: Recurring Pix - name: Pix Send - name: Received Pix - name: Devolutions - name: Locations - name: QR Codes - name: Pix Keys - name: Account - name: Splits - name: MED Infractions - name: Reports - name: Receipts - name: Webhooks paths: /oauth/token: post: tags: [Authorization] summary: Issue Pix Access Token operationId: pixAuthorize responses: { "200": { description: Token } } /v2/cob: post: tags: [Immediate Charges] summary: Create Immediate Pix Charge operationId: pixCreateImmediateCharge responses: { "201": { description: Charge created } } get: tags: [Immediate Charges] summary: List Immediate Pix Charges operationId: pixListCharges responses: { "200": { description: Charges } } /v2/cob/{txid}: put: tags: [Immediate Charges] summary: Create Immediate Pix Charge With Txid operationId: pixCreateCharge parameters: [{ name: txid, in: path, required: true, schema: { type: string } }] responses: { "201": { description: Created } } patch: tags: [Immediate Charges] summary: Update Immediate Pix Charge operationId: pixUpdateCharge parameters: [{ name: txid, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Updated } } get: tags: [Immediate Charges] summary: Detail Immediate Pix Charge operationId: pixDetailCharge parameters: [{ name: txid, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Charge } } /v2/cobv: get: tags: [Due Charges] summary: List Pix Due Charges operationId: pixListDueCharges responses: { "200": { description: Due charges } } /v2/cobv/{txid}: put: tags: [Due Charges] summary: Create Pix Due Charge operationId: pixCreateDueCharge parameters: [{ name: txid, in: path, required: true, schema: { type: string } }] responses: { "201": { description: Created } } patch: tags: [Due Charges] summary: Update Pix Due Charge operationId: pixUpdateDueCharge parameters: [{ name: txid, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Updated } } get: tags: [Due Charges] summary: Detail Pix Due Charge operationId: pixDetailDueCharge parameters: [{ name: txid, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Due charge } } /v2/lotecobv: get: tags: [Due Charge Batches] summary: List Due Charge Batches operationId: pixListDueChargeBatch responses: { "200": { description: Batches } } /v2/lotecobv/{id}: put: tags: [Due Charge Batches] summary: Create Due Charge Batch operationId: pixCreateDueChargeBatch parameters: [{ name: id, in: path, required: true, schema: { type: string } }] responses: { "201": { description: Created } } patch: tags: [Due Charge Batches] summary: Update Due Charge Batch operationId: pixUpdateDueChargeBatch parameters: [{ name: id, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Updated } } get: tags: [Due Charge Batches] summary: Detail Due Charge Batch operationId: pixDetailDueChargeBatch parameters: [{ name: id, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Batch } } /v2/cobr: post: tags: [Automatic Charges] summary: Create Automatic Pix Charge operationId: pixCreateAutomaticCharge responses: { "201": { description: Created } } get: tags: [Automatic Charges] summary: List Automatic Pix Charges operationId: pixListAutomaticCharge responses: { "200": { description: Charges } } /v2/cobr/{txid}: put: tags: [Automatic Charges] summary: Create Automatic Pix Charge With Txid operationId: pixCreateAutomaticChargeTxid parameters: [{ name: txid, in: path, required: true, schema: { type: string } }] responses: { "201": { description: Created } } patch: tags: [Automatic Charges] summary: Update Automatic Pix Charge operationId: pixUpdateAutomaticCharge parameters: [{ name: txid, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Updated } } get: tags: [Automatic Charges] summary: Detail Automatic Pix Charge operationId: pixDetailAutomaticCharge parameters: [{ name: txid, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Charge } } /v2/cobr/{txid}/retentativa/{data}: post: tags: [Automatic Charges] summary: Retry Automatic Pix Charge operationId: pixRetryRequestAutomaticCharge parameters: - { name: txid, in: path, required: true, schema: { type: string } } - { name: data, in: path, required: true, schema: { type: string, format: date } } responses: { "200": { description: Retried } } /v2/rec: post: tags: [Recurring Pix] summary: Create Recurring Pix operationId: pixCreateRecurrenceAutomatic responses: { "201": { description: Created } } get: tags: [Recurring Pix] summary: List Recurring Pix operationId: pixListRecurrenceAutomatic responses: { "200": { description: Recurrences } } /v2/rec/{idRec}: get: tags: [Recurring Pix] summary: Detail Recurring Pix operationId: pixDetailRecurrenceAutomatic parameters: [{ name: idRec, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Recurrence } } patch: tags: [Recurring Pix] summary: Update Recurring Pix operationId: pixUpdateRecurrenceAutomatic parameters: [{ name: idRec, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Updated } } /v2/solicrec: post: tags: [Recurring Pix] summary: Create Recurring Pix Request operationId: pixCreateRequestRecurrenceAutomatic responses: { "201": { description: Created } } /v2/solicrec/{idSolicRec}: get: tags: [Recurring Pix] summary: Detail Recurring Pix Request operationId: pixDetailRequestRecurrenceAutomatic parameters: [{ name: idSolicRec, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Request } } patch: tags: [Recurring Pix] summary: Update Recurring Pix Request operationId: pixUpdateRequestRecurrenceAutomatic parameters: [{ name: idSolicRec, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Updated } } /v2/locrec: post: tags: [Recurring Pix] summary: Create Recurring Pix Location operationId: pixCreateLocationRecurrenceAutomatic responses: { "201": { description: Created } } get: tags: [Recurring Pix] summary: List Recurring Pix Locations operationId: pixListLocationRecurrenceAutomatic responses: { "200": { description: Locations } } /v2/locrec/{id}: get: tags: [Recurring Pix] summary: Detail Recurring Pix Location operationId: pixDetailLocationRecurrenceAutomatic parameters: [{ name: id, in: path, required: true, schema: { type: integer } }] responses: { "200": { description: Location } } /v2/locrec/{id}/idRec: delete: tags: [Recurring Pix] summary: Unlink Recurring Pix Location operationId: pixUnlinkLocationRecurrenceAutomatic parameters: [{ name: id, in: path, required: true, schema: { type: integer } }] responses: { "204": { description: Unlinked } } /v3/gn/pix/{idEnvio}: put: tags: [Pix Send] summary: Send Pix Cash Out operationId: pixSend parameters: [{ name: idEnvio, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Sent } } /v2/gn/pix/{idEnvio}/qrcode: put: tags: [Pix Send] summary: Pay Pix QR Code operationId: pixQrCodePay parameters: [{ name: idEnvio, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Paid } } /v2/gn/pix/{idEnvio}/mesma-titularidade: put: tags: [Pix Send] summary: Send Pix Same Ownership operationId: pixSendSameOwnership parameters: [{ name: idEnvio, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Sent } } /v2/gn/pix/enviados: get: tags: [Pix Send] summary: List Sent Pix operationId: pixSendList responses: { "200": { description: Sent Pix list } } /v2/gn/pix/enviados/{e2eid}: get: tags: [Pix Send] summary: Detail Sent Pix operationId: pixSendDetail parameters: [{ name: e2eid, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Detail } } /v2/gn/pix/enviados/id-envio/{idEnvio}: get: tags: [Pix Send] summary: Detail Sent Pix By Send Id operationId: pixSendDetailId parameters: [{ name: idEnvio, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Detail } } /v2/pix: get: tags: [Received Pix] summary: List Received Pix operationId: pixReceivedList responses: { "200": { description: Received Pix } } /v2/pix/{e2eId}: get: tags: [Received Pix] summary: Detail Received Pix operationId: pixDetailReceived parameters: [{ name: e2eId, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Received Pix } } /v2/pix/{e2eId}/devolucao/{id}: put: tags: [Devolutions] summary: Create Pix Devolution operationId: pixDevolution parameters: - { name: e2eId, in: path, required: true, schema: { type: string } } - { name: id, in: path, required: true, schema: { type: string } } responses: { "201": { description: Devolution issued } } get: tags: [Devolutions] summary: Detail Pix Devolution operationId: pixDetailDevolution parameters: - { name: e2eId, in: path, required: true, schema: { type: string } } - { name: id, in: path, required: true, schema: { type: string } } responses: { "200": { description: Devolution } } /v2/loc: post: tags: [Locations] summary: Create Pix Location operationId: pixCreateLocation responses: { "201": { description: Location } } get: tags: [Locations] summary: List Pix Locations operationId: pixLocationList responses: { "200": { description: Locations } } /v2/loc/{id}: get: tags: [Locations] summary: Detail Pix Location operationId: pixDetailLocation parameters: [{ name: id, in: path, required: true, schema: { type: integer } }] responses: { "200": { description: Location } } /v2/loc/{id}/qrcode: get: tags: [QR Codes] summary: Generate Pix QR Code operationId: pixGenerateQRCode parameters: [{ name: id, in: path, required: true, schema: { type: integer } }] responses: { "200": { description: QR Code payload } } /v2/loc/{id}/txid: delete: tags: [Locations] summary: Unlink Txid From Location operationId: pixUnlinkTxidLocation parameters: [{ name: id, in: path, required: true, schema: { type: integer } }] responses: { "204": { description: Unlinked } } /v2/gn/qrcodes/detalhar: post: tags: [QR Codes] summary: Detail Pix QR Code operationId: pixQrCodeDetail responses: { "200": { description: Decoded QR Code } } /v2/gn/evp: post: tags: [Pix Keys] summary: Create Random Pix Key operationId: pixCreateEvp responses: { "201": { description: Key created } } get: tags: [Pix Keys] summary: List Random Pix Keys operationId: pixListEvp responses: { "200": { description: Keys } } /v2/gn/evp/{chave}: delete: tags: [Pix Keys] summary: Delete Random Pix Key operationId: pixDeleteEvp parameters: [{ name: chave, in: path, required: true, schema: { type: string } }] responses: { "204": { description: Deleted } } /v2/gn/chaves/balde: get: tags: [Pix Keys] summary: List Pix Keys Bucket operationId: pixKeysBucket responses: { "200": { description: Bucket } } /v2/gn/saldo: get: tags: [Account] summary: Get Account Balance operationId: getAccountBalance responses: { "200": { description: Balance } } /v2/gn/config: get: tags: [Account] summary: List Account Config operationId: listAccountConfig responses: { "200": { description: Config } } put: tags: [Account] summary: Update Account Config operationId: updateAccountConfig responses: { "200": { description: Updated } } /v2/gn/split/cob/{txid}: get: tags: [Splits] summary: Detail Charge Split operationId: pixSplitDetailCharge parameters: [{ name: txid, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Split } } /v2/gn/split/cob/{txid}/vinculo/{splitConfigId}: put: tags: [Splits] summary: Link Split To Charge operationId: pixSplitLinkCharge parameters: - { name: txid, in: path, required: true, schema: { type: string } } - { name: splitConfigId, in: path, required: true, schema: { type: string } } responses: { "200": { description: Linked } } delete: tags: [Splits] summary: Unlink Split From Charge operationId: pixSplitUnlinkCharge parameters: - { name: txid, in: path, required: true, schema: { type: string } } - { name: splitConfigId, in: path, required: true, schema: { type: string } } responses: { "204": { description: Unlinked } } /v2/gn/split/cobv/{txid}: get: tags: [Splits] summary: Detail Due Charge Split operationId: pixSplitDetailDueCharge parameters: [{ name: txid, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Split } } /v2/gn/split/cobv/{txid}/vinculo/{splitConfigId}: put: tags: [Splits] summary: Link Split To Due Charge operationId: pixSplitLinkDueCharge parameters: - { name: txid, in: path, required: true, schema: { type: string } } - { name: splitConfigId, in: path, required: true, schema: { type: string } } responses: { "200": { description: Linked } } delete: tags: [Splits] summary: Unlink Split From Due Charge operationId: pixSplitUnlinkDueCharge parameters: - { name: txid, in: path, required: true, schema: { type: string } } - { name: splitConfigId, in: path, required: true, schema: { type: string } } responses: { "204": { description: Unlinked } } /v2/gn/split/config: post: tags: [Splits] summary: Create Split Config operationId: pixSplitConfig responses: { "201": { description: Created } } /v2/gn/split/config/{id}: put: tags: [Splits] summary: Update Split Config operationId: pixSplitConfigId parameters: [{ name: id, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Updated } } get: tags: [Splits] summary: Detail Split Config operationId: pixSplitDetailConfig parameters: [{ name: id, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Config } } /v2/gn/infracoes: get: tags: [MED Infractions] summary: List MED Infractions operationId: medList responses: { "200": { description: Infractions } } /v2/gn/infracoes/{idInfracao}/defesa: post: tags: [MED Infractions] summary: Submit MED Defense operationId: medDefense parameters: [{ name: idInfracao, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Submitted } } /v2/gn/relatorios/extrato-conciliacao: post: tags: [Reports] summary: Create Reconciliation Report operationId: createReport responses: { "201": { description: Report queued } } /v2/gn/relatorios/{id}: get: tags: [Reports] summary: Detail Reconciliation Report operationId: detailReport parameters: [{ name: id, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Report } } /v2/gn/pix/comprovantes: get: tags: [Receipts] summary: Get Pix Receipt operationId: pixGetReceipt responses: { "200": { description: Receipt PDF } } /v2/webhook/{chave}: put: tags: [Webhooks] summary: Configure Pix Webhook operationId: pixConfigWebhook parameters: [{ name: chave, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Configured } } get: tags: [Webhooks] summary: Detail Pix Webhook operationId: pixDetailWebhook parameters: [{ name: chave, in: path, required: true, schema: { type: string } }] responses: { "200": { description: Webhook } } delete: tags: [Webhooks] summary: Delete Pix Webhook operationId: pixDeleteWebhook parameters: [{ name: chave, in: path, required: true, schema: { type: string } }] responses: { "204": { description: Deleted } } /v2/webhook: get: tags: [Webhooks] summary: List Pix Webhooks operationId: pixListWebhook responses: { "200": { description: Webhooks } } /v2/webhookrec: put: tags: [Webhooks] summary: Configure Recurring Pix Webhook operationId: pixConfigWebhookRecurrenceAutomatic responses: { "200": { description: Configured } } get: tags: [Webhooks] summary: List Recurring Pix Webhooks operationId: pixListWebhookRecurrenceAutomatic responses: { "200": { description: Webhooks } } delete: tags: [Webhooks] summary: Delete Recurring Pix Webhook operationId: pixDeleteWebhookRecurrenceAutomatic responses: { "204": { description: Deleted } } /v2/webhookcobr: put: tags: [Webhooks] summary: Configure Automatic Charge Webhook operationId: pixConfigWebhookAutomaticCharge responses: { "200": { description: Configured } } get: tags: [Webhooks] summary: List Automatic Charge Webhooks operationId: pixListWebhookAutomaticCharge responses: { "200": { description: Webhooks } } delete: tags: [Webhooks] summary: Delete Automatic Charge Webhook operationId: pixDeleteWebhookAutomaticCharge responses: { "204": { description: Deleted } } /v2/gn/webhook/reenviar: post: tags: [Webhooks] summary: Resend Pix Webhook operationId: pixResendWebhook responses: { "200": { description: Resent } } components: securitySchemes: oauth2Pix: type: oauth2 flows: clientCredentials: tokenUrl: https://pix.api.efipay.com.br/oauth/token scopes: cob.read: Read immediate charges cob.write: Create/update immediate charges cobv.read: Read due charges cobv.write: Create/update due charges pix.read: Read received Pix pix.write: Manage devolutions pix.send: Send Pix webhook.read: Read webhook config webhook.write: Configure webhooks gn.balance.read: Read account balance schemas: Cob: type: object properties: txid: { type: string } status: { type: string, enum: [ATIVA, CONCLUIDA, REMOVIDA_PELO_USUARIO_RECEBEDOR, REMOVIDA_PELO_PSP] } valor: type: object properties: original: { type: string } chave: { type: string, description: Receiver Pix key } calendario: type: object properties: criacao: { type: string, format: date-time } expiracao: { type: integer } devedor: type: object loc: type: object properties: id: { type: integer } location: { type: string } Pix: type: object properties: endToEndId: { type: string } txid: { type: string } valor: { type: string } horario: { type: string, format: date-time } infoPagador: { type: string } pagador: type: object