API Spendint
A API Spendint fornece endpoints que enviam informações de catálogo, preço, disponibilidade, pedido, remessa e fatura de um terceiro para a instância ServiceNow. Esta API faz parte da aplicação Estrutura de integração de Source-to-Pay.
Esta API requer a aplicação da loja Procurement Integration Framework (com.glide.sn_spend_intg) e é fornecida no namespace sn_spend_intg. Para obter informações, consulte Procurement File Transfer Framework.
Para acessar esta API, você deve ter a função sn_spend_intg.procurement_integrator.
API Spendint - POST /sn_spend_intg/spendint/catalog
Permite que os fornecedores publiquem vários catálogos para criar produtos do fornecedor, modelar produtos, contratos e registros de preços.
- Crie novas categorias de terceiros e mapeie essas categorias para categorias de modelo.
- Se disponível, use o Código de Produtos e Serviços Padrão das Nações Unidas (UNSPSC) e o nome da categoria.
- Se UNSPSC não estiver disponível, use apenas o nome da categoria.
- Depois de mapear uma categoria de terceiros para uma categoria de modelo, use o número de peça do fabricante (MPN) para encontrar um modelo de produto existente, se houver um disponível.
- Se um modelo de produto for encontrado para o MPN, atualize o modelo de produto com todas as mudanças e crie ou atualize todos os produtos do fornecedor que estejam relacionados ao modelo de produto.
- Se não existir um modelo de produto para o MPN, faça o seguinte:
- Uma classe de modelo de produto geralmente está disponível na categoria de modelo que é referenciada pela categoria de terceiros para o produto. Use esta classe de modelo de produto para obter a tabela de modelo de produto na qual o modelo de produto deve ser criado, por exemplo, hardware, software, consumível e assim por diante. Se nenhuma classe de modelo de produto estiver disponível, crie o modelo de produto na tabela de modelo de produto base.
- Depois que a classe correta do modelo de produto for identificada, crie um novo modelo de produto na classe correta da seguinte forma:
- Fabricante, fornecedor ou fornecedor deve mapear para o fabricante no modelo do produto.
- O nome do produto da API deve ser mapeado para o nome no modelo do produto.
- O MPN da API deve atualizar o número do modelo.
- A descrição do produto da API deve atualizar a descrição no modelo do produto.
- A categoria do modelo deve ser atualizada com a categoria do produto referenciada no registro de categoria de terceiros.
- A categoria de produto deve ser atualizada com a categoria de produto referenciada no registro de categoria de terceiros.
- Se houver valores nos produtos substitutos na API, crie os registros de produto substituto entre o modelo de produto atual e os outros modelos de produto.
- Se houver valores nos produtos compatíveis na API, crie os registros de produto compatíveis entre o modelo de produto atual e os outros modelos de produto.
- Os atributos de produto da API devem ser criados ou atualizados na lista relacionada a atributos de produto para o modelo de produto.
- Se um modelo de produto estiver disponível, use o número de peça do fornecedor para criar ou atualizar os produtos do fornecedor que estão relacionados ao modelo de produto.
Mapeamento de terceiros
- Categorias de terceiros: armazena todos os registros de categoria de terceiros para o administrador do ShoppingHub mapear com categorias de modelo internas existentes.
- Mapeamentos de modelo de terceiros: armazena todas as informações de mapeamento entre modelos de produto e categorias de modelo de terceiros.
- Unidades de terceiros: armazena todos os registros de unidades de terceiros para o administrador do ShoppingHub mapear com unidades de produto do fornecedor.
- Mapeamentos de unidades de terceiros: armazena todas as informações de mapeamento entre modelos de produto e unidades de terceiros.
Datas de vendas do produto do fornecedor
Um produto do fornecedor é descontinuado e não é mais publicado no catálogo quando atinge a data de término de vendas. Os campos Data de início das vendas e Data de término das vendas no formulário de produto do fornecedor são preenchidos por meio da integração de terceiros da APIde catálogo.
Tabelas de status
Para saber o status da solicitação de importação de produto em massa, faça uma chamada REST no banco de dados ServiceNow usando a API REST de tabela. A resposta da API lista os registros em que a solicitação de importação em massa falhou. Para resposta de importação de produto em massa, consulte a tabela Erro de catálogo com o seguinte parâmetro:
sysparm_query=outbound_error.supplier_id=<supplier_id> ^outbound_error.state=20
Detalhes sobre ID do cliente, ID do fornecedor, tipo de erro, ID do conjunto de importação exclusivo e estado podem ser encontrados na tabela Status de saída, que é a tabela de erros primária.
Formato da URL
/api/sn_spend_intg/spendint/catalog
Parâmetros de solicitação compatíveis
| Nome | Descrição |
|---|---|
| Nenhum(a) |
| Nome | Descrição |
|---|---|
| modo | Suporte para modos assíncronos e síncronos para integração de terceiros. Tipo de dados: cadeia de caracteres Valores válidos:
Padrão: assíncrono |
| Nome | Descrição |
|---|---|
| customer_id | Identificador do cliente. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| catalog_id | Identificador do conteúdo do catálogo que pode ser comprado por um cliente. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| produtos | Lista de objetos que definem os produtos a serem criados ou atualizados. Cada transação tem um limite de 1.000 produtos. Tipo de dados: matriz |
| produtos.unidades_disponíveis | Necessário para produtos que são mantidos em estoque. Este valor indica a quantidade de unidades disponíveis para este produto. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| produtos.disponível_para_país | Lista de códigos de país onde o produto do fornecedor pode ser comprado. Se nenhum país for fornecido, um usuário de qualquer país poderá comprar o produto. Tipo de dados: matriz |
| produtos.bundled_components | Válido somente para cenários ao enviar um pacote de produtos como parte da carga do catálogo e aplicável somente para as cargas do pacote primário. Este valor contém a referência aos componentes do pacote secundário. A lista de MPN e as quantidades dos componentes do pacote secundário são mantidas aqui. Nota: Os componentes do pacote secundário e seus detalhes (MPN e quantidades) devem ser mapeados para o mesmo fornecedor.Como o mesmo componente de pacote secundário pode ser adicionado mais de uma vez em um pacote, a quantidade inserida é o diferenciador entre os mesmos componentes de pacote secundário. Tipo de dados: matriz |
| produtos.contrato_acordo | Detalhes do contrato de um produto. Nota:
Isso não é necessário para componentes do pacote secundário. Tipo de dados: objeto |
| produtos.contract_agreement.contract_end_date | Data em que o termo do contrato termina. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 Formato: AAAA-MM-DD |
| produtos.contract_agreement.contract_number | Obrigatório. Número do contrato ativo associado ao produto. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| produtos.contract_agreement.contract_start_date | Data em que a duração do contrato começa. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 Formato: AAAA-MM-DD |
| produtos.contract_agreement.negotiated_currency | Obrigatório. Moeda do preço negociado. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| produtos.contrato_acordo.negociado_preço | Obrigatório. Preço unitário de um produto conforme negociado por meio de um contrato com o fornecedor ou revendedor. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| produtos.tempo_de_entrega | Número estimado de dias necessários para enviar um produto ao cliente. Este valor deve representar o número de dias e ser um número inteiro. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| produtos.imagens | Lista de cadeias de caracteres que especificam os URLs de imagem do produto do fornecedor. Tipo de dados: matriz |
| product.manufacturer | Obrigatório. Empresa que produz, publica ou fornece o produto. Este não é o fornecedor ou o revendedor do produto. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| produtos.mpn | Obrigatório. Identificador de um produto fornecido pelo fabricante, fornecedor ou fornecedor. Nota:
Isso não é necessário para pacotes primários do revendedor se o valor de SKU estiver disponível. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| product.parent_bundle | Válido somente para cenários ao enviar um pacote de produtos como parte da carga do catálogo e aplicável somente para as cargas do componente do pacote secundário. No caso de um componente de pacote secundário, a referência ao primário é mantida aqui. Os valores de MPN e SKU primários também são definidos aqui. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| produtos.produto_atributos | Lista de pares de chave-valor que definem atributos do produto, por exemplo, "Cor": "Espaço cinza". Vários atributos para um produto são permitidos. No entanto, somente os atributos que afetam o preço ou a disponibilidade de estoque devem ser fornecidos por meio da API.Tipo de dados: objeto |
| product.product_category_name | Obrigatório. Nome que você insere se não estiver definindo a propriedade unspsc. Este nome é a categoria à qual um produto pertence. Este nome de categoria pode ser usado em um cenário de comércio para comprar o produto. Por exemplo, um produto de filtro de linha pode pertencer a uma categoria de equipamento de escritório. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| product.product_description | Descrição completa do produto que aparece para um comprador em uma experiência de comércio. Nota:
É recomendável que o fornecedor seja o mais descritivo possível aqui, especialmente para itens do catálogo de pacotes de produtos em que há componentes de pacote secundários. Tipo de dados: cadeia de caracteres Tamanho máximo: 65000 |
| produtos.product_name | Obrigatório. Nome do produto. Tipo de dados: cadeia de caracteres Tamanho máximo: 1000 |
| product.sku | Obrigatório. Número gerado por um fornecedor que identifica exclusivamente um produto vendido por esse fornecedor. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| produtos.unidade | Obrigatório. Unidade ou taxa na qual o produto é vendido pelo fornecedor. Por exemplo, peças, horas e assim por diante. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| produtos.unspc | Obrigatório. Identificador que você insere se não estiver definindo a propriedade product_category_name. Este identificador é o UNSPSC da categoria à qual um produto pertence. Por exemplo, o código UNSPSC 43210000 é o identificador da categoria de produto Computadores. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| ID_do_fornecedor | Obrigatório. Identificador do revendedor ou fornecedor com o qual o cliente pode fazer pedidos. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| id_de_importação_de_terceiros | Identificador que permite que um terceiro passe um valor de cadeia de caracteres para identificar exclusivamente um conjunto de dados importados. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
Cabeçalhos
Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta.
| Cabeçalho | Descrição |
|---|---|
| Aceitar | Formato de dados do corpo da resposta. Tipos compatíveis: application/json ou application/xml. Padrão: application/json |
| Cabeçalho | Descrição |
|---|---|
| Nenhum(a) |
Códigos de status
Os seguintes códigos de status se aplicam a esta ação HTTP.
| Código do status | Descrição |
|---|---|
| êxito | Bem-sucedido. A solicitação foi processada com sucesso. |
| falha | Mal-sucedido. A solicitação foi processada com erros. |
Parâmetros do corpo da resposta (JSON)
Esses parâmetros de corpo de resposta são recebidos quando consultados no modo síncrono.| Nome | Descrição |
|---|---|
| erro_resposta_corpo | Descrição dos erros, listados por SKU, mpn e mensagem de erro. Tipo de dados: matriz |
| error_response_body.error_message | Mensagem de erro detalhada. Tipo de dados: cadeia de caracteres |
| status_code | Status da resposta, como "sucesso" ou "falha". Tipo de dados: cadeia de caracteres |
Solicitação de cURL
curl "https://instance.service-now.com/api/sn_spend_intg/spendint/catalog" \
--request POST \
--header "Accept:application/json" \
--user 'username':'password'
{"root": [{
"customer_id": "AB-1234323",
"catalog_id": "ACME CORP-12347898",
"supplier_id": "SUP-123456",
"third_party_import_id": "DELL1234567",
"products": [
{
"product_name": "Apple MacBook Pro 13 Core i7",
"mpn": "Z0WQ-20004301931",
"sku": "55788741",
"manufacturer": "Apple",
"product_category_name": "Computer",
"parent_bundle": "920-0045362002",
"bundled_components": {
"mpn": "Z0WQ-20004301931",
"quantity": "4",
},
"unspsc": "43211500",
"product_description": "Apple MacBook Pro 13 Core i7 2.8GHz 16GB 512GB - Touch Bar - Space Gray",
"product_attributes": {
"Color": "Space Grey",
"RAM": "16GB",
"Screen Size": "13inch"
},
"images": ["http://test123.image1.png", "http://test123.image2.jpeg"],
"unit": "Each",
"available_units": "4",
"available_for_country": ["US","IN","GB"],
"delivery_time": "4",
"contract_agreement": {
"contract_number": "34567892",
"contract_start_date": "YYYY-MM-DD",
"contract_end_date": "YYYY-MM-DD",
"negotiated_price": "456",
"negotiated_currency ": "USD"
}
}
]
}
]}
Possíveis respostas:
// Success response:
{
"result": {
"response": "success"
}
}
// Error response:
{
"result": {
"response": [
{
"customer_id": "AB-1234323",
"supplier_id": "SUP-123456",
"third_party_import_id": "DELL1234567",
"status_code": "failure",
"error_response_body": [
{
"sku": "55788741",
"mpn": "Z0WQ-20004301931",
"error_message": "Field Value empty/Formatting issue Negotiated currency \n"
}
]
}
]
}
}
API Spendint - POST /sn_spend_intg/spendint/Price
Atualiza todos os preços dos registros de produtos do fornecedor.
Quando o preço está disponível para registros de produtos do fornecedor, a API usa o SKU do produto para encontrar um produto existente do fornecedor. Se existir um produto do fornecedor correspondente, o preço do contrato correspondente será atualizado. Se nenhum produto do fornecedor correspondente for encontrado, uma mensagem de erro será gerada, informando que o produto para o qual você está tentando atualizar o preço não existe.
Tabelas de status
Para saber o status da solicitação de importação de preço, faça uma chamada REST no banco de dados ServiceNow usando a API REST de tabela. A resposta da API lista os registros em que a solicitação de importação de preço falhou. Para obter uma resposta de importação de preço, consulte a tabela Erro de preço com o seguinte parâmetro:
sysparm_query=outbound_error.supplier_id=<supplier_id> ^outbound_error.state=20
Você pode encontrar os detalhes sobre o ID do cliente, o ID do fornecedor, o tipo de erro, o ID exclusivo do conjunto de importação e o estado na tabela Status de saída, que é a tabela de erros primária.
Formato da URL
/api/sn_spend_intg/spendint/Price
Parâmetros de solicitação compatíveis
| Nome | Descrição |
|---|---|
| Nenhum(a) |
| Nome | Descrição |
|---|---|
| modo | Suporte para modos assíncronos e síncronos para integração de terceiros. Tipo de dados: cadeia de caracteres Valores válidos:
Padrão: assíncrono |
| Nome | Descrição |
|---|---|
| catalog_id | Obrigatório. Identificador do conteúdo do catálogo que pode ser comprado por um cliente. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| customer_id | Obrigatório. Identificador do cliente. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| produtos | Lista de objetos que definem os produtos a serem criados ou atualizados. Cada transação tem um limite de 1.000 produtos. Tipo de dados: matriz |
| produtos.contrato_acordo | Detalhes do contrato de um produto. Tipo de dados: objeto |
| produtos.contract_agreement.contract_end_date | Data em que o termo do contrato termina. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 Formato: AAAA-MM-DD |
| produtos.contract_agreement.contract_number | Obrigatório. Número do contrato ativo associado ao produto. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| produtos.contract_agreement.contract_start_date | Data em que a duração do contrato começa. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 Formato: AAAA-MM-DD |
| produtos.contract_agreement.negotiated_currency | Obrigatório. Moeda do preço negociado. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| produtos.contrato_acordo.negociado_preço | Obrigatório. Preço unitário de um produto conforme negociado por meio de um contrato com o fornecedor ou revendedor. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| product.sku | Obrigatório. Número gerado por um fornecedor que identifica exclusivamente um produto vendido por esse fornecedor. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| ID_do_fornecedor | Obrigatório. Identificador do revendedor ou fornecedor com o qual o cliente pode fazer pedidos. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| id_de_importação_de_terceiros | Identificador que permite que um terceiro passe um valor de cadeia de caracteres para identificar exclusivamente um conjunto de dados importados. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
Cabeçalhos
Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta.
| Cabeçalho | Descrição |
|---|---|
| Aceitar | Formato de dados do corpo da resposta. Tipos compatíveis: application/json ou application/xml. Padrão: application/json |
| Cabeçalho | Descrição |
|---|---|
| Nenhum(a) |
Códigos de status
Os seguintes códigos de status se aplicam a esta ação HTTP.
| Código do status | Descrição |
|---|---|
| êxito | Bem-sucedido. A solicitação foi processada com sucesso. |
| falha | Mal-sucedido. A solicitação foi processada com erros. |
Parâmetros do corpo da resposta (JSON)
Esses parâmetros de corpo de resposta são recebidos quando consultados no modo síncrono.| Nome | Descrição |
|---|---|
| erro_resposta_corpo | Descrição dos erros, listados por SKU e mensagem de erro. Tipo de dados: matriz |
| error_response_body.error_message | Mensagem de erro detalhada. Tipo de dados: cadeia de caracteres |
| status_code | Status da resposta, como "sucesso" ou "falha". Tipo de dados: cadeia de caracteres |
Solicitação de cURL
curl "https://instance.service-now.com/api/sn_spend_intg/spendint/price" \
--request POST \
--header "Accept:application/json" \
--user 'username':'password'
{"root": [{
"customer_id": "ACME CORP",
"catalog_id": "AB-1234323",
"supplier_id": "SUP-123456",
“third_party_import_id”: “DEL789876",
"products": [
{
"sku": "5578874",
"contract_agreement": {
"contract_number": "34567892",
"contract_start_date": "YYYY-MM-DD",
"contract_end_date": "YYYY-MM-DD",
"negotiated_price": "456",
"negotiated_currency ": "USD"
}
}
]
}
]}
Possíveis respostas:
// Success response:
{
“result”: {
“response”: “success”
}
}
// Error response:
{
“result”: {
“response”: [
{
“customer_id”: “ACME CORP”,
“supplier_id”: “SUP-123456”,
“third_party_import_id”: “DEL789876",
“status_code”: “failure”,
“error_response_body”: [
{
“sku”: “5578874”,
“error_message”: “The product for which you are trying to update pricing does not exist\nField Value empty/Formatting issue Negotiated currency\nField Value empty/Formatting issue Contract start date\nField Value empty/Formatting issue Contract end date\n”
}
]
}
]
}
}
API Spendint - POST /sn_spend_intg/spendint/availability
Atualiza a disponibilidade dos registros de produto do fornecedor.
Quando os registros de produto do fornecedor estão disponíveis, a API usa o SKU do produto para encontrar um produto de fornecedor existente. Se existir um produto de fornecedor correspondente, o campo available_units correspondente será atualizado. Se nenhum produto do fornecedor correspondente for encontrado, será gerada uma mensagem de erro informando que o produto para o qual você está tentando atualizar a disponibilidade não existe.
Tabelas de status
Para saber o status da solicitação de atualização de disponibilidade, faça uma chamada REST no banco de dados ServiceNow usando a API REST de tabela. A resposta da API lista os registros em que a solicitação de atualização de disponibilidade falhou. Para atualizar a resposta de disponibilidade, consulte a tabela Erro de disponibilidade com o seguinte parâmetro:
sysparm_query=outbound_error.supplier_id=<supplier_id> ^outbound_error.state=20
Os detalhes sobre ID do cliente, ID do fornecedor, tipo de erro, ID do conjunto de importação exclusivo e estado podem ser encontrados na tabela Status de saída, que é a tabela de erros primária.
Formato da URL
/api/sn_spend_intg/spendint/availability
Parâmetros de solicitação compatíveis
| Nome | Descrição |
|---|---|
| Nenhum(a) |
| Nome | Descrição |
|---|---|
| modo | Suporte para modos assíncronos e síncronos para integração de terceiros. Tipo de dados: cadeia de caracteres Valores válidos:
Padrão: assíncrono |
| Nome | Descrição |
|---|---|
| catalog_id | Obrigatório. Identificador do conteúdo do catálogo que pode ser comprado por um cliente. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| customer_id | Obrigatório. Identificador do cliente. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| produtos | Lista de objetos que definem os produtos a serem atualizados. Cada transação tem um limite de 1.000 produtos. Tipo de dados: matriz |
| produtos.unidades_disponíveis | Necessário para produtos que são mantidos em estoque. Número de unidades disponíveis para este produto. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| product.sku | Obrigatório. Número gerado por um fornecedor que identifica exclusivamente um produto vendido por esse fornecedor. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| produtos.unidade | Obrigatório. Unidade ou taxa na qual o produto é vendido pelo fornecedor. Por exemplo, peças, horas e assim por diante. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| ID_do_fornecedor | Identificador do revendedor ou fornecedor com o qual o cliente pode fazer pedidos. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| id_de_importação_de_terceiros | Permite que um terceiro passe um valor de cadeia de caracteres para identificar exclusivamente um conjunto de dados importados. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
Cabeçalhos
Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta.
| Cabeçalho | Descrição |
|---|---|
| Aceitar | Formato de dados do corpo da resposta. Tipos compatíveis: application/json ou application/xml. Padrão: application/json |
| Cabeçalho | Descrição |
|---|---|
| Nenhum(a) |
Códigos de status
Os seguintes códigos de status se aplicam a esta ação HTTP.
| Código do status | Descrição |
|---|---|
| êxito | Bem-sucedido. A solicitação foi processada com sucesso. |
| falha | Mal-sucedido. A solicitação foi processada com erros. |
Parâmetros do corpo da resposta (JSON)
Esses parâmetros de corpo de resposta são recebidos quando consultados no modo síncrono.| Nome | Descrição |
|---|---|
| erro_resposta_corpo | Descrição dos erros, listados por SKU e mensagem de erro. Tipo de dados: matriz |
| error_response_body.error_message | Mensagem de erro detalhada. Tipo de dados: cadeia de caracteres |
| status_code | Status da resposta, como "sucesso" ou "falha". Tipo de dados: cadeia de caracteres |
Solicitação de cURL
curl "https://instance.servicenow.com/api/sn_spend_intg/spendint/availability" \
--request POST \
--header "Accept:application/json" \
--user 'username':'password'
{"root": [{
"customer_id": "AB-1234323",
"catalog_id": "ACME CORP",
"supplier_id": "SUP-123456",
"third_party_import_id": "DEL6789876",
"products": [
{
"sku": "5578874",
"unit": "Each",
"available_units": "20"
}
]
}
]}
Possíveis respostas:
// Success response:
{
"result": {
"response": "success"
}
}
Error response:
{
"result": {
"response": [
{
"customer_id": "AB-1234323",
"supplier_id": "SUP-123456",
"third_party_import_id": "DEL6789876",
"status_code": "failure",
"error_response_body": [
{
"sku": "5578874",
"error_message": "The product for which you are trying to update availability does not exist\nField Value empty/Formatting issue Unit\n"
}
]
}
]
}
}
API Spendint - POST /sn_spend_intg/spendint/orderack
Atualiza as informações de pedido para quando um usuário compra um produto de um catálogo de terceiros. Quando o usuário faz check-out, uma linha de compra é criada para que as aprovações ou outras tarefas da compra possam ser concluídas.
- Pedido de saída: contém o cabeçalho do pedido.
- Linha do pedido de saída: contém as linhas do pedido.
Os fornecedores precisam consultar essas tabelas e buscar os pedidos pendentes em relação a elas. Os fornecedores devem criar um app com escopo para ações Workflow Studio para integração com o banco de dados ServiceNow.
sysparm_query=supplier_id=<supplier_id> ^purchase_order.status=20 para cabeçalhosysparm_query=purchase_order.supplier_id=<supplier_id> ^purchase_order.status=20 para cabeçalho
- A ordem de compra e a linha da ordem de compra são enviadas para o Planejamento de recursos empresariais (ERP), se aplicável.
- A ordem de compra e a linha da ordem de compra são transferidas por meio da integração para o terceiro com o ID do cliente, ID do fornecedor, número da ordem de compra, data do pedido, valor da ordem de compra, moeda do valor da ordem de compra e linhas da ordem de compra.
- A ordem de compra e a linha da ordem de compra permanecem no estado Envio pendente até que as mensagens de confirmação sejam recebidas pela integração de catálogo de terceiros e pelo ERP. Depois que a confirmação for recebida, o estado será atualizado para Solicitado. Se não houver integração de ERP envolvida, uma mensagem de confirmação será necessária somente da integração de terceiros.
Tabelas de status
Para saber o status da solicitação de confirmação do pedido, faça uma chamada REST no banco de dados ServiceNow usando a API REST de tabela. A resposta da API lista os registros em que a solicitação de confirmação do pedido falhou. Para obter uma resposta de confirmação de pedido, consulte a tabela Erro de confirmação de pedido com o seguinte parâmetro:
sysparm_query=outbound_error.supplier_id=<supplier_id> ^outbound_error.state=20
Os detalhes sobre ID do cliente, ID do fornecedor, tipo de erro, ID do conjunto de importação exclusivo e estado podem ser encontrados na tabela Status de saída, que é a tabela de erros primária.
Formato da URL
/api/sn_spend_intg/spendint/orderack
Parâmetros de solicitação compatíveis
| Nome | Descrição |
|---|---|
| Nenhum(a) |
| Nome | Descrição |
|---|---|
| modo | Suporte para modos assíncronos e síncronos para integração de terceiros. Tipo de dados: cadeia de caracteres Valores válidos:
Padrão: assíncrono |
| Nome | Descrição |
|---|---|
| customer_id | Obrigatório. Identificador do cliente. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| order_number | Obrigatório. Número da ordem de compra fornecido pelo cliente para este pedido. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| linhas_pedido_de_vendas | Lista de objetos que definem as linhas da ordem de vendas com atualizações exclusivas para as compras nesta ordem. Tipo de dados: matriz |
| vendas_ordem_linhas.estimated_arrival_date | Data de chegada estimada do pedido. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 Formato: AAAA-MM-DD |
| vendas_ordem_linhas.line_number | Obrigatório. Número da linha da ordem de compra que foi gerado pelo cliente para uma compra específica. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| vendas_ordem_linhas.sales_order_line_number | Número da linha da ordem de vendas que foi gerado pelo fornecedor. Este número é necessário somente para revisões desta compra. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| número_pedido_de_vendas | Número ou valor gerado pelo fornecedor para este pedido. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| status_code | Obrigatório. Status do pedido enviado que confirma se o pedido foi feito com sucesso. Tipo de dados: cadeia de caracteres Valores válidos:
|
| status_message | Mensagem anexada a um código de status. Por exemplo, a mensagem pode ser que o pedido foi feito com sucesso e está em espera. Tipo de dados: cadeia de caracteres Tamanho máximo: 1000 |
| ID_do_fornecedor | Obrigatório. Identificador do revendedor ou fornecedor com o qual o cliente pode fazer pedidos. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| id_de_importação_de_terceiros | Identificador que permite que um terceiro passe um valor de cadeia de caracteres para identificar exclusivamente um conjunto de dados importados. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
Cabeçalhos
Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta.
| Cabeçalho | Descrição |
|---|---|
| Aceitar | Formato de dados do corpo da resposta. Tipos compatíveis: application/json ou application/xml. Padrão: application/json |
| Cabeçalho | Descrição |
|---|---|
| Nenhum(a) |
Códigos de status
Os seguintes códigos de status se aplicam a esta ação HTTP.
| Código do status | Descrição |
|---|---|
| êxito | Bem-sucedido. A solicitação foi processada com sucesso. |
| falha | Mal-sucedido. A solicitação foi processada com erros. |
Parâmetros do corpo da resposta (JSON)
Esses parâmetros de corpo de resposta são recebidos quando consultados no modo síncrono.| Nome | Descrição |
|---|---|
| erro_resposta_corpo | Descrição dos erros, listados pelo número da ordem de vendas, número da linha da ordem de vendas e mensagem de erro. Tipo de dados: matriz |
| error_response_body.error_message | Mensagem de erro detalhada. Tipo de dados: cadeia de caracteres |
| status_code | Status da resposta, como "sucesso" ou "falha". Tipo de dados: cadeia de caracteres |
Solicitação de cURL
curl "https://instance.service-now.com/api/sn_spend_intg/spendint/orderack" \
--request POST \
--header "Accept:application/json" \
--user 'username':'password'
{"root":[{
"customer_id": "ACME CORP",
"supplier_id": "SUP-123456",
"third_party_import_id": "undefined",
"order_number": "PO08903323",
"sales_order_number": "SO03323212",
"status_code": "CONFIRMED",
"status_message": "BACKORDERED",
"sales_order_lines":[
{
"line_number": "POL6789876",
"sales_order_line_number": "SOL5678909",
"estimated_arrival_date": "YYYY-MM-DD"
}
]
}
]}
Possíveis respostas:
// Success response:
{
"result": {
"response": "success"
}
}
// Error response:
{
"result": {
"response": [
{
"customer_id": "ACME CORP",
"supplier_id": "SUP-123456",
"third_party_import_id": "undefined",
"status_code": "failure",
"error_response_body": [
{
"sales_order_number": "SO03323212",
"sales_order_line_number": "SOL5678909",
"error_message": "Field Value empty/Formatting issue Purchase order number\nField Value empty/Formatting issue Purchase order line number\n"
}
]
}
]
}
}
API Spendint - POST /sn_spend_intg/spendint/shipment
Use este endpoint para aceitar atualizações em compras de terceiros.
Tabelas de status
Para saber o status da solicitação de envio, faça uma chamada REST no banco de dados ServiceNow usando a API REST de tabela. A resposta da API lista os registros em que a atualização de envio falhou. Para obter uma resposta de envio, consulte a tabela Erro de Remessa com o seguinte parâmetro:
sysparm_query=outbound_error.supplier_id=<supplier_id> ^outbound_error.state=20
Os detalhes sobre ID do cliente, ID do fornecedor, tipo de erro, ID do conjunto de importação exclusivo e estado podem ser encontrados na tabela Status de saída, que é a tabela de erros primária.
Formato da URL
/api/sn_spend_intg/spendint/remessa
Parâmetros de solicitação compatíveis
| Nome | Descrição |
|---|---|
| Nenhum(a) |
| Nome | Descrição |
|---|---|
| modo | Suporte para modos assíncronos e síncronos para integração de terceiros. Tipo de dados: cadeia de caracteres Valores válidos:
Padrão: assíncrono |
| Nome | Descrição |
|---|---|
| customer_id | Identificador do cliente. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| order_number | Obrigatório. Número da ordem de compra fornecido pelo cliente para esta ordem. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| número_pedido_de_vendas | Obrigatório. Número ou valor gerado pelo fornecedor para este pedido. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| remessas_linhas | Lista de linhas de remessa que podem conter o número de série, o número IMEI e os detalhes da etiqueta do ativo. Tipo de dados: matriz |
| remessa_lines.actual_shipment_date | Data em que a remessa sai do local do fornecedor. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 Formato: AAAA-MM-DD |
| remessa_lines.estimated_arrival_date | Data em que a remessa deve chegar ao local especificado. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 Formato: AAAA-MM-DD |
| remessa_lines.line_number | Obrigatório. Número da linha da ordem de compra que é gerado pelo cliente para uma compra específica. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| remessa_lines.planned_shipment_date | Data em que a remessa está planejada para deixar o local do fornecedor. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 Formato: AAAA-MM-DD |
| remessa_lines.product_details | Lista de objetos que definem os detalhes sobre os produtos que estão sendo enviados. As opções incluem o número de série, o número IMEI e os detalhes da etiqueta do ativo. Tipo de dados: matriz |
| remessa_lines.product_details.asset_tag | Etiqueta do ativo do produto enviado. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| remessa_lines.product_details.imei | Número IMEI do produto enviado. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| remessa_lines.product_details.serial_number | Obrigatório. Número de série do produto enviado. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| remessa_linhas.vendas_ordem_número_da_linha | Número da linha da ordem de vendas que é gerado pelo fornecedor. Este número é necessário somente para revisões desta compra. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| linhas_de_envio.endereço_de_envio | Endereço para onde os produtos estão sendo enviados. Tipo de dados: objeto |
| shipment_lines.shipping_address.city | Nome da cidade para onde os produtos são enviados. Tipo de dados: cadeia de caracteres Tamanho máximo: 1000 |
| shipment_lines.shipping_address.country | País para onde os produtos são enviados. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| shipment_lines.shipping_address.name | Nome do cliente para o qual os produtos estão sendo enviados. Tipo de dados: cadeia de caracteres Tamanho máximo: 1000 |
| linhas_de_envio.endereço_de_envio.estado | Estado para o qual os produtos são enviados. Tipo de dados: cadeia de caracteres Tamanho máximo: 1000 |
| linhas_de_envio.endereço_de_envio.rua | Nome da rua para onde os produtos são enviados. Tipo de dados: cadeia de caracteres Tamanho máximo: 1000 |
| linhas_de_envio.endereço_de_envio.código_zip | CEP ou código PIN para o qual os produtos são enviados. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| remessa_linhas.envio_quantidade | Obrigatório. Número de produtos enviados como mercadorias físicas. O número deve conter a quantidade de produtos que estão na remessa. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| linhas_de_envio.transportadora_do_envio | Transportadora que está entregando o produto no local especificado, como FedEx, UPS, USPS e assim por diante. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| linhas_de_envio.envio_para | Nome do destinatário para o qual os produtos são enviados. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| remessa_linhas.número_de_acompanhamento | Número de acompanhamento fornecido pela transportadora para a compra inteira ou parcial. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| ID_do_fornecedor | Obrigatório. Identificador do revendedor ou fornecedor com o qual o cliente pode fazer pedidos. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| fornecedor_remessa_número | Obrigatório. Número de identificação gerado para esta remessa. Normalmente, esse número é gerado por um sistema de planejamento de recursos empresariais (ERP) ou de acompanhamento de pedidos. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| id_de_importação_de_terceiros | Identificador que permite que um terceiro passe um valor de cadeia de caracteres para identificar exclusivamente um conjunto de dados importados. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
Cabeçalhos
Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta.
| Cabeçalho | Descrição |
|---|---|
| Aceitar | Formato de dados do corpo da resposta. Tipos compatíveis: application/json ou application/xml. Padrão: application/json |
| Cabeçalho | Descrição |
|---|---|
| Nenhum(a) |
Códigos de status
Os seguintes códigos de status se aplicam a esta ação HTTP.
| Código do status | Descrição |
|---|---|
| êxito | Bem-sucedido. A solicitação foi processada com sucesso. |
| falha | Mal-sucedido. A solicitação foi processada com erros. |
Parâmetros do corpo da resposta (JSON)
Esses parâmetros de corpo de resposta são recebidos quando consultados no modo síncrono.| Nome | Descrição |
|---|---|
| erro_resposta_corpo | Descrição dos erros, listados pelo número da linha da ordem de vendas, número da ordem de vendas, número de remessa do fornecedor e a mensagem de erro. Tipo de dados: matriz |
| error_response_body.error_message | Mensagem de erro detalhada. Tipo de dados: cadeia de caracteres |
| status_code | Status da resposta, como "sucesso" ou "falha". Tipo de dados: cadeia de caracteres |
Solicitação de cURL
curl "https://instance.service-now.com/api/sn_spend_intg/spendint/shipment" \
--request POST \
--header "Accept:application/json" \
--user 'username':'password'
{"root":[{
"customer_id" : "ACME CORP",
"supplier_id" : "SUP-123456",
"third_party_import_id": "DEL2134324",
"supplier_shipment_number" : "TN-YU67898723",
"order_number": "PO0001002",
"sales_order_number": "SO00223002",
"shipment_lines": [
{
"line_number": "POL0001005",
"sales_order_line_number": "SOL0231325",
"shipment_quantity": "4",
"shipping_carrier": "FedEx",
"tracking_number": "E-901290092",
"shipping_address":
{
"name" : "1640 Camino Del Rio North #202, San Diego,CA",
"street" : "1640 Camino Del Rio North",
"city" : "San Diego",
"state" : "CA",
"zip_code" : "92108-1512",
"country" : "US"
},
"ship_to": "John doe",
"planned_shipment_date": "YYYY-MM-DD",
"actual_shipment_date": "YYYY-MM-DD",
"estimated_arrival_date": "YYYY-MM-DD",
"product_details": [
{
"serial_number": "FL1234-23242319001",
"imei": "2134890294",
"asset_tag": ""
},{
"serial_number": "FL1234-23242319110",
"imei": "245499003",
"asset_tag": ""
}
]
}
]
}
]}
Possíveis respostas:
// Success response:
{
"result": {
"response": "success"
}
}
// Error response:
{
"result": {
"response": [
{
"customer_id": "ACME CORP",
"supplier_id": "SUP-123456",
"third_party_import_id": "DEL2134324",
"status_code": "failure",
"error_response_body": [
{
"sales_order_line_number": "SOL0231325",
"sales_order_number": "SO00223002",
"supplier_shipment_number": "TN-YU67898723",
"error_message": "The purchase order for this shipment does not exist\nThe purchase order line for this shipment does not exist\n"
}
]
}
]
}
}
API Spendint - POST /sn_spend_intg/spendint/invoice
Aceita faturas de provedores terceirizados.
Se as linhas da ordem de compra e da ordem de compra estiverem com o status Envio pendente e as linhas da ordem de vendas e da ordem de vendas não estiverem preenchidas, a publicação de remessa e fatura do revendedor terceirizado não será permitida. Isso só é permitido quando o status da ordem de compra e as linhas da ordem de compra são Encomendado. Além disso, não há restrição sequencial na publicação de remessa e fatura.
- Aguardando entrega: quando não houver recibos, o pedido foi parcialmente entregue ou a fatura requer aprovação.
- Fatura confirmada: quando a ordem de compra é entregue e o valor faturado corresponde ao valor total da ordem de compra.
- Requer revisão: quando a ordem de compra é entregue e o valor faturado não corresponde ao valor total da ordem de compra.
Quando uma fatura válida é publicada para um item de linha, a mesma fatura não pode ser atualizada.
Se a fatura fornecida não tiver um número de ordem de compra, a fatura será rejeitada e você verá uma mensagem de erro informando que uma ou mais faturas fornecidas não têm um número de ordem de compra. Se a fatura fornecida tiver um número de ordem de compra, mas não corresponder à ordem de compra ou não existir nenhuma ordem de compra, você verá uma mensagem de erro. A mensagem informa que uma ou mais faturas não têm uma ordem de compra correspondente que corresponda ao número da ordem de compra da fatura. Além disso, se o valor faturado enviado pelo revendedor terceirizado não corresponder ao valor faturado, a fatura será rejeitada.
Tabelas de status
Para saber o status da solicitação de fatura, faça uma chamada REST no banco de dados ServiceNow usando a API REST de tabela. A resposta da API lista os registros em que a criação da fatura falhou. Para resposta de fatura, consulte a tabela Erro de fatura com o seguinte parâmetro:
sysparm_query=outbound_error.supplier_id=<supplier_id> ^outbound_error.state=20
Os detalhes sobre ID do cliente, ID do fornecedor, tipo de erro, ID do conjunto de importação exclusivo e estado podem ser encontrados na tabela Status de saída, que é a tabela de erros primária.
Formato da URL
/api/sn_spend_intg/spendint/invoice
Parâmetros de solicitação compatíveis
| Nome | Descrição |
|---|---|
| Nenhum(a) |
| Nome | Descrição |
|---|---|
| modo | Suporte para modos assíncronos e síncronos para integração de terceiros. Tipo de dados: cadeia de caracteres Valores válidos:
Padrão: assíncrono |
| Nome | Descrição |
|---|---|
| moeda | Obrigatório. Moeda para subtotal, imposto e envio. O subtotal, o imposto e o envio devem estar na mesma moeda. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| customer_id | Identificador do cliente. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| descontos | Descontos aplicados à fatura. Este é um campo editável. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| data_fatura | Obrigatório. Data em que o cliente foi faturado. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 Formato: AAAA-MM-DD |
| faturas_linhas | Lista de objetos que define as linhas que estão sendo faturadas para compras neste pedido. Tipo de dados: matriz |
| linhas_faturas.valor_linha_faturado | Obrigatório. Custo total, excluindo impostos e envio, que um cliente está sendo faturado para uma determinada linha de ordem de compra. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| linhas_da_fatura.quantidade_da_fatura | Obrigatório. Quantidade de bens ou serviços pela qual um cliente está sendo faturado. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| fatura_linhas.número_da_linha | Obrigatório. Número da linha da ordem de compra que é gerado pelo cliente para uma compra específica. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| fatura_linhas.vendas_ordem_número_da_linha | Obrigatório. Número da linha da ordem de vendas que é gerado pelo fornecedor. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| fatura_linhas.fornecedor_invoice_line_number | Obrigatório. Número de identificação gerado por um fornecedor para esta linha de fatura. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| outras_cargas | Outras cobranças adicionais associadas à fatura. Este é um campo editável. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| order_number | Obrigatório. Número da ordem de compra fornecido pelo cliente para esta ordem. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| remeter_para_endereço | Obrigatório. Local para o qual um pagamento é feito. Tipo de dados: cadeia de caracteres Tamanho máximo: 1000 |
| número_pedido_de_vendas | Obrigatório. Número ou valor gerado pelo fornecedor para este pedido. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| remessa | Obrigatório. Custo total de envio para a compra inteira. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| subtotal | Obrigatório. Valor total a ser pago ao fornecedor, excluindo impostos e taxas de envio. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| ID_do_fornecedor | Obrigatório. Identificador do revendedor ou fornecedor com o qual o cliente pode fazer pedidos. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| fornecedor_invoice_number | Obrigatório. Número de identificação gerado por um fornecedor para esta fatura. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| ID_do_taxa_do_fornecedor | Identificador de imposto associado ao revendedor terceirizado. Este é um campo editável. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| imposto | Obrigatório. Valor total de impostos cobrados pela compra. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| taxa_taxa | Porcentagem da taxa de imposto aplicada ao pedido. Este é um campo editável. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| id_de_importação_de_terceiros | Identificador que permite que um terceiro passe um valor de cadeia de caracteres para identificar exclusivamente um conjunto de dados importados. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| total_valor_faturado | Obrigatório. Valor total a ser pago ao fornecedor, incluindo impostos e taxas de envio. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
Cabeçalhos
Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta.
| Cabeçalho | Descrição |
|---|---|
| Aceitar | Formato de dados do corpo da resposta. Tipos compatíveis: application/json ou application/xml. Padrão: application/json |
| Cabeçalho | Descrição |
|---|---|
| Nenhum(a) |
Códigos de status
Os seguintes códigos de status se aplicam a esta ação HTTP.
| Código do status | Descrição |
|---|---|
| êxito | Bem-sucedido. A solicitação foi processada com sucesso. |
| falha | Mal-sucedido. A solicitação foi processada com erros. |
Parâmetros do corpo da resposta (JSON)
Esses parâmetros de corpo de resposta são recebidos quando consultados no modo síncrono.| Nome | Descrição |
|---|---|
| erro_resposta_corpo | Descrição dos erros, listados pelo número da linha da ordem de vendas, número da ordem de vendas, número da fatura do fornecedor, número da linha da fatura do fornecedor e a mensagem de erro. Tipo de dados: matriz |
| error_response_body.error_message | Mensagem de erro detalhada. Tipo de dados: cadeia de caracteres |
| status_code | Status da resposta, como "sucesso" ou "falha". Tipo de dados: cadeia de caracteres |
Solicitação de cURL
curl "https://instance.service-now.com/api/sn_spend_intg/spendint/invoice" \
--request POST \
--header "Accept:application/json" \
--user 'username':'password'
{"root":[{
"customer_id": "Customer - A",
"supplier_id": "SUP-123456",
"third_party_import_id": "undefined",
"supplier_invoice_number": "QAAP89873220071",
"supplier_tax_id": "TIN000000",
"order_number": "POL7987633",
"sales_order_number": "SO0000000081",
"invoice_date": "YYYY-MM-DD",
"subtotal": "6000",
"tax_rate": "10%",
"tax": "600",
"shipping": "120",
"other_charges": "100",
"discounts": "200",
"total_amount_invoiced": "6620",
"remit_to_address": "1640 Camino Del Rio North #202, San Diego,CA",
"currency": "USD",
"invoice_lines": [
{
"supplier_invoice_line_number": "QA789A867877ABN32251",
"line_number": "POL587667",
"sales_order_line_number": "SOL00000081",
"invoiced_quantity": "45",
"invoiced_line_amount": "4000"
},
{
"line_number": "POL587668",
"supplier_invoice_line_number": "78987323",
"sales_order_line_number": "SOL98769",
"invoiced_quantity": "12",
"invoiced_line_amount": "2000"
}
]
}
]}
Possíveis respostas:
// Success response:
{
"result": {
"response": "success"
}
}
// Error response:
{
"result": {
"response": [
{
"customer_id": "Customer - A",
"supplier_id": "SUP-123456",
"third_party_import_id": "undefined",
"status_code": "failure",
"error_response_body": [
{
"sales_order_line_number": "SOL00000081",
"sales_order_number": "SO0000000081",
"supplier_invoice_number": "QAAP89873220071",
"supplier_invoice_line_number": "QA789A867877ABN32251",
"error_message": "The invoice do not have a corresponding purchase order which matches the purchase order number of the invoice provided\n"
}
]
}
]
}
}