Referência da API

Sincronização de documentos

Mantenha o seu próprio sistema em dia: o que mudou, e cada documento em JSON, cXML ou UBL.

Mais sobre este recurso

Para um ERP ou sistema de faturamento ou de conciliação de recebimentos que acompanha a Pleaxy sem que ninguém redigite nada. ListSyncEvents diz o que mudou desde a sua última chamada (ou um webhook envia isso); depois você lê o documento: um pedido de compra como OrderRequest do cXML ou Order do UBL, a situação de uma fatura, uma fatura como Invoice do UBL, e cada pagamento com o seu aviso de pagamento. Todo documento é a cópia do fornecedor, seja quem for que peça: nunca as observações internas do comprador, as aprovações ou quem registrou um pagamento. O ERP ou o feed bancário de um comprador registra pagamentos com RecordPayments.

Listar eventos de sincronização

Lista o que mudou desde a sua última chamada, do mais antigo para o mais recente.

GET/v1/workspaces/{regionId}/sync/events

Parâmetros

  • afterstring

    O nextCursor da sua última chamada (um id de evento). Omita para começar do evento mais antigo.

  • limitinteger

    De 1-500 eventos por chamada. O padrão é 100.

Retorna

200 OK com o objeto mostrado na resposta.

Mais detalhes

O que mudou neste lado do espaço de trabalho, do mais antigo para o mais recente. Um evento indica um documento, nunca o conteúdo dele: leia o documento com a operação correspondente, para sempre receber a versão atual. Devolva nextCursor como after na próxima chamada; enquanto hasMore for true, chame de novo imediatamente. Os eventos ficam guardados por 30 dias e são entregues pelo menos uma vez, então a mesma mudança pode chegar duas vezes; os 5 segundos mais recentes aguardam a próxima chamada. Quem chama como Fornecedor recebe purchase_order.issued, changed, canceled e rejected, invoice.received, approved, rejected, paid, payment_withdrawn, remittance_sent e credit_applied, invoice.updated (um comprador colocou a fatura em espera para revisão, ou a liberou: leia GetInvoiceStatus), e credit_note.accepted e rejected. Quem chama como Comprador recebe invoice.received e credit_note.received (um fornecedor enviou um documento); invoice.updated (uma fatura foi aprovada, por uma pessoa ou automaticamente, ou rejeitada, ou o fornecedor dela confirmou ou denunciou os dados bancários); invoice.payment (um pagamento foi registrado ou retirado, um crédito quitou a fatura, ou um pagamento pela Pleaxy foi concluído ou falhou: leia GetInvoiceRemittance); purchase_order.updated (um pedido foi aprovado, rejeitado ou cancelado); e purchase_order.confirmed e purchase_order.shipped (leia GetPurchaseOrderFulfillment). Recebe só os tipos de documento que a sua função de compras pode ver.

Campos da resposta

  • events[].typestring

    O que aconteceu, como <document>.<change>, por exemplo invoice.paid.

  • events[].buyerWorkspaceIdstring

    Quem chama como Fornecedor: o ID do espaço de trabalho do comprador, para passar como ?buyer= ao ler o documento.

  • nextCursorstring

    Onde a sua próxima chamada começa. Ausente só antes do primeiro evento.

  • hasMoreboolean

    Há mais eventos aguardando: chame de novo imediatamente.

Erros

  • 400 Bad Request - after não é um id de evento, ou limit está fora do intervalo.
  • 401 Unauthorized - Nenhuma credencial foi apresentada, ou o token Bearer / valor de X-Api-Key está ausente, é inválido, expirou ou foi revogado.
  • 403 Forbidden - O token Bearer ou a chave de API de quem chama não dá acesso a este espaço de trabalho (regionId), ou não tem a função exigida.
GET /v1/workspaces/{regionId}/sync/events
Requisição
curl "$PLEAXY_API_BASE_URL/v1/workspaces/reg_01k5x8p9j3q7vn2mhb4tzc6rde.supplier/sync/events?after=EV-mgx2k9a1-0c4f81d2" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 200 OK
{
  "events": [
    { "id": "EV-mgx2kb7e-91a2c3d4", "at": "2026-10-23T10:02:11.402Z", "type": "invoice.paid", "documentType": "invoice", "documentId": "INV-3C9E71B2", "buyerWorkspaceId": "reg_01k5x8n2a7c4bq9wze0tkv3fjm.buyer" }
  ],
  "nextCursor": "EV-mgx2kb7e-91a2c3d4",
  "hasMore": false
}

Obter documento do pedido de compra

Retorna um pedido de compra emitido em cXML ou UBL.

GET/v1/workspaces/{regionId}/purchase-orders/{poId}/document

Parâmetros

  • poIdstringObrigatório

    O identificador do pedido de compra.

  • format"cxml" | "ubl"

    O formato do documento. O padrão é cxml.

  • buyerstring

    Quem chama como Fornecedor: o ID do espaço de trabalho do comprador, quando dois compradores emitiram o mesmo id.

Retorna

200 OK com o objeto mostrado na resposta.

Mais detalhes

Um pedido de compra emitido como documento que o seu sistema importa. format=cxml (o padrão) é um OrderRequest do cXML: tipo new, update a partir da versão 2, delete depois de cancelado. format=ubl é um Order do UBL 2.1, ou um OrderCancellation depois de cancelado. As duas partes são identificadas pelos IDs dos seus espaços de trabalho. É a cópia do fornecedor, seja quem for que peça. Um fornecedor cujos compradores compartilham um id de pedido adiciona ?buyer=<ID do espaço de trabalho do comprador>.

Erros

  • 400 Bad Request - format não é cxml nem ubl.
  • 404 Not Found - Nenhum pedido de compra com este id é seu.
  • 409 Conflict - Código ORDER_NOT_ISSUED: um rascunho, um pedido aguardando aprovação ou um pedido rejeitado nunca foi enviado ao fornecedor.
  • 401 Unauthorized - Nenhuma credencial foi apresentada, ou o token Bearer / valor de X-Api-Key está ausente, é inválido, expirou ou foi revogado.
  • 403 Forbidden - O token Bearer ou a chave de API de quem chama não dá acesso a este espaço de trabalho (regionId), ou não tem a função exigida.
GET /v1/workspaces/{regionId}/purchase-orders/{poId}/document
Requisição
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}/document" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 200 OK
application/xml

Obter documento da fatura

Retorna uma fatura como Invoice do UBL 2.1.

GET/v1/workspaces/{regionId}/invoices/{invoiceId}/document

Parâmetros

  • invoiceIdstringObrigatório

    O identificador da fatura.

  • format"ubl"

    O único formato, e o padrão.

  • buyerstring

    Quem chama como Fornecedor: o ID do espaço de trabalho do comprador, quando dois compradores emitiram o mesmo id.

Retorna

200 OK com o objeto mostrado na resposta.

Mais detalhes

Uma fatura como Invoice do UBL 2.1 (tipo 380, ou 383 para uma nota de débito), para o ERP do comprador lançar ou para o arquivo do fornecedor: as linhas, os descontos e cobranças no nível do documento, impostos e retenções, adiantamentos, as instruções de pagamento do fornecedor, e o pedido e o contrato que ela cobra. Os totais batem com o valor da fatura. É a visão do fornecedor, seja quem for que peça: sem conciliação, apontamentos ou aprovações.

Erros

  • 404 Not Found - Nenhuma fatura com este id é sua.
  • 401 Unauthorized - Nenhuma credencial foi apresentada, ou o token Bearer / valor de X-Api-Key está ausente, é inválido, expirou ou foi revogado.
  • 403 Forbidden - O token Bearer ou a chave de API de quem chama não dá acesso a este espaço de trabalho (regionId), ou não tem a função exigida.
GET /v1/workspaces/{regionId}/invoices/{invoiceId}/document
Requisição
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/{invoiceId}/document" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 200 OK
application/xml

Obter status da fatura

Retorna a situação de uma fatura, com os códigos de status padrão.

GET/v1/workspaces/{regionId}/invoices/{invoiceId}/status

Parâmetros

  • invoiceIdstringObrigatório

    O identificador da fatura.

  • buyerstring

    Quem chama como Fornecedor: o ID do espaço de trabalho do comprador, quando dois compradores emitiram o mesmo id.

Retorna

200 OK com o objeto mostrado na resposta.

Mais detalhes

A situação de uma fatura, para o sistema que a enviou ou para o que a paga, como um status com os códigos que os sistemas de faturamento eletrônico usam para ele. O equivalente em cXML ou UBL é GetInvoiceStatusDocument. É a visão do fornecedor, seja quem for que peça.

Campos da resposta

  • statusstring

    received: a conciliação ainda não rodou. in_process: aguardando aprovação. under_query: veja queryReason. approved: aprovada e não paga. payment_in_progress: um pagamento pela Pleaxy está em andamento. paid. rejected. duplicate: rejeitada como duplicada.

  • responseCodestring

    O status como UNCL4343, a lista de códigos da Peppol Invoice Response.

  • queryReasonstring

    Por que a fatura está em consulta: não corresponde ao pedido de compra, ou os dados bancários aguardam confirmação ou foram denunciados.

  • rejectionobject

    Quando rejeitada: o código do motivo (amount_incorrect, not_ordered_or_not_received, duplicate, missing_or_wrong_po, wrong_billing_entity, other) e a observação do comprador.

Erros

  • 404 Not Found - Nenhuma fatura com este id é sua.
  • 401 Unauthorized - Nenhuma credencial foi apresentada, ou o token Bearer / valor de X-Api-Key está ausente, é inválido, expirou ou foi revogado.
  • 403 Forbidden - O token Bearer ou a chave de API de quem chama não dá acesso a este espaço de trabalho (regionId), ou não tem a função exigida.
GET /v1/workspaces/{regionId}/invoices/{invoiceId}/status
Requisição
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/{invoiceId}/status" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 200 OK
{
   "invoiceId": "string",
   "invoiceNumber": "string",
   "documentType": "invoice" | "debit_note",
   "buyerWorkspaceId": "string",
   "purchaseOrderId": "string",
   "status": "received" | "in_process" | "under_query" | "approved" | "payment_in_progress" | "paid" | "rejected" | "duplicate",
   "responseCode": "AB" | "IP" | "UQ" | "AP" | "RE" | "PD",
   "cxmlStatus": "processing" | "reconciled" | "rejected" | "paying" | "paid",
   "queryReason": "discrepancy" | "bank_details_unconfirmed" | "bank_details_disputed",
   "rejection": { "reasonCode": "string", "reason": "string", "at": "string" },
   "issueDate": "string",
   "receivedAt": "string",
   "dueDate": "string",
   "total": { "amount": number, "currency": "string" },
   "amountDue": { "amount": number, "currency": "string" },
   "paid": boolean,
   "paidAt": "string"
}

Obter documento de status da fatura

Retorna o status de uma fatura em cXML ou UBL.

GET/v1/workspaces/{regionId}/invoices/{invoiceId}/status/document

Parâmetros

  • invoiceIdstringObrigatório

    O identificador da fatura.

  • format"cxml" | "ubl"

    O formato do documento. O padrão é cxml.

  • buyerstring

    Quem chama como Fornecedor: o ID do espaço de trabalho do comprador, quando dois compradores emitiram o mesmo id.

Retorna

200 OK com o objeto mostrado na resposta.

Mais detalhes

GetInvoiceStatus como documento. format=cxml (o padrão) é um StatusUpdateRequest do cXML com um InvoiceStatus; format=ubl é um ApplicationResponse do UBL 2.1 com os códigos da Peppol Invoice Response e, para uma rejeição, o motivo.

Erros

  • 400 Bad Request - format não é cxml nem ubl.
  • 404 Not Found - Nenhuma fatura com este id é sua.
  • 401 Unauthorized - Nenhuma credencial foi apresentada, ou o token Bearer / valor de X-Api-Key está ausente, é inválido, expirou ou foi revogado.
  • 403 Forbidden - O token Bearer ou a chave de API de quem chama não dá acesso a este espaço de trabalho (regionId), ou não tem a função exigida.
GET /v1/workspaces/{regionId}/invoices/{invoiceId}/status/document
Requisição
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/{invoiceId}/status/document" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 200 OK
application/xml

Obter aviso de pagamento da fatura

Retorna como e quando uma fatura foi paga, com os seus avisos de pagamento.

GET/v1/workspaces/{regionId}/invoices/{invoiceId}/remittance

Parâmetros

  • invoiceIdstringObrigatório

    O identificador da fatura.

  • buyerstring

    Quem chama como Fornecedor: o ID do espaço de trabalho do comprador, quando dois compradores emitiram o mesmo id.

Retorna

200 OK com o objeto mostrado na resposta.

Mais detalhes

O sinal de pagamento de uma fatura, para a conciliação de recebimentos do fornecedor: como e quando o comprador pagou, a referência, o que foi retido e o que chegou ao fornecedor, e os avisos de pagamento que o comprador enviou (observações e comprovantes de pagamento; GetRemittanceFile baixa um). A Pleaxy registra o que o comprador declara e não movimenta dinheiro. Nunca quem, do lado do comprador, o registrou. O equivalente em cXML ou UBL é GetInvoiceRemittanceDocument.

Campos da resposta

  • statusstring

    unpaid, recorded (o comprador registrou um pagamento feito fora da Pleaxy), processing ou paid_through_pleaxy (um pagamento pela Pleaxy), withdrawn (o comprador retirou o registro) ou failed (só para quem chama como Comprador: o pagamento mais recente pela Pleaxy falhou, em failedAt).

  • payment.methodstring

    Como foi pago. credit: liquidada por notas de crédito; nothing_due: aprovada por 0.

  • payment.adviceVersionnumber

    1 para o primeiro registro; um número maior substitui o aviso de pagamento anterior.

  • payment.netPaidobject

    O que chegou ao fornecedor, na moeda do valor devido: o valor devido menos o que foi retido.

Erros

  • 404 Not Found - Nenhuma fatura com este id é sua.
  • 401 Unauthorized - Nenhuma credencial foi apresentada, ou o token Bearer / valor de X-Api-Key está ausente, é inválido, expirou ou foi revogado.
  • 403 Forbidden - O token Bearer ou a chave de API de quem chama não dá acesso a este espaço de trabalho (regionId), ou não tem a função exigida.
GET /v1/workspaces/{regionId}/invoices/{invoiceId}/remittance
Requisição
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/{invoiceId}/remittance" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 200 OK
{
   "invoiceId": "string",
   "invoiceNumber": "string",
   "status": "unpaid" | "recorded" | "processing" | "paid_through_pleaxy" | "withdrawn" | "failed",
   "failedAt": "string",
   "paid": boolean,
   "paidAt": "string",
   "amountDue": { "amount": number, "currency": "string" },
   "payment": {
      "method": "ach" | "wire" | "check" | "card" | "other" | "credit" | "nothing_due" | "stripe",
      "paymentDate": "string",
      "reference": "string",
      "adviceVersion": number,
      "withheld": [ { "description": "string", "amount": number, "rate": number } ],
      "netPaid": { "amount": number, "currency": "string" },
      "paidInOtherCurrency": { "amount": number, "currency": "string", "rate": number, "rateDate": "string" }
   },
   "remittances": [ { "id": "string", "sentAt": "string", "note": "string", "file": { "fileName": "string", "contentType": "string", "sizeBytes": number } } ]
}

Obter documento de aviso de pagamento da fatura

Retorna o pagamento de uma fatura em cXML ou UBL.

GET/v1/workspaces/{regionId}/invoices/{invoiceId}/remittance/document

Parâmetros

  • invoiceIdstringObrigatório

    O identificador da fatura.

  • format"cxml" | "ubl"

    O formato do documento. O padrão é cxml.

  • buyerstring

    Quem chama como Fornecedor: o ID do espaço de trabalho do comprador, quando dois compradores emitiram o mesmo id.

Retorna

200 OK com o objeto mostrado na resposta.

Mais detalhes

GetInvoiceRemittance como documento. format=cxml (o padrão) é um PaymentRemittanceRequest do cXML; format=ubl é um RemittanceAdvice do UBL 2.1.

Erros

  • 400 Bad Request - format não é cxml nem ubl.
  • 404 Not Found - Nenhuma fatura com este id é sua.
  • 409 Conflict - Código NO_PAYMENT: nada foi pago ou registrado ainda. GetInvoiceRemittance informa o status.
  • 401 Unauthorized - Nenhuma credencial foi apresentada, ou o token Bearer / valor de X-Api-Key está ausente, é inválido, expirou ou foi revogado.
  • 403 Forbidden - O token Bearer ou a chave de API de quem chama não dá acesso a este espaço de trabalho (regionId), ou não tem a função exigida.
GET /v1/workspaces/{regionId}/invoices/{invoiceId}/remittance/document
Requisição
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/{invoiceId}/remittance/document" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 200 OK
application/xml

Registrar pagamentos

Registra pagamentos que o seu ERP ou banco já fez, até 50 por vez.

POST/v1/workspaces/{regionId}/invoices/payment-records

Corpo

  • paymentsArrayObrigatório

    De 1-50 pagamentos: { invoiceId, method, paymentDate, reference, note?, amount?, currency?, rate?, rateDate?, withholdings?, confirmReplaced? }, cada campo como em RecordPayment.

Retorna

200 OK com o objeto mostrado na resposta.

Mais detalhes

Registra pagamentos que o seu ERP ou feed bancário já fez fora da Pleaxy - transferências, cheques, ACH, cartão - para que cada fornecedor receba a notificação de pagamento, o aviso de pagamento e o evento de sincronização sem que ninguém redigite nada. Isto não movimenta dinheiro. Cada pagamento segue as regras de RecordPayment e é respondido individualmente; repetir um é seguro (already_recorded). Uma fatura aprovada por uma chave de API continua sendo recusada. note vira uma observação de aviso de pagamento para o fornecedor; um comprovante de pagamento só pode ser anexado por uma pessoa.

Só chave de API de comprador com o escopo payments:record, criada com uma procurementRole que possa editar faturas (administrator ou finance). Uma pessoa conectada usa RecordPayment.

Campos da resposta

  • results[].outcomestring

    recorded, already_recorded (o mesmo pagamento já tinha sido registrado), ou recusado com o status, o código e a mensagem que RecordPayment teria dado.

Erros

  • 400 Bad Request - O corpo não é válido: nenhum pagamento, mais de 50, ou um campo que RecordPayment não aceita. Nada é registrado.
  • 403 Forbidden - Código API_KEY_REQUIRED (uma pessoa conectada), API_KEY_SCOPE_MISSING (uma chave sem payments:record), ou uma função de compras que não pode editar faturas.
  • 429 Too Many Requests - Por pagamento, código RATE_LIMITED quando a chave já registrou 500 pagamentos hoje (UTC). Cada chamada que registra um pagamento também gera uma notificação payments_recorded_by_key no espaço de trabalho, com a chave e as faturas.
  • 401 Unauthorized - Nenhuma credencial foi apresentada, ou o token Bearer / valor de X-Api-Key está ausente, é inválido, expirou ou foi revogado.
POST /v1/workspaces/{regionId}/invoices/payment-records
Requisição
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/payment-records" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "payments": [
      { "invoiceId": "string", "method": "ach" | "wire" | "check" | "card" | "other", "paymentDate": "YYYY-MM-DD", "reference": "string", "note": "string" }
   ]
}
Resposta · 200 OK
{
   "results": [
      { "invoiceId": "string", "outcome": "recorded" | "already_recorded" | "refused", "status": number, "code": "string", "message": "string" }
   ],
   "recorded": number,
   "alreadyRecorded": number,
   "refused": number
}
Fale conosco