Introdução às chamadas de API de tempo de execução

  • Versão de lançamento: Australia
  • Atualizado 12 de mar. de 2026
  • 4 min. de leitura
  • APIs de tempo de execução, ou buyside, são usadas para criar, atualizar e salvar configurações.

    CPQ As APIs são divididas em duas categorias: APIs de tempo de execução e APIs de administrador. Neste artigo, apresentamos as APIs de tempo de execução.

    As APIs de tempo de execução são usadas para criar, ler, atualizar e excluir configurações e são as mesmas APIs usadas no CPQ Configurador de usuário final. Elas também são comumente chamadas de APIs "buyside".

    Nota:
    Para obter as informações mais atualizadas sobre códigos de amostra e outros detalhes, consulte Documentação da API .

    Todas as chamadas de API seguem este formato de URL base: https://<yourTenant>.<sector>.logik.io/api/ . Neste URL, seulocatário representa seu exclusivo listado CPQ o nome do locatário e o setor é o setor em que você CPQ o ambiente está localizado.

    Se você for um usuário do Salesforce, poderá encontrar o URL do locatário clicando em Configuração Em sua conta do Salesforce. Na caixa Localização rápida, pesquise ou clique em Configurações personalizadas e clique em Gerenciar . O URL do locatário será exibido.

    Chamadas de API de tempo de execução

    Todas as chamadas de API de tempo de execução exigem autenticação de token do portador usando um token exclusivo que está disponível no cliente de tempo de execução. Eles também exigem que a URL de origem configurada no cliente de tempo de execução apareça no cabeçalho da solicitação.

    Para autenticar, colete o token do portador e o URL de origem de CPQ Administrador → Utilitários → Cliente de tempo de execução. Para cada chamada de API em um Postman, adicione o seguinte cabeçalho:

    Key: Origin
    Value: <yourOrigin>

    Chamadas de API de tempo de execução

    Na guia Autorização do Postman ou sua ferramenta de API, selecione Token do portador e insira o token exclusivo do qual você copiou CPQ Admin

    Chamadas de API de tempo de execução

    Nota:
    O token na imagem é um valor fictício que não corresponde a nenhum ambiente real. Aparece apenas para fins ilustrativos.

    Chamadas básicas de API de tempo de execução

    • A chamada de configuração inicial inicia o processo de configuração passando o ID do produto configurável e retorna um UUID de configuração para uso posterior.

      Exemplo (curl):

      curl -X POST https://<yourTenant>.<sector>.logik.io/api/ \
      -H "Authorization: Bearer <yourBearerToken>" \
      -H "Origin: <yourOrigin>" \
      -H "Content-Type: application/json" \
      -d '{
          "sessionContext": {
              "stateful": true
          },
          "partnerData": {
              "product": {
                  "configuredProductId": "{{configProductId}}",
              }
          },
          "fields": []
      }'

      Exemplo (resposta):

      {
        "configurationId": "{uuid}"

      Você também usa esta chamada de API para reconfigurar, fornecendo um UUID de configuração salvo anteriormente no corpo DO POST.

      Exemplo de reconfiguração (cURL):

      curl -X POST https://<yourTenant>.<sector>.logik.io/api/ \
      -H "Authorization: Bearer <yourBearerToken>" \
      -H "Origin: <yourOrigin>" \
      -H "Content-Type: application/json" \
      -d '{
          "sessionContext": {
              "stateful": true
          },
          "partnerData": {
              "product": {
                  "configuredProductId": "{{configProductId}}",
                  "configurationAttributes": {
                      "LGK__ConfigurationId__c": "{{uuid}}"
                  }
              }
          },
          "fields": []
      }'
    • A chamada de atualização de configuração atualiza uma configuração existente passando o UUID de configuração e os valores de campo desejados e retorna todos os campos possíveis e seus valores.

      Exemplo (curl):

      curl -X PATCH https://<yourTenant>.<sector>.logik.io/api/{uuid} \
      -H "Authorization: Bearer <yourBearerToken>" \
      -H "Origin: <yourOrigin>" \
      -H "Content-Type: application/json" \
      -d '{ "fields": { "color": "blue", "size": "large" } }'

      Exemplo (resposta):

      {
        "fields": {
          "color": "blue",
          "size": "large",
          "price": "$100"
        }
      }
    • A chamada Obter BOM passa o UUID de configuração e recupera a Lista de materiais (BOM) da configuração. Retorna a BOM atual da configuração.

      Exemplo (curl):

      curl -X GET https://<yourTenant>.<sector>.logik.io/api/{uuid}/bom \
      -H "Authorization: Bearer <yourBearerToken>" \
      -H "Origin: <yourOrigin>"

      Exemplo (resposta):

      {
        "bom": [
          { "item": "componentA", "quantity": 2 },
          { "item": "componentB", "quantity": 1 }
        ]
      }
    • A chamada de salvamento salva a configuração em CPQ. Isso garante que o UUID de configuração possa ser usado e reconfigurado no futuro.

      Este processo preenche de forma assíncrona nossos objetos personalizados, conjuntos de dados de campo de configuração e itens de linha de configuração no Salesforce.

      Exemplo (curl):

      curl --location --request PATCH 'https://mpanigrahi-demo.demo01.logik.io/api/6d0ef6fd-4c88-44f3-a296-b03421c369c6' \
      --header 'Content-Type: application/json' \
      --header 'Accept: application/json' \
      --header 'Origin: https://mpanigrahi-demo.demo01.logik.io' \
      --header 'Authorization: <<RUNTIME TOKEN>>' \
      --header 'Cookie: LGKSESSION=NDA5OWJmNmEtNDhhOS00YTc4LTk3ODktZTg0OGYyOGIwMjZk' \
      --data '{"fields":[{"variableName":"name_d1","value":"megha","dataType":"text"}],"responseState":{"setPagination":{"collections":{"pageSize":10,"pageNumber":0},"fields":{"pageSize":10,"pageNumber":0},"componentTypes":{"pageSize":10,"pageNumber":0}},"defaultPagination":{"pageSize":10,"pageNumber":0},"searchValues":{}}}'

      Para obter mais detalhes sobre o código de amostra, consulte a documentação de referência completa da API:

      https://api-docs.logik.io/#introduction

    Amostra JSON

    info:
    _postman_id: e8370e58-ff12-4662-adac-3e35052b59ba name: Sample Runtime Calls
    schema: https://schema.getpostman.com/json/collection/v2.1.0/collection.json item:
    name: 'Logik: Initial Configure' event:
    listen: test script:
    exec:
    "var jsonData = JSON.parse(responseBody);\r"
    pm.collectionVariables.set("configId", jsonData.uuid); type: text/javascript
    request: auth:
    type: bearer bearer:
    - key: token
    value: '{{logikAccessToken}}' type: string
    method: POST header:
    key: content-type value: application/json type: text
    key: Origin
    value: '{{logikOriginHeader}}' type: text
    body:
    mode: raw
    raw: "	{\r\n	\"sessionContext\": {\r\n	\"stateful\": true\r\n	},\r\n	\"partnerData\": {\r\n	\"product options:
    raw:
    language: json
    url:
    raw: '{{logik}}' host:
    - '{{logik}}' response: []
    name: 'Logik: Update Configuration' request:
    auth:
    type: bearer bearer:
    key: token
    value: '{{logikAccessToken}}' type: string
    method: PATCH header:
    key: content-type value: application/json type: text
    key: Origin
    value: '{{logikOriginHeader}}' type: text
    body:
    mode: raw
    raw: "{\r\n	\"fields\": [\r\n	{\"variableName\":\"juBool1\",\"value\":\"True\"},\r\n	{\"variableName\":\"juBool2\",\"value options:
    raw:
    language: json
    url:
    raw: '{{logik}}{{configId}}' host:
    - '{{logik}}{{configId}}' response: []
    name: '(Optional): Logik: Retrieve BOM' request:
    auth:
    type: bearer bearer:
    key: token
    value: '{{logikAccessToken}}' type: string
    method: GET header:
    key: content-type value: application/json type: text
    key: Origin
    value: '{{logikOriginHeader}}' type: text
    url:
    raw: '{{logik}}{{configId}}/bom' host:
    '{{logik}}{{configId}}' path:
    bom response: []
    name: 'Logik: Save' event:
    listen: test script:
    exec:
    "var jsonData = JSON.parse(responseBody);\r"
    "pm.collectionVariables.set(\"logikTotal\", jsonData.total);\r"
    pm.collectionVariables.set("logikLineItems", jsonData.products); type: text/javascript
    request: auth:
    type: bearer bearer:
    - key: token
    value: '{{logikAccessToken}}' type: string
    method: PATCH header:
    key: content-type value: application/json type: text
    key: Origin
    value: '{{logikOriginHeader}}' type: text
    body:
    mode: raw
    raw: "{\r\n	\"fields\": []\r\n}" options:
    raw:
    language: json
    url:
    raw: '{{logik}}{{configId}}?save=true' host:
    '{{logik}}{{configId}}' query:
    key: save value: 'true'
    response: []
    name: '(Optional): Logik: Reconfigure' event:
    listen: test script:
    exec:
    "var jsonData = JSON.parse(responseBody);\r"
    pm.collectionVariables.set("configId", jsonData.uuid); type: text/javascript
    request: auth:
    type: bearer bearer:
    - key: token
    value: '{{logikAccessToken}}' type: string
    method: POST header:
    key: Origin
    value: '{{logikOriginHeader}}' type: default
    key: Authorization
    value: Bearer Armqrz8jv-1C05mcWmcrDnXZlV9bbOTmGg type: default
    disabled: true body:
    mode: raw
    raw: "{\r\n \"sessionContext\": {\r\n	\"stateful\": true\r\n },\r\n \"partnerData\": {\r\n	\"product\": {\r\n	\"configuredProductId\" options:
    raw:
    language: json
    url:
    raw: '{{logik}}' host:
    - '{{logik}}' response: []

    Para obter mais informações sobre CPQ APIs, veja a seguinte apresentação de oito slides:

    Logik.io APIs .