API Spendint : POST /sn_spend_intg/spendint/shipment

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 6 minutes de lecture
  • Utilisez ce point de terminaison pour accepter les mises à jour sur les achats auprès de tiers.

    Lorsque vous recevez des données, vous devez faire correspondre les données d’expédition à une ligne de bon de commande à l’aide du numéro de ligne de commande client. Vous pouvez utiliser le numéro de suivi pour rechercher un enregistrement de détail d’expédition existant associé à la ligne de bon de commande. Si aucun enregistrement de ce type n’est trouvé, créez un nouvel enregistrement de détails d’expédition. S’il n’existe pas de bon de commande ou de ligne de bon de commande pour les données d’expédition, un message d’erreur s’affiche indiquant que le bon de commande pour cette expédition n’existe pas.
    Remarque :
    Si le bon de commande et les lignes de bon de commande sont à l’état Soumission en attente et que les lignes de commande client et de commande client ne sont pas renseignées, l’expédition et la validation de facture du revendeur tiers ne sont pas autorisées. Cela n’est autorisé que lorsque l’état du bon de commande et des lignes de bon de commande sont Commandé. De plus, il n’y a pas de restriction séquentielle sur l’expédition et la publication des factures.

    Tables d’état

    Pour connaître l’état de la demande d’expédition, effectuez un appel REST dans la base de données à l’aide ServiceNow de l’API REST de table. La réponse de l’API répertorie les enregistrements dans lesquels la mise à jour de l’expédition a échoué. Pour obtenir une réponse à l’expédition, interrogez la table Erreur d’expédition avec le paramètre suivant :

    sysparm_query=outbound_error.supplier_id=<supplier_id>^outbound_error.state=20

    Les détails sur l’ID client, l’ID du fournisseur, le type d’erreur, l’ID unique de l’ensemble de données à importer et l’état se trouvent dans la table État sortant, qui est la table d’erreurs parente.

    Format d’URL

    /api/sn_spend_intg/spendint/shipment

    Paramètres de demande pris en charge

    Tableau 1. Paramètres de chemin d’accès
    Nom Description
    Aucune
    Tableau 2. Paramètres de requête
    Nom Description
    Mode Prise en charge des modes asynchrone et synchrone pour l’intégration tierce.

    Type de données : chaîne

    Valeurs valides :
    • async : mode asynchrone.
    • sync : mode synchrone.

    Valeur par défaut : asynchrone

    Tableau 3. Paramètres du corps de la demande (XML ou JSON)
    Nom Description
    customer_id Identificateur du client.

    Type de données : chaîne

    Longueur maximale : 100

    order_number Requis. Numéro de bon de commande fourni par le client pour cette commande.

    Type de données : chaîne

    Longueur maximale : 40

    sales_order_number Requis. Nombre ou valeur générée par le fournisseur pour cette commande.

    Type de données : chaîne

    Longueur maximale : 40

    shipment_lines Liste des lignes d’expédition qui peuvent contenir les détails du numéro de série, du numéro IMEI et de la balise d’actif des actifs.

    Type de données : tableau

    "shipment_lines": [
      {
        "actual_shipment_date": "String",
        "estimated_arrival_date": "String",
        "line_number": "String",
        "planned_shipment_date": "String",
        "product_details": [Array],
        "sales_order_line_number": "String",
        "shipping_address": {Object},
        "shipping_carrier": "String",
        "shipment_quantity": "String",
        "ship_to": "String",
        "tracking_number": "String"
      }
    ]
    shipment_lines.date_envoi_réelle Date à laquelle l’expédition quitte l’emplacement du fournisseur.

    Type de données : chaîne

    Longueur maximale : 40

    Format : JJ-MM-AAAA

    shipment_lines.date_arrivée_estimée Date à laquelle l’expédition devrait arriver à l’emplacement spécifié.

    Type de données : chaîne

    Longueur maximale : 40

    Format : JJ-MM-AAAA

    shipment_lines.numéro_ligne Requis. Numéro de la ligne de bon de commande généré par le client pour un achat particulier.

    Type de données : chaîne

    Longueur maximale : 40

    shipment_lines. date_expédition_planifiée Date à laquelle l’expédition devrait quitter l’emplacement du fournisseur.

    Type de données : chaîne

    Longueur maximale : 40

    Format : JJ-MM-AAAA

    shipment_lines. détails_du_produit Liste des objets qui définissent les détails sur les produits expédiés. Les options incluent le numéro de série, le numéro IMEI et les détails de la balise d’actif.

    Type de données : tableau

    "product_details": [
      {
        "asset_tag": "String",
        "imei": "String",
        "serial_number": "String"
      }
    ]
    shipment_lines.product_details.asset_tag Balise d’actif du produit expédié.

    Type de données : chaîne

    Longueur maximale : 100

    shipment_lines.product_details.imei Numéro IMEI du produit expédié.

    Type de données : chaîne

    Longueur maximale : 100

    shipment_lines.product_details.serial_number Requis. Numéro de série du produit expédié.

    Type de données : chaîne

    Longueur maximale : 100

    shipment_lines.numéro_ligne_commande_ventes Numéro de ligne de commande client généré par le fournisseur. Ce numéro est requis uniquement pour les révisions de cet achat.

    Type de données : chaîne

    Longueur maximale : 40

    shipment_lines. adresse_livraison Adresse à laquelle les produits sont expédiés.

    Type de données : objet

    "shipping_address":
      {
        "city": "String",
        "country": "String",
        "name": "String",
        "state": "String",
        "street": "String",
        "zip_code": "String"
      }
    shipment_lines.shipping_address.city Nom de la ville où les produits sont expédiés.

    Type de données : chaîne

    Longueur maximale : 1000

    shipment_lines.shipping_address.country Pays vers lequel les produits sont expédiés.

    Type de données : chaîne

    Longueur maximale : 40

    shipment_lines.shipping_address.name Nom du client auquel les produits sont expédiés.

    Type de données : chaîne

    Longueur maximale : 1000

    shipment_lines.adresse_livraison.état État d’origine de l’expédition des produits.

    Type de données : chaîne

    Longueur maximale : 1000

    shipment_lines.adresse_livraison.rue Nom de la rue vers laquelle les produits sont expédiés.

    Type de données : chaîne

    Longueur maximale : 1000

    shipment_lines.shipping_address.zip_code Code postal ou code PIN vers lequel les produits sont expédiés.

    Type de données : chaîne

    Longueur maximale : 40

    shipment_lines. quantité_expédition Requis. Nombre de produits expédiés en tant que biens physiques. Le nombre doit contenir la quantité de produits qui se trouvent dans l’envoi.

    Type de données : chaîne

    Longueur maximale : 40

    shipment_lines.transporteur_d’expédition Transporteur qui livre le produit à l’emplacement spécifié, tel que FedEx, UPS, USPS, etc.

    Type de données : chaîne

    Longueur maximale : 100

    shipment_lines.ship_to Nom du destinataire vers lequel les produits sont expédiés.

    Type de données : chaîne

    Longueur maximale : 100

    shipment_lines.numéro_suivi Numéro de suivi fourni par le transporteur pour tout ou partie de l’achat.

    Type de données : chaîne

    Longueur maximale : 100

    supplier_id Requis. Identificateur du revendeur ou du fournisseur auprès duquel le client peut passer des commandes.

    Type de données : chaîne

    Longueur maximale : 100

    supplier_shipment_number Requis. Numéro d’identification généré pour cet envoi. En règle générale, ce numéro est généré par un progiciel de gestion intégré (ERP) ou un système de suivi des commandes.

    Type de données : chaîne

    Longueur maximale : 100

    third_party_import_id Identificateur qui permet à un tiers de transmettre une valeur de chaîne pour identifier de manière unique un ensemble de données importées.

    Type de données : chaîne

    Longueur maximale : 100

    En-têtes

    Les en-têtes de demande et de réponse suivants s’appliquent uniquement à cette action HTTP ou s’appliquent à cette action d’une manière distincte.

    Tableau 4. En-têtes de demandes
    En-tête Description
    Accepter Format des données du corps de la réponse. Types pris en charge : application/json ou application/xml.

    Par défaut : application/json

    Remarque :
    Seul le format de données est pris en charge pour Procurement application/json Integration Framework.
    Tableau 5. En-têtes de réponses
    En-tête Description
    Aucune

    Codes d'état

    Les codes d’état suivants s’appliquent à cette action HTTP.

    Tableau 6. Codes d'état
    Code d'état Description
    réussite Réussi. La demande a été traitée avec succès.
    échec En échec. La demande a été traitée avec des erreurs.

    Paramètres du corps de réponse (JSON)

    Ces paramètres de corps de réponse sont reçus lorsqu’ils sont interrogés en mode synchrone.
    Nom Description
    error_response_body Description des erreurs, répertoriées par numéro de ligne de commande, numéro de commande client, numéro d’expédition du fournisseur et message d’erreur.

    Type de données : tableau

    error_response_body.message_erreur Message d’erreur détaillé.

    Type de données : chaîne

    status_code État de la réponse tel que « réussite » ou « échec ».

    Type de données : chaîne

    Demande 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": ""
            }
          ]
        }
      ]
    }
    ]}

    Réponses possibles :

    // 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"
                        }
                    ]
                }
            ]
        }
    }