Referência da API

Pedidos de compra

Pedidos que um comprador faz a um fornecedor: suas linhas, valores, status e aprovação.

Mais sobre este recurso

Um pedido de compra compromete um comprador com um ou mais itens de linha junto a um fornecedor. Criar um pedido inicia uma cadeia de aprovação; depois de aprovado, ele pode ser transformado em fatura. Todo valor está na moeda da região - a moeda de um espaço de trabalho é a da sua região, definida no perfil da empresa - e a Pleaxy não converte moedas.

Listar pedidos de compra

Lista os pedidos de compra do espaço de trabalho, opcionalmente dentro de um intervalo de datas.

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

Parâmetros

  • fromstring

    Data/timestamp ISO 8601 - só são retornados os itens criados nessa data ou depois dela.

  • tostring

    Data/timestamp ISO 8601 - só são retornados os itens criados nessa data ou antes dela.

Retorna

200 OK com o objeto mostrado na resposta.

Mais detalhes

Lista todos os pedidos de compra do espaço de trabalho, sem ordem definida. Opcionalmente restrito a um intervalo de createdAt via from/to - passe os limites de um mês do calendário para ter uma visão por mês. Quem chama como Fornecedor recebe uma visão reduzida de cada pedido (veja GetPurchaseOrder) - a contabilidade interna do comprador e o fluxo de aprovação completo ficam ocultos.

Erros

  • 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
Requisição
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 200 OK
[
   {
      "id": "string",
      "buyerOrgId": "string",
      "supplierOrgId": "string",
      "supplier": "string",
      "amount": number,
      "currency": "string",
      "status": "draft" | "pending_approval" | "rejected" | "awaiting_fulfillment" | "invoiced" | "paid" | "canceled" | "closed" | "expired",
      "invoiceId": "string",
      "provider": "aws" | "gcp" | "azure" | "oci",
      "payerAccounts": [
         { "id": "string", "label": "string", "detail": "string" }
      ],
      "billToParty": {
         "source": "company_profile" | "custom",
         "companyName": "string",
         "address": { "line1": "string", "line2": "string", "city": "string", "region": "string", "postalCode": "string", "country": "string" },
         "addressText": "string",
         "taxId": "string"
      },
      "costCenter": "string",
      "costCenterChanges": [ { "from": "string", "to": "string", "reason": "string", "by": "string", "byName": "string", "at": "string" } ],
      "budgetOwner": "string",
      "buyerName": "string",
      "supplierSite": "string",
      "notes": "string",
      "requestId": "string",
      "lineItems": [
         {
         "lineNo": number,
         "scopeType": "sku" | "service" | "account" | "custom",
         "scopeId": "string" | null,
         "name": "string",
         "ruleType": "quantity" | "amount",
         "unit": "string",
         "unitPrice": number,
         "qty": number,
         "nteAmount": number,
         "lineType": "goods" | "service",
         "currency": "string",
         "paymentTerms": "string",
         "validFrom": "string",
         "validUntil": "string",
         "consumed": number,
         "customerLineNo": "string",
         "supplierSku": "string",
         "priceSource": "contract" | "list" | "manual"
       }
      ],
      "approval": {
         "requester": "string",
         "requesterEmployeeKey": "string",
         "groups": [
           {
             "id": "string",
             "mode": "sequential" | "parallel",
             "label": "string",
             "status": "pending" | "approved" | "rejected",
             "stages": [
               { "id": "string", "label": "string", "approverEmployeeKey": "string", "approverName": "string", "status": "pending" | "approved" | "rejected" }
             ]
           }
         ],
         "groupIndex": number,
         "status": "pending" | "approved" | "rejected",
         "history": [
           { "stage": "string", "by": "string", "at": "string", "action": "approved" | "rejected" | "limit_exceeded" | "reassigned" | "skipped" }
         ],
         "autonomy": boolean,
         "selfApproved": boolean
       },
      "supplierEmail": { "to": "string", "at": "string" },
      "priorInvoiced": { "amount": number, "currency": "string", "basis": "invoiced" | "remaining", "sourceSystem": "sap_ariba" | "coupa" | "oracle", "importId": "string", "fileName": "string", "importedAt": "string", "importedBy": "string" },
      "createdAt": "string"
   }
]

Obter pedido de compra

Recupera um pedido de compra.

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

Parâmetros

  • poIdstringObrigatório

    O identificador do pedido de compra.

  • buyerstring

    Só para quem chama como Fornecedor, e só necessário depois de um 409 *_ID_AMBIGUOUS: o ID do espaço de trabalho do comprador (terminado em .buyer) ou o id da região, da lista buyers do 409. Só o documento desse comprador é considerado; se não houver nenhum ali, é 404. Um ID de espaço de trabalho .supplier é 400 BUYER_QUALIFIER_INVALID ("The buyer parameter must be one buyer's Workspace ID (ending in .buyer), from the buyers list in the 409 response."). Ignorado para quem chama como Comprador.

Retorna

200 OK com o objeto mostrado na resposta.

Mais detalhes

Busca um único pedido de compra pelo id. Para quem chama como Comprador, regionId é o próprio espaço de trabalho do pedido. Para quem chama como Fornecedor, regionId é o próprio espaço de trabalho do fornecedor, e o pedido é procurado entre os pedidos de compra recebidos pela organização, seja qual for o espaço de trabalho de comprador que o emitiu.

Campos da resposta

  • priorInvoicedobject

    Só em um pedido criado por uma importação de lista que trazia um valor já faturado pelo sistema anterior do comprador. amount (na moeda do pedido) conta para o total faturado do pedido, para que o saldo restante fique correto. basis indica se o arquivo trazia o valor faturado ou o saldo restante a partir do qual ele foi calculado, e sourceSystem, como qual exportação a lista foi lida. importId, fileName e importedBy são retornados só ao comprador.

  • billToPartyobject

    Para quem o fornecedor fatura: companyName, o endereço em campos separados (address) ou, para um endereço de uma linha, addressText, e taxId. Uma cópia, não um vínculo: source "company_profile" são os dados de faturamento do perfil da empresa do comprador como estavam quando o pedido foi criado, de modo que o pedido mantém o endereço com que foi emitido quando o perfil muda depois; "custom" foi informado no pedido. Uma fatura contra o pedido pega daqui os dados do comprador. Ausente em pedidos criados antes de esse campo existir, que têm o billTo em texto livre.

  • supplierEmailobject

    Quando o pedido emitido foi enviado por e-mail ao fornecedor como PDF, e para qual endereço. Definido uma única vez; ausente quando não foi enviado por e-mail (sem e-mail de contato, um provedor de nuvem, ou o pedido ainda não foi emitido).

  • costCenterChangesArray

    Só para o comprador. Cada alteração em costCenter feita depois que o pedido foi finalizado, da mais antiga para a mais recente: from (ausente quando não havia nenhum), to, reason, quem (by, byName) e quando. Veja ChangeFinishedPurchaseOrderCostCenter.

Erros

  • 404 Not Found - Não existe pedido com este id no espaço de trabalho de quem chama.
  • 409 Conflict - Só para quem chama como Fornecedor. Código PO_ID_AMBIGUOUS: mais de um dos seus compradores emitiu um pedido de compra com este id (os ids são únicos só dentro de um comprador), então a Pleaxy não tenta adivinhar a qual você se refere. Nada é lido nem alterado. O campo buyers do corpo lista o ID do espaço de trabalho e o nome de cada comprador: repita a chamada com ?buyer=<esse ID do espaço de trabalho>.
  • 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}
Requisição
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 200 OK
{
   "id": "string",
   "buyerOrgId": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "amount": number,
   "currency": "string",
   "status": "draft" | "pending_approval" | "rejected" | "awaiting_fulfillment" | "invoiced" | "paid" | "canceled" | "closed" | "expired",
   "invoiceId": "string",
   "provider": "aws" | "gcp" | "azure" | "oci",
   "payerAccounts": [
      { "id": "string", "label": "string", "detail": "string" }
   ],
   "billToParty": {
      "source": "company_profile" | "custom",
      "companyName": "string",
      "address": { "line1": "string", "line2": "string", "city": "string", "region": "string", "postalCode": "string", "country": "string" },
      "addressText": "string",
      "taxId": "string"
   },
   "costCenter": "string",
   "costCenterChanges": [ { "from": "string", "to": "string", "reason": "string", "by": "string", "byName": "string", "at": "string" } ],
   "budgetOwner": "string",
   "buyerName": "string",
   "supplierSite": "string",
   "notes": "string",
   "requestId": "string",
   "lineItems": [
      {
      "lineNo": number,
      "scopeType": "sku" | "service" | "account" | "custom",
      "scopeId": "string" | null,
      "name": "string",
      "ruleType": "quantity" | "amount",
      "unit": "string",
      "unitPrice": number,
      "qty": number,
      "nteAmount": number,
      "lineType": "goods" | "service",
      "currency": "string",
      "paymentTerms": "string",
      "validFrom": "string",
      "validUntil": "string",
      "consumed": number,
      "customerLineNo": "string",
      "supplierSku": "string",
      "priceSource": "contract" | "list" | "manual"
    }
   ],
   "approval": {
      "requester": "string",
      "requesterEmployeeKey": "string",
      "groups": [
        {
          "id": "string",
          "mode": "sequential" | "parallel",
          "label": "string",
          "status": "pending" | "approved" | "rejected",
          "stages": [
            { "id": "string", "label": "string", "approverEmployeeKey": "string", "approverName": "string", "status": "pending" | "approved" | "rejected" }
          ]
        }
      ],
      "groupIndex": number,
      "status": "pending" | "approved" | "rejected",
      "history": [
        { "stage": "string", "by": "string", "at": "string", "action": "approved" | "rejected" | "limit_exceeded" | "reassigned" | "skipped" }
      ],
      "autonomy": boolean,
      "selfApproved": boolean
    },
   "supplierEmail": { "to": "string", "at": "string" },
   "priorInvoiced": { "amount": number, "currency": "string", "basis": "invoiced" | "remaining", "sourceSystem": "sap_ariba" | "coupa" | "oracle", "importId": "string", "fileName": "string", "importedAt": "string", "importedBy": "string" },
   "createdAt": "string"
}

Obter PDF do pedido de compra

Baixa um pedido de compra em PDF.

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

Parâmetros

  • poIdstringObrigatório

    O identificador do pedido de compra.

  • buyerstring

    Só para quem chama como Fornecedor, e só necessário depois de um 409 *_ID_AMBIGUOUS: o ID do espaço de trabalho do comprador (terminado em .buyer) ou o id da região, da lista buyers do 409. Só o documento desse comprador é considerado; se não houver nenhum ali, é 404. Um ID de espaço de trabalho .supplier é 400 BUYER_QUALIFIER_INVALID ("The buyer parameter must be one buyer's Workspace ID (ending in .buyer), from the buyers list in the 409 response."). Ignorado para quem chama como Comprador.

Retorna

200 OK com o objeto mostrado na resposta.

Mais detalhes

O pedido de compra em PDF, para baixar, imprimir ou encaminhar: seu logotipo, o destinatário da cobrança (billToParty, com endereço e identificação fiscal), o fornecedor, a data do pedido, a moeda, as condições de pagamento, o número da cotação do fornecedor, as linhas e o total, e como faturá-lo. É a via do fornecedor, seja quem for que peça - sem centro de custo, responsável pelo orçamento, notas ou aprovações - e um pedido em rascunho, pendente, rejeitado ou cancelado diz claramente que não deve ser atendido. O mesmo PDF vai anexado ao e-mail que o fornecedor recebe quando o pedido é emitido. Envie Accept: application/pdf, ou o corpo volta codificado em base64.

Erros

  • 404 Not Found - Não existe pedido com este id no espaço de trabalho de quem chama.
  • 409 Conflict - Só para quem chama como Fornecedor. Código PO_ID_AMBIGUOUS: mais de um dos seus compradores emitiu um pedido de compra com este id (os ids são únicos só dentro de um comprador), então a Pleaxy não tenta adivinhar a qual você se refere. Nada é lido nem alterado. O campo buyers do corpo lista o ID do espaço de trabalho e o nome de cada comprador: repita a chamada com ?buyer=<esse ID do espaço de trabalho>.
  • 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}/pdf
Requisição
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}/pdf" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 200 OK
application/pdf

Criar pedido de compra

Cria um pedido de compra ou o salva como rascunho.

POST/v1/workspaces/{regionId}/purchase-orders

Corpo

  • poNumberstring

    Seu próprio número de pedido para usar como id deste pedido em vez de um gerado, por exemplo PO-2026-0042. Letras, números, '.', '_' e '-', até 40 caracteres, único dentro da região.

  • supplierstringObrigatório

    Nome de exibição do fornecedor / contraparte.

  • supplierRegionIdstring

    regionId da organização de fornecedor integrada para a qual este pedido é emitido, se conhecido. Você precisa ter uma conexão de fornecedor aprovada com ela; qualquer outra região é recusada. Vincula o pedido ao espaço de trabalho de fornecedor real dessa organização, em vez de só um nome em texto livre.

  • currencystring

    ISO 4217: a moeda em que o pedido é cotado. Para um fornecedor na Pleaxy (supplierRegionId), uma das moedas em que a região dele cota, por padrão a moeda principal (caso contrário, 400 PO_CURRENCY_NOT_OFFERED). Para um provedor de nuvem ou um fornecedor fora da Pleaxy, qualquer código; por padrão a moeda "Fatura em" que você definiu para esse fornecedor (SetSupplierCurrencies) ou, se não houver, a do seu espaço de trabalho. Todas as linhas ficam nessa moeda. Um pedido em uma moeda diferente da do seu espaço de trabalho passa por todas as etapas de aprovação e nunca é aprovado automaticamente, porque os limites de aprovação estão na moeda do seu espaço de trabalho.

  • supplierContactEmailstring

    Só para um fornecedor fora da Pleaxy (sem supplierRegionId nem provider): o e-mail de contato dele. Quando o pedido é enviado, agora ou quando um rascunho é submetido, a Pleaxy o convida, ou vincula o fornecedor que este espaço de trabalho já tem.

  • provider"aws" | "gcp" | "azure" | "oci"

    Provedor de nuvem coberto por este pedido, se houver.

  • payerAccountsArray<{ id, label, detail }>

    Só com provider: as conexões de nuvem desse provedor nesta região às quais o pedido se aplica, por id. Uma conexão ainda em configuração é recusada. O pedido guarda o rótulo e o detalhe próprios de cada conexão; os que você envia são ignorados, mas precisam ser strings.

  • billToParty{ companyName?, address, taxId? }

    Para quem o fornecedor fatura, quando não são os dados de faturamento do perfil da sua empresa. companyName (até 200 caracteres) tem como padrão o nome da sua empresa; address aceita os mesmos campos e regras por país que billingAddressParts de UpdateOrgProfile; taxId tem até 64 caracteres. Se omitido, o pedido copia o nome, o endereço de faturamento e a identificação fiscal do perfil da sua empresa como estão agora.

  • billTostring

    Obsoleto: use billToParty. Um endereço de cobrança de uma linha para a sua empresa, até 500 caracteres, guardado como digitado. Ignorado quando billToParty é enviado.

  • costCenterstring

    Código interno do centro de custo.

  • budgetOwnerstring

    Nome do responsável pelo orçamento.

  • buyerNamestring

    Nome do contato do comprador; também usado como solicitante da cadeia de aprovação, se definido.

  • supplierSitestring

    Identificador do site ou local do fornecedor.

  • notesstring

    Observações em texto livre.

  • contractIdstring

    O seu contrato ativo com este fornecedor ao qual o pedido pertence. Linhas sem paymentTerms recebem as condições de pagamento padrão dele, e as faturas contra o pedido são verificadas em relação a ele.

  • draftboolean

    Salva como rascunho em vez de enviar para aprovação. Envie depois com SubmitPurchaseOrderDraft.

  • lineItemsArray<LineItem>Obrigatório

    Pelo menos um item de linha. Cada item: scopeType ("sku" | "service" | "account" | "custom"), scopeId, name, ruleType ("quantity" | "amount"), unit, unitPrice, qty, nteAmount, currency (opcional), paymentTerms (opcional, até 40 caracteres: se omitido, a linha recebe as condições de pagamento padrão do contrato de onde veio o preço ou do contrato que o pedido indica em contractId, senão as do item de catálogo, senão "Net 30"), validFrom, validUntil, customerLineNo (opcional: seu próprio número para a linha, até 40 caracteres, exibido ao lado do lineNo do servidor), lineType (opcional: "goods", bens despachados e recebidos com um recebimento de mercadorias, ou "service", trabalho como suporte ou treinamento, confirmado com uma folha de registro de serviços e nunca despachado; se omitido, a linha recebe o tipo do seu item de catálogo, senão é um serviço quando sua unidade é de tempo, como hr, day ou month, e bens nos demais casos). Toda linha fica na moeda da região, que o servidor preenche - omita currency, ou envie a moeda da região (em qualquer caixa). A Pleaxy não converte moedas, então qualquer outra moeda é recusada.

  • lineItems[].ai{ invoicer, vendor, model, meter, region? }

    Uma linha de IA (controles de gastos com IA): quem a fatura, o fornecedor do modelo, o id do modelo como faturado, o medidor (input_tokens, output_tokens, cached_input_tokens, batch_input_tokens, gpu_hours, ..., ou prepaid_credit para uma compra de crédito pré-pago) e a região, onde o preço varia por região. Uma linha por quantidade na unidade do medidor (milhões de tokens, horas). As linhas de IA de uma fatura são associadas a estas pelo escopo, nunca pela descrição. SuggestAiPoLines as preenche previamente.

Retorna

201 Created com o objeto mostrado na resposta.

Mais detalhes

Cria um pedido de compra a partir de um ou mais itens de linha, ou o salva como rascunho. O valor total é a soma do valor de cada linha (qty × unitPrice para uma linha com regra de quantidade, ou nteAmount para uma linha com regra de valor). A menos que seja um rascunho, sua cadeia de aprovação é montada na hora a partir do fluxo de aprovação de pedidos de compra da região, das configurações de autonomia, das regras de automação e dos limites de gastos. Se for aprovado automaticamente, o pedido é criado direto no status awaiting_fulfillment em vez de pending_approval. Quando um pedido é emitido (awaiting_fulfillment, agora ou na aprovação final), o fornecedor é notificado e, a menos que seja um provedor de nuvem, recebe o pedido por e-mail como PDF (veja GetPurchaseOrderPdf) - em supplierContactEmail ou, se não houver, no contato do seu cadastro do fornecedor - com o solicitante como Reply-To. Enviado uma vez por pedido e registrado como supplierEmail; uma falha no e-mail nunca faz o pedido falhar.

Campos da resposta

  • idstring

    Identificador do pedido, por exemplo "PO-AB12CD34".

  • statusstring

    "pending_approval", ou "awaiting_fulfillment" se o valor foi aprovado automaticamente.

  • amountnumber

    Soma dos valores de todos os itens de linha.

  • currencystring

    Código ISO 4217 em que o pedido e todas as linhas estão - a moeda da região, definida pelo servidor.

  • approvalApprovalChain

    A cadeia de aprovação montada para este pedido.

  • lineItemsArray<LineItem>

    Cada item de linha como foi armazenado, mais lineNo e consumed (começa em 0).

Erros

  • 400 Bad Request - A validação falhou (inclusive um endereço de billToParty sem uma parte que o país exige), a moeda de um item de linha não é a moeda da região ("Line items must be in this region's currency (EUR). Pleaxy doesn't convert currencies."), ou o plano da região atingiu o limite de pedidos de compra em 30 dias corridos (plano Free: 10 a cada 30 dias corridos).
  • 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.
POST /v1/workspaces/{regionId}/purchase-orders
Requisição
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/reg_01k5x8p9j3q7vn2mhb4tzc6rde.buyer/purchase-orders" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "supplier": "Amazon Web Services",
    "provider": "aws",
    "lineItems": [
      {
        "scopeType": "sku",
        "scopeId": "AWS-EC2-M5LG",
        "name": "EC2 m5.large",
        "ruleType": "quantity",
        "unit": "hr",
        "unitPrice": 0.096,
        "qty": 5000,
        "nteAmount": 0,
        "paymentTerms": "Net 30",
        "validFrom": "2026-01-01",
        "validUntil": "2026-12-31"
      }
    ]
  }'
Resposta · 201 Created
{
  "id": "PO-AB12CD34",
  "buyerOrgId": "org_buyer_us-east-1",
  "supplier": "Amazon Web Services",
  "amount": 480,
  "currency": "USD",
  "status": "pending_approval",
  "provider": "aws",
  "lineItems": [
    {
      "lineNo": 1,
      "scopeType": "sku",
      "scopeId": "AWS-EC2-M5LG",
      "name": "EC2 m5.large",
      "ruleType": "quantity",
      "unit": "hr",
      "unitPrice": 0.096,
      "qty": 5000,
      "nteAmount": 0,
      "currency": "USD",
      "paymentTerms": "Net 30",
      "validFrom": "2026-01-01",
      "validUntil": "2026-12-31",
      "consumed": 0
    }
  ],
  "approval": {
    "requester": "Amazon Web Services",
    "groups": [
      {
        "id": "g1",
        "mode": "sequential",
        "status": "pending",
        "stages": [
          { "id": "cost-owner", "label": "Cost owner", "approverEmployeeKey": "us-east-1a2b3c4d", "approverName": "Jamie Rivera", "status": "pending" }
        ]
      },
      {
        "id": "g2",
        "mode": "sequential",
        "status": "pending",
        "stages": [
          { "id": "finance", "label": "Finance", "approverEmployeeKey": "us-east-1e5f6g7h", "approverName": "Priya Nair", "status": "pending" }
        ]
      }
    ],
    "groupIndex": 0,
    "status": "pending",
    "history": []
  },
  "createdAt": "2026-01-15T18:04:22.000Z"
}

Atualizar pedido de compra

Atualiza os dados ou os itens de linha de um pedido de compra.

PATCH/v1/workspaces/{regionId}/purchase-orders/{poId}

Parâmetros

  • poIdstringObrigatório

    O identificador do pedido de compra.

Corpo

  • lineItemsArray<LineItem>

    Substitui todos os itens de linha, no mesmo formato de CreatePurchaseOrder. Pelo menos um.

  • billToParty{ companyName?, address, taxId? } | null

    Para quem o fornecedor fatura, como em CreatePurchaseOrder. null copia os dados de faturamento do perfil da sua empresa como estão agora. É um campo contábil: nunca manda o pedido de volta para aprovação.

  • billTostring

    Obsoleto: use billToParty. Um endereço de cobrança de uma linha, até 500 caracteres; uma string vazia copia o do perfil da empresa. Ignorado quando billToParty é enviado.

  • costCenterstring

    Código interno do centro de custo.

  • budgetOwnerstring

    Nome do responsável pelo orçamento.

  • buyerNamestring

    Nome do contato do comprador.

  • notesstring

    Observações em texto livre.

Retorna

200 OK com o objeto mostrado na resposta.

Mais detalhes

Atualiza os campos contábeis de um pedido de compra ou substitui seus itens de linha. Não é permitido depois que ele está fechado, cancelado ou pago. Enviar lineItems substitui o conjunto inteiro, recalcula o valor e remonta a cadeia de aprovação do zero, descartando as aprovações já obtidas: um rascunho continua rascunho; caso contrário, o pedido passa a awaiting_fulfillment se a nova cadeia aprovar automaticamente, ou a pending_approval se precisar de uma pessoa. Assim, aumentar o total de um pedido aprovado pode mandá-lo de volta para aprovação. Os limites de gastos são verificados tanto para o solicitante do pedido quanto para quem está editando. Para lançar um pedido fechado, cancelado ou pago em outro centro de custo, use ChangeFinishedPurchaseOrderCostCenter.

Erros

  • 400 Bad Request - A validação falhou; o pedido está fechado, cancelado ou pago ("PO '{poId}' can't be edited once it's {status}"); ou a moeda de uma linha não é a moeda da região.
  • 404 Not Found - Não existe pedido com este id no espaço de trabalho.
  • 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.
PATCH /v1/workspaces/{regionId}/purchase-orders/{poId}
Requisição
curl -X PATCH "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 200 OK
{
   "id": "string",
   "buyerOrgId": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "amount": number,
   "currency": "string",
   "status": "draft" | "pending_approval" | "rejected" | "awaiting_fulfillment" | "invoiced" | "paid" | "canceled" | "closed" | "expired",
   "invoiceId": "string",
   "provider": "aws" | "gcp" | "azure" | "oci",
   "payerAccounts": [
      { "id": "string", "label": "string", "detail": "string" }
   ],
   "billToParty": {
      "source": "company_profile" | "custom",
      "companyName": "string",
      "address": { "line1": "string", "line2": "string", "city": "string", "region": "string", "postalCode": "string", "country": "string" },
      "addressText": "string",
      "taxId": "string"
   },
   "costCenter": "string",
   "costCenterChanges": [ { "from": "string", "to": "string", "reason": "string", "by": "string", "byName": "string", "at": "string" } ],
   "budgetOwner": "string",
   "buyerName": "string",
   "supplierSite": "string",
   "notes": "string",
   "requestId": "string",
   "lineItems": [
      {
      "lineNo": number,
      "scopeType": "sku" | "service" | "account" | "custom",
      "scopeId": "string" | null,
      "name": "string",
      "ruleType": "quantity" | "amount",
      "unit": "string",
      "unitPrice": number,
      "qty": number,
      "nteAmount": number,
      "lineType": "goods" | "service",
      "currency": "string",
      "paymentTerms": "string",
      "validFrom": "string",
      "validUntil": "string",
      "consumed": number,
      "customerLineNo": "string",
      "supplierSku": "string",
      "priceSource": "contract" | "list" | "manual"
    }
   ],
   "approval": {
      "requester": "string",
      "requesterEmployeeKey": "string",
      "groups": [
        {
          "id": "string",
          "mode": "sequential" | "parallel",
          "label": "string",
          "status": "pending" | "approved" | "rejected",
          "stages": [
            { "id": "string", "label": "string", "approverEmployeeKey": "string", "approverName": "string", "status": "pending" | "approved" | "rejected" }
          ]
        }
      ],
      "groupIndex": number,
      "status": "pending" | "approved" | "rejected",
      "history": [
        { "stage": "string", "by": "string", "at": "string", "action": "approved" | "rejected" | "limit_exceeded" | "reassigned" | "skipped" }
      ],
      "autonomy": boolean,
      "selfApproved": boolean
    },
   "supplierEmail": { "to": "string", "at": "string" },
   "priorInvoiced": { "amount": number, "currency": "string", "basis": "invoiced" | "remaining", "sourceSystem": "sap_ariba" | "coupa" | "oracle", "importId": "string", "fileName": "string", "importedAt": "string", "importedBy": "string" },
   "createdAt": "string"
}

Enviar rascunho de pedido de compra

Envia um rascunho de pedido de compra para aprovação.

POST/v1/workspaces/{regionId}/purchase-orders/{poId}/submit

Parâmetros

  • poIdstringObrigatório

    O identificador do pedido de compra.

Retorna

201 Created com o objeto mostrado na resposta.

Mais detalhes

Envia um rascunho para aprovação. A cadeia de aprovação é montada agora, a partir do fluxo de aprovação, das configurações de autonomia e dos limites de gastos atuais, e não dos que valiam quando o rascunho foi salvo, e as linhas assumem a moeda atual da região. Os limites de gastos são verificados tanto para o solicitante do rascunho quanto para quem o envia. Um fornecedor fora da Pleaxy com supplierContactEmail é convidado agora. Não recebe corpo.

Erros

  • 400 Bad Request - O pedido não é um rascunho ("PO '{poId}' isn't a draft"), ou ultrapassa um limite de gastos que indica como aprovador a pessoa que o envia, o que deixaria ninguém apto a aprová-lo ("Not submitted. This draft is over a spend limit that names you as its approver…").
  • 404 Not Found - Não existe pedido com este id no espaço de trabalho.
  • 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.
POST /v1/workspaces/{regionId}/purchase-orders/{poId}/submit
Requisição
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}/submit" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 201 Created
{
   "id": "string",
   "buyerOrgId": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "amount": number,
   "currency": "string",
   "status": "draft" | "pending_approval" | "rejected" | "awaiting_fulfillment" | "invoiced" | "paid" | "canceled" | "closed" | "expired",
   "invoiceId": "string",
   "provider": "aws" | "gcp" | "azure" | "oci",
   "payerAccounts": [
      { "id": "string", "label": "string", "detail": "string" }
   ],
   "billToParty": {
      "source": "company_profile" | "custom",
      "companyName": "string",
      "address": { "line1": "string", "line2": "string", "city": "string", "region": "string", "postalCode": "string", "country": "string" },
      "addressText": "string",
      "taxId": "string"
   },
   "costCenter": "string",
   "costCenterChanges": [ { "from": "string", "to": "string", "reason": "string", "by": "string", "byName": "string", "at": "string" } ],
   "budgetOwner": "string",
   "buyerName": "string",
   "supplierSite": "string",
   "notes": "string",
   "requestId": "string",
   "lineItems": [
      {
      "lineNo": number,
      "scopeType": "sku" | "service" | "account" | "custom",
      "scopeId": "string" | null,
      "name": "string",
      "ruleType": "quantity" | "amount",
      "unit": "string",
      "unitPrice": number,
      "qty": number,
      "nteAmount": number,
      "lineType": "goods" | "service",
      "currency": "string",
      "paymentTerms": "string",
      "validFrom": "string",
      "validUntil": "string",
      "consumed": number,
      "customerLineNo": "string",
      "supplierSku": "string",
      "priceSource": "contract" | "list" | "manual"
    }
   ],
   "approval": {
      "requester": "string",
      "requesterEmployeeKey": "string",
      "groups": [
        {
          "id": "string",
          "mode": "sequential" | "parallel",
          "label": "string",
          "status": "pending" | "approved" | "rejected",
          "stages": [
            { "id": "string", "label": "string", "approverEmployeeKey": "string", "approverName": "string", "status": "pending" | "approved" | "rejected" }
          ]
        }
      ],
      "groupIndex": number,
      "status": "pending" | "approved" | "rejected",
      "history": [
        { "stage": "string", "by": "string", "at": "string", "action": "approved" | "rejected" | "limit_exceeded" | "reassigned" | "skipped" }
      ],
      "autonomy": boolean,
      "selfApproved": boolean
    },
   "supplierEmail": { "to": "string", "at": "string" },
   "priorInvoiced": { "amount": number, "currency": "string", "basis": "invoiced" | "remaining", "sourceSystem": "sap_ariba" | "coupa" | "oracle", "importId": "string", "fileName": "string", "importedAt": "string", "importedBy": "string" },
   "createdAt": "string"
}

Cancelar pedido de compra

Cancela um pedido de compra que ainda não foi atendido.

POST/v1/workspaces/{regionId}/purchase-orders/{poId}/cancel

Parâmetros

  • poIdstringObrigatório

    O identificador do pedido de compra.

Corpo

  • reasonstring

    Até 500 caracteres. O fornecedor vê exatamente como foi escrito.

Retorna

201 Created com o objeto mostrado na resposta.

Mais detalhes

Cancela um pedido de compra que está em rascunho, aguardando aprovação, aguardando atendimento ou expirado. É o comprador interrompendo o pedido, não um aprovador rejeitando-o. O fornecedor é avisado, com o seu motivo, se você informar um.

Erros

  • 400 Bad Request - O pedido está em um status que não pode ser cancelado ("PO '{poId}' can't be canceled once it's {status}"), ou reason passa de 500 caracteres.
  • 404 Not Found - Não existe pedido com este id no espaço de trabalho.
  • 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.
POST /v1/workspaces/{regionId}/purchase-orders/{poId}/cancel
Requisição
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}/cancel" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "reason": "string"
}
Resposta · 201 Created
{
   "id": "string",
   "buyerOrgId": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "amount": number,
   "currency": "string",
   "status": "draft" | "pending_approval" | "rejected" | "awaiting_fulfillment" | "invoiced" | "paid" | "canceled" | "closed" | "expired",
   "invoiceId": "string",
   "provider": "aws" | "gcp" | "azure" | "oci",
   "payerAccounts": [
      { "id": "string", "label": "string", "detail": "string" }
   ],
   "billToParty": {
      "source": "company_profile" | "custom",
      "companyName": "string",
      "address": { "line1": "string", "line2": "string", "city": "string", "region": "string", "postalCode": "string", "country": "string" },
      "addressText": "string",
      "taxId": "string"
   },
   "costCenter": "string",
   "costCenterChanges": [ { "from": "string", "to": "string", "reason": "string", "by": "string", "byName": "string", "at": "string" } ],
   "budgetOwner": "string",
   "buyerName": "string",
   "supplierSite": "string",
   "notes": "string",
   "requestId": "string",
   "lineItems": [
      {
      "lineNo": number,
      "scopeType": "sku" | "service" | "account" | "custom",
      "scopeId": "string" | null,
      "name": "string",
      "ruleType": "quantity" | "amount",
      "unit": "string",
      "unitPrice": number,
      "qty": number,
      "nteAmount": number,
      "lineType": "goods" | "service",
      "currency": "string",
      "paymentTerms": "string",
      "validFrom": "string",
      "validUntil": "string",
      "consumed": number,
      "customerLineNo": "string",
      "supplierSku": "string",
      "priceSource": "contract" | "list" | "manual"
    }
   ],
   "approval": {
      "requester": "string",
      "requesterEmployeeKey": "string",
      "groups": [
        {
          "id": "string",
          "mode": "sequential" | "parallel",
          "label": "string",
          "status": "pending" | "approved" | "rejected",
          "stages": [
            { "id": "string", "label": "string", "approverEmployeeKey": "string", "approverName": "string", "status": "pending" | "approved" | "rejected" }
          ]
        }
      ],
      "groupIndex": number,
      "status": "pending" | "approved" | "rejected",
      "history": [
        { "stage": "string", "by": "string", "at": "string", "action": "approved" | "rejected" | "limit_exceeded" | "reassigned" | "skipped" }
      ],
      "autonomy": boolean,
      "selfApproved": boolean
    },
   "supplierEmail": { "to": "string", "at": "string" },
   "priorInvoiced": { "amount": number, "currency": "string", "basis": "invoiced" | "remaining", "sourceSystem": "sap_ariba" | "coupa" | "oracle", "importId": "string", "fileName": "string", "importedAt": "string", "importedBy": "string" },
   "createdAt": "string"
}

Fechar pedido de compra

Fecha um pedido de compra que não tem mais nada a faturar.

POST/v1/workspaces/{regionId}/purchase-orders/{poId}/close

Parâmetros

  • poIdstringObrigatório

    O identificador do pedido de compra.

Retorna

201 Created com o objeto mostrado na resposta.

Mais detalhes

Encerra um pedido de compra que está aguardando atendimento, faturado, pago ou expirado, por exemplo um totalmente usado sem nada mais a faturar. Um pedido fechado não pode ser editado. Não recebe corpo.

Erros

  • 400 Bad Request - O pedido está em um status que não pode ser fechado ("PO '{poId}' can't be closed while it's {status}").
  • 404 Not Found - Não existe pedido com este id no espaço de trabalho.
  • 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.
POST /v1/workspaces/{regionId}/purchase-orders/{poId}/close
Requisição
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}/close" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 201 Created
{
   "id": "string",
   "buyerOrgId": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "amount": number,
   "currency": "string",
   "status": "draft" | "pending_approval" | "rejected" | "awaiting_fulfillment" | "invoiced" | "paid" | "canceled" | "closed" | "expired",
   "invoiceId": "string",
   "provider": "aws" | "gcp" | "azure" | "oci",
   "payerAccounts": [
      { "id": "string", "label": "string", "detail": "string" }
   ],
   "billToParty": {
      "source": "company_profile" | "custom",
      "companyName": "string",
      "address": { "line1": "string", "line2": "string", "city": "string", "region": "string", "postalCode": "string", "country": "string" },
      "addressText": "string",
      "taxId": "string"
   },
   "costCenter": "string",
   "costCenterChanges": [ { "from": "string", "to": "string", "reason": "string", "by": "string", "byName": "string", "at": "string" } ],
   "budgetOwner": "string",
   "buyerName": "string",
   "supplierSite": "string",
   "notes": "string",
   "requestId": "string",
   "lineItems": [
      {
      "lineNo": number,
      "scopeType": "sku" | "service" | "account" | "custom",
      "scopeId": "string" | null,
      "name": "string",
      "ruleType": "quantity" | "amount",
      "unit": "string",
      "unitPrice": number,
      "qty": number,
      "nteAmount": number,
      "lineType": "goods" | "service",
      "currency": "string",
      "paymentTerms": "string",
      "validFrom": "string",
      "validUntil": "string",
      "consumed": number,
      "customerLineNo": "string",
      "supplierSku": "string",
      "priceSource": "contract" | "list" | "manual"
    }
   ],
   "approval": {
      "requester": "string",
      "requesterEmployeeKey": "string",
      "groups": [
        {
          "id": "string",
          "mode": "sequential" | "parallel",
          "label": "string",
          "status": "pending" | "approved" | "rejected",
          "stages": [
            { "id": "string", "label": "string", "approverEmployeeKey": "string", "approverName": "string", "status": "pending" | "approved" | "rejected" }
          ]
        }
      ],
      "groupIndex": number,
      "status": "pending" | "approved" | "rejected",
      "history": [
        { "stage": "string", "by": "string", "at": "string", "action": "approved" | "rejected" | "limit_exceeded" | "reassigned" | "skipped" }
      ],
      "autonomy": boolean,
      "selfApproved": boolean
    },
   "supplierEmail": { "to": "string", "at": "string" },
   "priorInvoiced": { "amount": number, "currency": "string", "basis": "invoiced" | "remaining", "sourceSystem": "sap_ariba" | "coupa" | "oracle", "importId": "string", "fileName": "string", "importedAt": "string", "importedBy": "string" },
   "createdAt": "string"
}

Alterar centro de custo de pedido de compra finalizado

Move um pedido de compra finalizado para outro centro de custo.

POST/v1/workspaces/{regionId}/purchase-orders/{poId}/cost-center

Parâmetros

  • poIdstringObrigatório

    O identificador do pedido de compra.

Corpo

  • costCenterstringObrigatório

    O centro de custo em que o pedido será lançado, até 100 caracteres. Comparado com a lista do espaço de trabalho sem diferenciar maiúsculas e minúsculas, e guardado como está escrito na lista.

  • reasonstringObrigatório

    Por que ele muda, até 500 caracteres. Fica registrado no pedido.

Retorna

201 Created com o objeto mostrado na resposta.

Mais detalhes

Lança um pedido de compra fechado, cancelado ou pago em outro centro de custo, com um motivo - por exemplo depois de uma reorganização, ou de uma escolha errada descoberta no fechamento do mês. Só costCenter muda: as linhas, o valor e as aprovações ficam como foram aprovados, e nada volta para aprovação. A alteração fica registrada no pedido em costCenterChanges, com quem a fez e quando. Quando o espaço de trabalho mantém uma lista de centros de custo, o novo precisa ser um centro ativo dessa lista. Um pedido aberto muda o centro de custo com UpdatePurchaseOrder.

Só um administrador do espaço de trabalho: um administrador conectado, ou uma chave de API criada com a função de administrador.

Campos da resposta

  • costCenterChangesArray

    Cada alteração feita desta forma, da mais antiga para a mais recente: { from?, to, reason, by, byName, at }.

Erros

  • 400 Bad Request - Sem motivo ("Say why the cost center is changing."); o pedido ainda está aberto ("PO '{poId}' is still open. Change its cost center by editing the order."); o centro de custo não é um centro ativo da lista do espaço de trabalho ("'{costCenter}' isn't an active cost center in this workspace. Pick one from the cost centers list."); é o mesmo que o pedido já tem; ou um campo não passa na validação.
  • 403 Forbidden - Quem chama não é administrador deste espaço de trabalho de comprador ("Only an administrator of this workspace can add or change cost centers.").
  • 404 Not Found - Não existe pedido com este id no espaço de trabalho.
  • 409 Conflict - O pedido mudou enquanto isto era salvo ("PO '{poId}' changed while you were editing it. Refresh and try again.").
  • 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}/purchase-orders/{poId}/cost-center
Requisição
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}/cost-center" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "costCenter": "string",
   "reason": "string"
}
Resposta · 201 Created
{
   "id": "string",
   "buyerOrgId": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "amount": number,
   "currency": "string",
   "status": "draft" | "pending_approval" | "rejected" | "awaiting_fulfillment" | "invoiced" | "paid" | "canceled" | "closed" | "expired",
   "invoiceId": "string",
   "provider": "aws" | "gcp" | "azure" | "oci",
   "payerAccounts": [
      { "id": "string", "label": "string", "detail": "string" }
   ],
   "billToParty": {
      "source": "company_profile" | "custom",
      "companyName": "string",
      "address": { "line1": "string", "line2": "string", "city": "string", "region": "string", "postalCode": "string", "country": "string" },
      "addressText": "string",
      "taxId": "string"
   },
   "costCenter": "string",
   "costCenterChanges": [ { "from": "string", "to": "string", "reason": "string", "by": "string", "byName": "string", "at": "string" } ],
   "budgetOwner": "string",
   "buyerName": "string",
   "supplierSite": "string",
   "notes": "string",
   "requestId": "string",
   "lineItems": [
      {
      "lineNo": number,
      "scopeType": "sku" | "service" | "account" | "custom",
      "scopeId": "string" | null,
      "name": "string",
      "ruleType": "quantity" | "amount",
      "unit": "string",
      "unitPrice": number,
      "qty": number,
      "nteAmount": number,
      "lineType": "goods" | "service",
      "currency": "string",
      "paymentTerms": "string",
      "validFrom": "string",
      "validUntil": "string",
      "consumed": number,
      "customerLineNo": "string",
      "supplierSku": "string",
      "priceSource": "contract" | "list" | "manual"
    }
   ],
   "approval": {
      "requester": "string",
      "requesterEmployeeKey": "string",
      "groups": [
        {
          "id": "string",
          "mode": "sequential" | "parallel",
          "label": "string",
          "status": "pending" | "approved" | "rejected",
          "stages": [
            { "id": "string", "label": "string", "approverEmployeeKey": "string", "approverName": "string", "status": "pending" | "approved" | "rejected" }
          ]
        }
      ],
      "groupIndex": number,
      "status": "pending" | "approved" | "rejected",
      "history": [
        { "stage": "string", "by": "string", "at": "string", "action": "approved" | "rejected" | "limit_exceeded" | "reassigned" | "skipped" }
      ],
      "autonomy": boolean,
      "selfApproved": boolean
    },
   "supplierEmail": { "to": "string", "at": "string" },
   "priorInvoiced": { "amount": number, "currency": "string", "basis": "invoiced" | "remaining", "sourceSystem": "sap_ariba" | "coupa" | "oracle", "importId": "string", "fileName": "string", "importedAt": "string", "importedBy": "string" },
   "createdAt": "string"
}

Aprovar pedido de compra

Aprova a etapa de aprovação atual de um pedido de compra.

POST/v1/workspaces/{regionId}/purchase-orders/{poId}/approve

Parâmetros

  • poIdstringObrigatório

    O identificador do pedido de compra.

Retorna

201 Created com o objeto mostrado na resposta.

Mais detalhes

Avança a cadeia de aprovação do pedido em um estágio. Só o funcionário indicado na etapa atual pode chamar isto - nenhuma função, permissão ou direito de administrador substitui ser o indicado, e uma chave de API nunca pode ser indicada. Quando o estágio final aprova, o status do pedido passa a awaiting_fulfillment, uma notificação po_approved é enviada ao fornecedor e o pedido é enviado a ele por e-mail como PDF (veja CreatePurchaseOrder). Não recebe corpo e age como quem chama autenticado (uma chave de API age como apikey:<keyId>).

Só sessão conectada. Qualquer outro chamador, inclusive uma chave de API, recebe 403 HUMAN_APPROVAL_REQUIRED antes de qualquer leitura.

Erros

  • 400 Bad Request - A cadeia de aprovação do pedido não tem estágio pendente (já foi aprovada ou rejeitada).
  • 403 Forbidden - Código HUMAN_APPROVAL_REQUIRED. Quem chama é uma chave de API. As etapas de aprovação indicam um funcionário específico, e uma chave nunca pode ser um, então uma chave não pode aprovar nem rejeitar uma etapa. Peça ao funcionário indicado na etapa que aja sobre ela na Pleaxy.
  • 403 Forbidden - Código APPROVER_NOT_ASSIGNED. A etapa atual não tem aprovador atribuído, então ninguém pode agir sobre ela. Um administrador precisa atribuir um antes, com ReassignPurchaseOrderApprovalStage / ReassignInvoiceApprovalStage.
  • 403 Forbidden - Quem chama não é o funcionário indicado na etapa atual. Só esse funcionário pode aprová-la ou rejeitá-la - nenhuma função ou permissão substitui ser o indicado.
  • 404 Not Found - Não existe pedido com este id no espaço de trabalho.
  • 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.
POST /v1/workspaces/{regionId}/purchase-orders/{poId}/approve
Requisição
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}/approve" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 201 Created
{
   "id": "string",
   "buyerOrgId": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "amount": number,
   "currency": "string",
   "status": "draft" | "pending_approval" | "rejected" | "awaiting_fulfillment" | "invoiced" | "paid" | "canceled" | "closed" | "expired",
   "invoiceId": "string",
   "provider": "aws" | "gcp" | "azure" | "oci",
   "payerAccounts": [
      { "id": "string", "label": "string", "detail": "string" }
   ],
   "billToParty": {
      "source": "company_profile" | "custom",
      "companyName": "string",
      "address": { "line1": "string", "line2": "string", "city": "string", "region": "string", "postalCode": "string", "country": "string" },
      "addressText": "string",
      "taxId": "string"
   },
   "costCenter": "string",
   "costCenterChanges": [ { "from": "string", "to": "string", "reason": "string", "by": "string", "byName": "string", "at": "string" } ],
   "budgetOwner": "string",
   "buyerName": "string",
   "supplierSite": "string",
   "notes": "string",
   "requestId": "string",
   "lineItems": [
      {
      "lineNo": number,
      "scopeType": "sku" | "service" | "account" | "custom",
      "scopeId": "string" | null,
      "name": "string",
      "ruleType": "quantity" | "amount",
      "unit": "string",
      "unitPrice": number,
      "qty": number,
      "nteAmount": number,
      "lineType": "goods" | "service",
      "currency": "string",
      "paymentTerms": "string",
      "validFrom": "string",
      "validUntil": "string",
      "consumed": number,
      "customerLineNo": "string",
      "supplierSku": "string",
      "priceSource": "contract" | "list" | "manual"
    }
   ],
   "approval": {
      "requester": "string",
      "requesterEmployeeKey": "string",
      "groups": [
        {
          "id": "string",
          "mode": "sequential" | "parallel",
          "label": "string",
          "status": "pending" | "approved" | "rejected",
          "stages": [
            { "id": "string", "label": "string", "approverEmployeeKey": "string", "approverName": "string", "status": "pending" | "approved" | "rejected" }
          ]
        }
      ],
      "groupIndex": number,
      "status": "pending" | "approved" | "rejected",
      "history": [
        { "stage": "string", "by": "string", "at": "string", "action": "approved" | "rejected" | "limit_exceeded" | "reassigned" | "skipped" }
      ],
      "autonomy": boolean,
      "selfApproved": boolean
    },
   "supplierEmail": { "to": "string", "at": "string" },
   "priorInvoiced": { "amount": number, "currency": "string", "basis": "invoiced" | "remaining", "sourceSystem": "sap_ariba" | "coupa" | "oracle", "importId": "string", "fileName": "string", "importedAt": "string", "importedBy": "string" },
   "createdAt": "string"
}

Rejeitar pedido de compra

Rejeita um pedido de compra na etapa de aprovação atual.

POST/v1/workspaces/{regionId}/purchase-orders/{poId}/reject

Parâmetros

  • poIdstringObrigatório

    O identificador do pedido de compra.

Retorna

201 Created com o objeto mostrado na resposta.

Mais detalhes

Rejeita o pedido no estágio de aprovação atual. Só o funcionário indicado na etapa atual pode chamar isto - rejeitar segue a mesma regra que aprovar. O status passa a rejected e uma notificação po_rejected é enviada ao fornecedor. É definitivo - um pedido rejeitado não pode ser reenviado. Não recebe corpo e age como quem chama autenticado (uma chave de API age como apikey:<keyId>).

Erros

  • 400 Bad Request - A cadeia de aprovação do pedido não tem estágio pendente.
  • 403 Forbidden - Código HUMAN_APPROVAL_REQUIRED. Quem chama é uma chave de API. As etapas de aprovação indicam um funcionário específico, e uma chave nunca pode ser um, então uma chave não pode aprovar nem rejeitar uma etapa. Peça ao funcionário indicado na etapa que aja sobre ela na Pleaxy.
  • 403 Forbidden - Código APPROVER_NOT_ASSIGNED. A etapa atual não tem aprovador atribuído, então ninguém pode agir sobre ela. Um administrador precisa atribuir um antes, com ReassignPurchaseOrderApprovalStage / ReassignInvoiceApprovalStage.
  • 403 Forbidden - Quem chama não é o funcionário indicado na etapa atual. Só esse funcionário pode aprová-la ou rejeitá-la - nenhuma função ou permissão substitui ser o indicado.
  • 404 Not Found - Não existe pedido com este id no espaço de trabalho.
  • 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.
POST /v1/workspaces/{regionId}/purchase-orders/{poId}/reject
Requisição
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}/reject" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 201 Created
{
   "id": "string",
   "buyerOrgId": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "amount": number,
   "currency": "string",
   "status": "draft" | "pending_approval" | "rejected" | "awaiting_fulfillment" | "invoiced" | "paid" | "canceled" | "closed" | "expired",
   "invoiceId": "string",
   "provider": "aws" | "gcp" | "azure" | "oci",
   "payerAccounts": [
      { "id": "string", "label": "string", "detail": "string" }
   ],
   "billToParty": {
      "source": "company_profile" | "custom",
      "companyName": "string",
      "address": { "line1": "string", "line2": "string", "city": "string", "region": "string", "postalCode": "string", "country": "string" },
      "addressText": "string",
      "taxId": "string"
   },
   "costCenter": "string",
   "costCenterChanges": [ { "from": "string", "to": "string", "reason": "string", "by": "string", "byName": "string", "at": "string" } ],
   "budgetOwner": "string",
   "buyerName": "string",
   "supplierSite": "string",
   "notes": "string",
   "requestId": "string",
   "lineItems": [
      {
      "lineNo": number,
      "scopeType": "sku" | "service" | "account" | "custom",
      "scopeId": "string" | null,
      "name": "string",
      "ruleType": "quantity" | "amount",
      "unit": "string",
      "unitPrice": number,
      "qty": number,
      "nteAmount": number,
      "lineType": "goods" | "service",
      "currency": "string",
      "paymentTerms": "string",
      "validFrom": "string",
      "validUntil": "string",
      "consumed": number,
      "customerLineNo": "string",
      "supplierSku": "string",
      "priceSource": "contract" | "list" | "manual"
    }
   ],
   "approval": {
      "requester": "string",
      "requesterEmployeeKey": "string",
      "groups": [
        {
          "id": "string",
          "mode": "sequential" | "parallel",
          "label": "string",
          "status": "pending" | "approved" | "rejected",
          "stages": [
            { "id": "string", "label": "string", "approverEmployeeKey": "string", "approverName": "string", "status": "pending" | "approved" | "rejected" }
          ]
        }
      ],
      "groupIndex": number,
      "status": "pending" | "approved" | "rejected",
      "history": [
        { "stage": "string", "by": "string", "at": "string", "action": "approved" | "rejected" | "limit_exceeded" | "reassigned" | "skipped" }
      ],
      "autonomy": boolean,
      "selfApproved": boolean
    },
   "supplierEmail": { "to": "string", "at": "string" },
   "priorInvoiced": { "amount": number, "currency": "string", "basis": "invoiced" | "remaining", "sourceSystem": "sap_ariba" | "coupa" | "oracle", "importId": "string", "fileName": "string", "importedAt": "string", "importedBy": "string" },
   "createdAt": "string"
}

Reatribuir estágio de aprovação de pedido de compra

Atribui uma etapa de aprovação pendente a outra pessoa.

POST/v1/workspaces/{regionId}/purchase-orders/{poId}/approval/reassign

Parâmetros

  • poIdstringObrigatório

    O identificador do pedido de compra.

Corpo

  • stageIdstringObrigatório

    Id da etapa pendente a reatribuir. Pode estar em qualquer grupo da cadeia, não só no atual.

  • approverEmployeeKeystringObrigatório

    Chave de funcionário (sub do Cognito) do novo aprovador. Precisa ser um membro comprador deste espaço de trabalho, e não o administrador que está agindo.

  • reasonstring

    Por que a etapa foi reatribuída, até 280 caracteres. Exibido no histórico de aprovação.

Retorna

201 Created com o objeto mostrado na resposta.

Mais detalhes

Aponta uma etapa pendente da cadeia de aprovação deste pedido para outro funcionário indicado. Só administradores (approvalSettings:edit), e só em sessões conectadas. Como uma etapa só pode ser executada pelo funcionário que ela indica, esta é a única forma de mover uma etapa cujo aprovador saiu ou nunca foi atribuído - não existe um executor substituto. Altera só a cadeia deste documento: a cadeia configurada da organização em Configurações não é tocada, e a alteração é registrada no histórico de aprovação como uma entrada reassigned.

Erros

  • 400 Bad Request - A cadeia já foi aprovada ou rejeitada; a etapa já foi aprovada ou rejeitada; o novo aprovador não é funcionário deste espaço de trabalho; o novo aprovador emitiu o pedido / lançou a fatura, está excluído por segregação de funções, já liberou o limite de gastos com a própria alçada, ou já ocupa outro lugar na mesma etapa; ou a etapa é a revisão do limite de gastos, cujo aprovador é um fato de auditoria congelado (altere-o em Configurações › Limites de gastos).
  • 403 Forbidden - Quem chama não tem approvalSettings:edit (administrador), ou indicou a si mesmo como novo aprovador - atribuir uma etapa ativa a si mesmo faz de uma pessoa a cadeia inteira, sem rastro de política. Código HUMAN_APPROVAL_REQUIRED quando quem chama é uma chave de API: só um administrador conectado pode reatribuir uma etapa de aprovação.
  • 404 Not Found - Não existe documento com este id no espaço de trabalho, ou a cadeia não tem etapa com este stageId.
  • 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.
POST /v1/workspaces/{regionId}/purchase-orders/{poId}/approval/reassign
Requisição
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}/approval/reassign" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "stageId": "string",
   "approverEmployeeKey": "string",
   "reason": "string"
}
Resposta · 201 Created
{
   "id": "string",
   "buyerOrgId": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "amount": number,
   "currency": "string",
   "status": "draft" | "pending_approval" | "rejected" | "awaiting_fulfillment" | "invoiced" | "paid" | "canceled" | "closed" | "expired",
   "invoiceId": "string",
   "provider": "aws" | "gcp" | "azure" | "oci",
   "payerAccounts": [
      { "id": "string", "label": "string", "detail": "string" }
   ],
   "billToParty": {
      "source": "company_profile" | "custom",
      "companyName": "string",
      "address": { "line1": "string", "line2": "string", "city": "string", "region": "string", "postalCode": "string", "country": "string" },
      "addressText": "string",
      "taxId": "string"
   },
   "costCenter": "string",
   "costCenterChanges": [ { "from": "string", "to": "string", "reason": "string", "by": "string", "byName": "string", "at": "string" } ],
   "budgetOwner": "string",
   "buyerName": "string",
   "supplierSite": "string",
   "notes": "string",
   "requestId": "string",
   "lineItems": [
      {
      "lineNo": number,
      "scopeType": "sku" | "service" | "account" | "custom",
      "scopeId": "string" | null,
      "name": "string",
      "ruleType": "quantity" | "amount",
      "unit": "string",
      "unitPrice": number,
      "qty": number,
      "nteAmount": number,
      "lineType": "goods" | "service",
      "currency": "string",
      "paymentTerms": "string",
      "validFrom": "string",
      "validUntil": "string",
      "consumed": number,
      "customerLineNo": "string",
      "supplierSku": "string",
      "priceSource": "contract" | "list" | "manual"
    }
   ],
   "approval": {
      "requester": "string",
      "requesterEmployeeKey": "string",
      "groups": [
        {
          "id": "string",
          "mode": "sequential" | "parallel",
          "label": "string",
          "status": "pending" | "approved" | "rejected",
          "stages": [
            { "id": "string", "label": "string", "approverEmployeeKey": "string", "approverName": "string", "status": "pending" | "approved" | "rejected" }
          ]
        }
      ],
      "groupIndex": number,
      "status": "pending" | "approved" | "rejected",
      "history": [
        { "stage": "string", "by": "string", "at": "string", "action": "approved" | "rejected" | "limit_exceeded" | "reassigned" | "skipped" }
      ],
      "autonomy": boolean,
      "selfApproved": boolean
    },
   "supplierEmail": { "to": "string", "at": "string" },
   "priorInvoiced": { "amount": number, "currency": "string", "basis": "invoiced" | "remaining", "sourceSystem": "sap_ariba" | "coupa" | "oracle", "importId": "string", "fileName": "string", "importedAt": "string", "importedBy": "string" },
   "createdAt": "string"
}

Listar comentários do pedido de compra

Lista os comentários de um pedido de compra.

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

Parâmetros

  • poIdstringObrigatório

    O identificador do pedido de compra.

  • buyerstring

    Só para quem chama como Fornecedor, e só necessário depois de um 409 *_ID_AMBIGUOUS: o ID do espaço de trabalho do comprador (terminado em .buyer) ou o id da região, da lista buyers do 409. Só o documento desse comprador é considerado; se não houver nenhum ali, é 404. Um ID de espaço de trabalho .supplier é 400 BUYER_QUALIFIER_INVALID ("The buyer parameter must be one buyer's Workspace ID (ending in .buyer), from the buyers list in the 409 response."). Ignorado para quem chama como Comprador.

Retorna

200 OK com o objeto mostrado na resposta.

Mais detalhes

Os comentários de um pedido de compra, do mais antigo para o mais recente: os internos do seu lado e todos os compartilhados. Um comentário que o autor excluiu continua na conversa com o corpo vazio, para ainda mostrar que algo foi dito e quando. Mesma busca de GetPurchaseOrder, então um fornecedor chega aos pedidos emitidos para ele.

Campos da resposta

  • visibilitystring

    internal: só o lado do autor. shared: o comprador e o fornecedor leem.

  • authorKey, mentionsstring, Array

    Só nos comentários do seu lado: quem escreveu, pela chave de funcionário, e quem foi mencionado. O outro lado vê authorName e authorOrgName.

  • bodystring

    Texto simples com as quebras de linha. Vazio depois que o autor o excluiu; deletedAt então indica quando.

  • viewerIsAuthorboolean

    Se quem chama o escreveu e, portanto, pode excluí-lo. Sempre false para uma chave de API.

Erros

  • 404 Not Found - Não existe pedido com este id no espaço de trabalho de quem chama.
  • 409 Conflict - Só para quem chama como Fornecedor. Código PO_ID_AMBIGUOUS: mais de um dos seus compradores emitiu um pedido de compra com este id (os ids são únicos só dentro de um comprador), então a Pleaxy não tenta adivinhar a qual você se refere. Nada é lido nem alterado. O campo buyers do corpo lista o ID do espaço de trabalho e o nome de cada comprador: repita a chamada com ?buyer=<esse ID do espaço de trabalho>.
  • 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}/comments
Requisição
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}/comments" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 200 OK
{
   "comments": [
      {
         "id": "string",
         "documentKind": "invoice" | "purchase_order",
         "documentId": "string",
         "body": "string",
         "visibility": "internal" | "shared",
         "authorSide": "buyer" | "supplier",
         "authorKey": "string",
         "authorName": "string",
         "authorOrgName": "string",
         "mentions": [ { "employeeKey": "string", "name": "string" } ],
         "createdAt": "string",
         "deletedAt": "string",
         "viewerIsAuthor": boolean
      }
   ]
}

Adicionar comentário ao pedido de compra

Adiciona um comentário a um pedido de compra.

POST/v1/workspaces/{regionId}/purchase-orders/{poId}/comments

Parâmetros

  • poIdstringObrigatório

    O identificador do pedido de compra.

  • buyerstring

    Só para quem chama como Fornecedor, e só necessário depois de um 409 *_ID_AMBIGUOUS: o ID do espaço de trabalho do comprador (terminado em .buyer) ou o id da região, da lista buyers do 409. Só o documento desse comprador é considerado; se não houver nenhum ali, é 404. Um ID de espaço de trabalho .supplier é 400 BUYER_QUALIFIER_INVALID ("The buyer parameter must be one buyer's Workspace ID (ending in .buyer), from the buyers list in the 409 response."). Ignorado para quem chama como Comprador.

Corpo

  • bodystringObrigatório

    Texto simples, até 2.000 caracteres. As quebras de linha são mantidas; caracteres de controle, de texto bidirecional e invisíveis são removidos.

  • visibility"internal" | "shared"Obrigatório

    internal: só a sua equipe. shared: o outro lado também lê e responde. Os comentários de um fornecedor são sempre compartilhados.

  • mentionsstring[]

    Até 10 chaves de funcionário de pessoas do seu próprio espaço de trabalho a notificar (veja ListEmployees). A notificação nunca traz o texto do comentário.

Retorna

201 Created com o objeto mostrado na resposta.

Mais detalhes

Comenta um pedido de compra: interno à sua equipe, ou compartilhado com o outro lado. Comentários nunca são editados. As pessoas que você menciona, quem já comentou do seu lado e, em um comentário compartilhado, o outro lado são notificados (po_comment); a notificação nunca traz o texto.

Só sessão conectada. Uma chave de API recebe 403 HUMAN_SESSION_REQUIRED.

Erros

  • 400 Bad Request - Um corpo vazio ("Write something before you post the comment."), mais de 2.000 caracteres, mais de 10 menções, uma menção a alguém que não está no seu espaço de trabalho, uma visibilidade diferente de internal ou shared, um comentário interno de fornecedor ("A supplier's comments are always shared with the buyer."), ou um comentário compartilhado em um documento cujo fornecedor não está na Pleaxy (publique-o como internal).
  • 403 Forbidden - Código HUMAN_SESSION_REQUIRED: quem chama é uma chave de API ("Comments are written by people. Sign in to Pleaxy to post one.").
  • 404 Not Found - Não existe pedido com este id no espaço de trabalho de quem chama.
  • 409 Conflict - Só para quem chama como Fornecedor. Código PO_ID_AMBIGUOUS: mais de um dos seus compradores emitiu um pedido de compra com este id (os ids são únicos só dentro de um comprador), então a Pleaxy não tenta adivinhar a qual você se refere. Nada é lido nem alterado. O campo buyers do corpo lista o ID do espaço de trabalho e o nome de cada comprador: repita a chamada com ?buyer=<esse ID do espaço de trabalho>.
  • 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.
POST /v1/workspaces/{regionId}/purchase-orders/{poId}/comments
Requisição
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}/comments" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "body": "string",
   "visibility": "internal" | "shared",
   "mentions": [ "string" ]
}
Resposta · 201 Created
{
   "id": "string",
   "documentKind": "invoice" | "purchase_order",
   "documentId": "string",
   "body": "string",
   "visibility": "internal" | "shared",
   "authorSide": "buyer" | "supplier",
   "authorKey": "string",
   "authorName": "string",
   "authorOrgName": "string",
   "mentions": [ { "employeeKey": "string", "name": "string" } ],
   "createdAt": "string",
   "deletedAt": "string",
   "viewerIsAuthor": boolean
}

Excluir comentário do pedido de compra

Exclui um dos seus comentários em um pedido de compra.

DELETE/v1/workspaces/{regionId}/purchase-orders/{poId}/comments/{commentId}

Parâmetros

  • poIdstringObrigatório

    O identificador do pedido de compra.

  • commentIdstringObrigatório

    O comentário, por exemplo "CMT-1760313600000-3f9a1c2e".

  • buyerstring

    Só para quem chama como Fornecedor, e só necessário depois de um 409 *_ID_AMBIGUOUS: o ID do espaço de trabalho do comprador (terminado em .buyer) ou o id da região, da lista buyers do 409. Só o documento desse comprador é considerado; se não houver nenhum ali, é 404. Um ID de espaço de trabalho .supplier é 400 BUYER_QUALIFIER_INVALID ("The buyer parameter must be one buyer's Workspace ID (ending in .buyer), from the buyers list in the 409 response."). Ignorado para quem chama como Comprador.

Retorna

200 OK com o objeto mostrado na resposta.

Mais detalhes

Retira o seu próprio comentário: o texto é removido e a conversa mantém o registro de que um comentário foi feito. Excluí-lo de novo não altera nada.

Só sessão conectada. Uma chave de API recebe 403 HUMAN_SESSION_REQUIRED.

Erros

  • 403 Forbidden - Código HUMAN_SESSION_REQUIRED: quem chama é uma chave de API ("Comments are written by people. Sign in to Pleaxy to post one.").
  • 403 Forbidden - O comentário não é seu ("Only the person who wrote a comment can delete it.").
  • 404 Not Found - Nenhum comentário com este id que você possa ver neste documento ("Comment {commentId} not found."), ou o documento não existe.
  • 409 Conflict - Só para quem chama como Fornecedor. Código PO_ID_AMBIGUOUS: mais de um dos seus compradores emitiu um pedido de compra com este id (os ids são únicos só dentro de um comprador), então a Pleaxy não tenta adivinhar a qual você se refere. Nada é lido nem alterado. O campo buyers do corpo lista o ID do espaço de trabalho e o nome de cada comprador: repita a chamada com ?buyer=<esse ID do espaço de trabalho>.
  • 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.
DELETE /v1/workspaces/{regionId}/purchase-orders/{poId}/comments/{commentId}
Requisição
curl -X DELETE "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/purchase-orders/{poId}/comments/{commentId}" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Resposta · 200 OK
{
   "id": "string",
   "documentKind": "invoice" | "purchase_order",
   "documentId": "string",
   "body": "string",
   "visibility": "internal" | "shared",
   "authorSide": "buyer" | "supplier",
   "authorKey": "string",
   "authorName": "string",
   "authorOrgName": "string",
   "mentions": [ { "employeeKey": "string", "name": "string" } ],
   "createdAt": "string",
   "deletedAt": "string",
   "viewerIsAuthor": boolean
}
Fale conosco