Spendint API

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 51분
  • Spendint API는 외부 공급업체의 카탈로그, 가격, 가용성, 주문, 배송 및 송장 정보를 인스턴스로 푸시하는 엔드포인트를 ServiceNow 제공합니다. 이 API는 애플리케이션의 일부입니다 소싱-지급(S2P) 통합 프레임워크 .

    이 API에는 com.glide.sn_spend_intg(구매 통합 프레임워크) 스토어 애플리케이션이 필요하며 sn_spend_intg 네임스페이스 내에서 제공됩니다. 자세한 내용은 Procurement File Transfer Framework 문서를 참조하십시오.

    이 API에 액세스하려면 sn_spend_intg.procurement_integrator 역할이 있어야 합니다.

    Spendint API - POST /sn_spend_intg/spendint/catalog

    공급자가 공급자 제품, 모델 제품, 계약 및 가격 책정 기록을 생성하기 위해 여러 카탈로그를 게시할 수 있습니다.

    카탈로그 API 통합에서 외부 공급업체 카탈로그로부터 데이터를 수신하면 다음을 수행할 수 있습니다.
    1. 새 외부 공급업체 범주를 만들고 이러한 범주를 모델 범주에 매핑합니다.
      • 사용 가능한 경우 UNSPSC(UNSPSC 표준 제품 및 서비스 코드)를 사용한 다음 범주 이름을 사용합니다.
      • UNSPSC를 사용할 수 없는 경우 범주 이름만 사용합니다.
    2. 외부 공급업체 범주를 모델 범주에 매핑한 후 MPN(제조업체 부품 번호)을 사용하여 기존 제품 모델(있는 경우)을 찾습니다.
      1. MPN에 대한 제품 모델이 발견되면 변경 내용으로 제품 모델을 업데이트한 다음 제품 모델과 관련된 공급자 제품을 만들거나 업데이트합니다.
      2. MPN에 대한 제품 모델이 없는 경우 다음을 수행합니다.
        1. 제품 모델 클래스는 일반적으로 제품의 외부 공급업체 범주에서 참조하는 모델 범주에서 사용할 수 있습니다. 이 제품 모델 클래스를 사용하여 제품 모델을 작성해야 하는 제품 모델 테이블(예: 하드웨어, 소프트웨어, 소모품 등)을 가져옵니다. 사용할 수 있는 제품 모델 클래스가 없는 경우 기본 제품 모델 테이블에서 제품 모델을 만듭니다.
        2. 올바른 제품 모델 클래스를 식별한 후 다음과 같이 올바른 클래스에서 새 제품 모델을 만듭니다.
          • 제조업체, 게시자 또는 제공자는 제품 모델의 제조업체에 매핑되어야 합니다.
          • API의 제품 이름은 제품 모델의 이름에 매핑되어야 합니다.
          • API의 MPN은 모델 번호를 업데이트해야 합니다.
          • API의 제품 설명은 제품 모델의 설명을 업데이트해야 합니다.
          • 모델 범주는 외부 공급업체 범주 기록에서 참조하는 제품 범주로 업데이트해야 합니다.
          • 제품 범주는 외부 공급업체 범주 기록에서 참조하는 제품 범주로 업데이트해야 합니다.
          • API에서 대체 제품에 값이 있는 경우 현재 제품 모델과 다른 제품 모델 간에 대체 제품 기록을 생성합니다.
          • API에 호환되는 제품에 값이 있는 경우 현재 제품 모델과 다른 제품 모델 간에 호환 가능한 제품 기록을 생성합니다.
          • API의 제품 속성은 제품 모델의 제품 속성 관련 목록에서 생성하거나 업데이트해야 합니다.
    3. 제품 모델을 사용할 수 있는 경우 공급자 부품 번호를 사용하여 제품 모델과 관련된 공급자 제품을 생성하거나 업데이트합니다.

    외부 공급업체 매핑

    다음 테이블을 사용하여 외부 공급업체 범주, 모델 및 단위 매핑을 수행합니다.
    • 외부 공급업체 범주: ShoppingHub 관리자가 내부 기존 모델 범주와 매핑할 수 있는 모든 외부 공급업체 범주 기록을 저장합니다.
    • 외부 공급업체 모델 매핑: 제품 모델과 외부 공급업체 모델 범주 간의 모든 매핑 정보를 저장합니다.
    • 외부 공급업체 단위: ShoppingHub 관리자가 공급자 제품 단위와 매핑할 수 있도록 모든 외부 공급업체 단위 기록을 저장합니다.
    • 외부 공급업체 단위 매핑: 제품 모델과 외부 공급업체 단위 간의 모든 매핑 정보를 저장합니다.
    주:
    외부 공급업체 통합 제품은 외부 공급업체 범주와 외부 공급업체 단위가 모두 적절하게 매핑되면 자동으로 게시됩니다.

    공급자 제품 판매 날짜

    공급자 제품은 판매 종료 날짜에 도달하면 단종되며 더 이상 카탈로그에 게시되지 않습니다. 공급자 제품 양식의 판매 시작 날짜판매 종료 날짜 필드는카탈로그 API에서 외부 공급업체 통합을 통해 채워집니다.

    상태 테이블

    벌크 제품 임포트 요청의 상태를 알려면 테이블 REST API를 사용하여 데이터베이스에 ServiceNow 대한 REST 호출을 수행합니다. API의 응답에는 대량 임포트 요청이 실패한 기록이 나열됩니다. 대량 제품 임포트 응답의 경우 다음 매개변수를 사용하여 카탈로그 오류 테이블을 쿼리합니다.

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

    고객 ID, 공급자 ID, 오류 유형, 고유 임포트 세트 ID 및 상태에 대한 자세한 내용은 상위 오류 테이블인 아웃바운드 상태 테이블에서 확인할 수 있습니다.

    URL 형식

    /api/sn_spend_intg/spendint/catalog

    지원되는 요청 매개변수

    표 1. 경로 매개변수
    이름 설명
    없음
    표 2. 쿼리 매개변수
    이름 설명
    모드 타사 통합을 위한 비동기식 및 동기식 모드를 지원합니다.

    데이터 유형: 문자열

    유효한 값은 다음과 같습니다.
    • async: 비동기 모드입니다.
    • sync: 동기 모드입니다.

    기본값: 비동기

    표 3. 요청 본문 매개변수(XML 또는 JSON)
    이름 설명
    customer_id 고객의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    catalog_id 고객이 구매할 수 있는 카탈로그 콘텐츠의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    제품 만들거나 업데이트할 제품을 정의하는 객체의 목록입니다. 각 트랜잭션의 제품 제한은 1,000개입니다.

    데이터 유형: 배열

    "products": [
      {
        "available_units": "String",
        "available_for_country": [Array],
        "bundled_components": [Array],
        "contract_agreement": {Object},
        "delivery_time": "String",
        "images": [Array],
        "manufacturer": "String",
        "mpn": "String",
        "parent_bundle": "String",
        "product_attributes": {Object},
        "product_category_name": "String",
        "product_description": "String",
        "product_name": "String",
        "sku": "String",
        "unit": "String",
        "unspsc": "String",
      }
    ]
    products.available_units 재고가 유지되는 제품에 필요합니다. 이 값은 이 제품에 사용할 수 있는 단위의 수량을 나타냅니다.

    데이터 유형: 문자열

    최대 길이: 40

    products.available_for_country 공급자 제품을 구매할 수 있는 국가 코드 목록입니다. 국가가 제공되지 않으면 모든 국가의 사용자가 제품을 구입할 수 있습니다.

    데이터 유형: 배열

    "available_for_country": ["US","IN","GB"]
    products.bundled_components 제품 번들을 카탈로그 페이로드의 일부로 보내는 시나리오에서만 유효하며 상위 번들 페이로드에만 적용할 수 있습니다. 이 값에는 하위 번들 구성요소에 대한 참조가 포함되어 있습니다. 하위 번들 구성요소의 MPN 및 수량 목록은 여기에서 유지됩니다.
    주:
    동일한 하위 번들 구성요소를 번들 내에 두 번 이상 추가할 수 있으므로 입력한 수량이 동일한 하위 번들 구성요소 간의 구별 요소입니다.
    하위 번들 구성요소와 해당 상세 정보(MPN 및 수량)는 동일한 공급자에 매핑되어야 합니다.

    데이터 유형: 배열

    "bundled_components": [
      {
        "mpn": "String",
        "quantity": "String"
      }
    ]
    products.contract_agreement 제품에 대한 계약의 상세 정보입니다.
    주:
    하위 번들 구성요소에는 필요하지 않습니다.

    데이터 유형: 객체

    "contract_agreement": {
      "contract_end_date": "String",
      "contract_number": "String",
      "contract_start_date": "String",
      "negotiated_currency ": "String",
      "negotiated_price": "String"
    }
    products.contract_agreement.contract_end_date 계약 기간이 종료되는 날짜입니다.

    데이터 유형: 문자열

    최대 길이: 40

    형식: YYYY-MM-DD

    products.contract_agreement.contract_number 필수 제품과 연결된 활성 계약의 수입니다.

    데이터 유형: 문자열

    최대 길이: 100

    products.contract_agreement.contract_start_date 계약 기간이 시작되는 날짜입니다.

    데이터 유형: 문자열

    최대 길이: 40

    형식: YYYY-MM-DD

    products.contract_agreement.negotiated_currency 필수 협상된 가격의 통화입니다.

    데이터 유형: 문자열

    최대 길이: 40

    products.contract_agreement.negotiated_price 필수 공급자 또는 리셀러와의 계약을 통해 협상된 제품의 단가입니다.

    데이터 유형: 문자열

    최대 길이: 40

    products.delivery_time 고객에게 제품을 배송하는 데 걸리는 예상 일수입니다. 이 값은 일 수를 나타내며 정수여야 합니다.

    데이터 유형: 문자열

    최대 길이: 40

    제품.이미지 공급자 제품의 이미지 URL을 지정하는 문자열 목록입니다.

    데이터 유형: 배열

    제품.제조업체 필수 제품을 제조, 게시 또는 제공하는 회사입니다. 제품의 공급자 또는 리셀러가 아닙니다.

    데이터 유형: 문자열

    최대 길이: 100

    제품.mpn 필수 제조업체, 게시자 또는 제공자가 제공하는 제품의 식별자입니다.
    주:
    SKU 값을 사용할 수 있는 경우 리셀러 상위 번들에는 필요하지 않습니다.

    데이터 유형: 문자열

    최대 길이: 100

    products.parent_bundle 제품 번들을 카탈로그 페이로드의 일부로 보내는 시나리오에서만 유효하며 하위 번들 구성요소 페이로드에만 적용할 수 있습니다. 하위 번들 구성요소의 경우 상위에 대한 참조가 여기에서 유지관리됩니다. 상위 MPN 및 SKU 값도 여기에 설정됩니다.

    데이터 유형: 문자열

    최대 길이: 100

    products.product_attributes 제품 속성을 정의하는 키-값 쌍의 목록입니다(예: "색상": "스페이스 그레이"). 제품에 대한 여러 속성이 허용됩니다. 그러나 가격 책정 또는 재고 가용성에 영향을 주는 속성만 API를 통해 제공해야 합니다.

    데이터 유형: 객체

    products.product_category_name 필수 속성을 설정하지 않는 경우 입력하는 이름입니다.unspsc 이 이름은 제품이 속한 범주입니다. 이 범주 이름은 상거래 시나리오에서 제품을 구매하는 데 사용할 수 있습니다. 예를 들어 멀티탭 제품은 사무 기기 범주에 속할 수 있습니다.

    데이터 유형: 문자열

    최대 길이: 100

    products.product_description 상거래 경험 내에서 소비자에게 표시되는 제품에 대한 전체 설명입니다.
    주:
    특히 하위 번들 구성요소가 있는 제품 번들 카탈로그 항목의 경우 공급자가 여기에서 가능한 한 설명하는 것이 좋습니다.

    데이터 유형: 문자열

    최대 길이: 65000

    products.product_name 필수 제품의 이름입니다.

    데이터 유형: 문자열

    최대 길이: 1000

    제품.SKU 필수 해당 공급자가 판매하는 제품을 고유하게 식별하는 공급자가 생성한 번호입니다.

    데이터 유형: 문자열

    최대 길이: 100

    제품.단위 필수 공급자가 제품을 판매하는 단위 또는 요율입니다. 예를 들어 조각, 시간 등이 있습니다.

    데이터 유형: 문자열

    최대 길이: 40

    제품.UNSPSC 필수 속성을 설정하지 않는 경우 입력하는 식별자입니다.product_category_name 이 식별자는 제품이 속한 범주의 UNSPSC입니다. 예를 들어, UNSPSC 코드 43210000은 제품 범주 컴퓨터의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    supplier_id 필수 고객이 주문할 수 있는 리셀러 또는 공급자의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    third_party_import_id 외부 공급업체가 문자열 값을 전달하여 임포트한 데이터 세트를 고유하게 식별할 수 있는 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 고유한 방식으로 이 작업에 적용됩니다.

    표 4. 요청 헤더
    머리글 설명
    수용 응답 본문의 데이터 형식입니다. 지원되는 유형은 application/json 또는 application/xml입니다.

    기본값: application/json

    주:
    구매 통합 프레임워크에는 데이터 형식만 application/json 지원됩니다.
    표 5. 응답 헤더
    머리글 설명
    안 함

    상태 코드

    이 HTTP 작업에 적용되는 상태 코드는 다음과 같습니다.

    표 6. 상태 코드
    상태 코드 설명
    성공 성공입니다. 요청이 성공적으로 처리되었습니다.
    실패 실패. 요청이 오류와 함께 처리되었습니다.

    응답 본문 매개변수(JSON)

    이러한 응답 본문 매개변수는 동기 모드에서 쿼리될 때 수신됩니다.
    이름 설명
    error_response_body sku, mpn 및 오류 메시지별로 나열된 오류에 대한 설명입니다.

    데이터 유형: 배열

    error_response_body.error_message 자세한 오류 메시지입니다.

    데이터 유형: 문자열

    status_code "성공" 또는 "실패"와 같은 응답 상태입니다.

    데이터 유형: 문자열

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

    가능한 응답:

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

    Spendint API - POST /sn_spend_intg/spendint/price

    공급자 제품 기록의 가격 책정을 업데이트합니다.

    공급자 제품 기록에 가격 책정을 사용할 수 있는 경우 API는 제품 SKU를 사용하여 기존 공급자 제품을 찾습니다. 일치하는 공급자 제품이 있으면 해당 계약 가격이 업데이트됩니다. 일치하는 공급자 제품을 찾을 수 없으면 가격 책정을 업데이트하려는 제품이 없다는 오류 메시지가 생성됩니다.

    상태 테이블

    가격 임포트 요청의 상태를 알려면 테이블 REST API를 사용하여 데이터베이스에 ServiceNow 대한 REST 호출을 수행합니다. API의 응답에는 가격 임포트 요청이 실패한 기록이 나열됩니다. 가격 임포트 응답의 경우 다음 매개변수를 사용하여 가격 오류 테이블을 쿼리합니다.

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

    고객 ID, 공급자 ID, 오류 유형, 고유 임포트 세트 ID 및 상태 캔에 대한 세부 정보는 상위 오류 테이블인 아웃바운드 상태 테이블에서 찾을 수 있습니다.

    URL 형식

    /api/sn_spend_intg/spendint/price

    지원되는 요청 매개변수

    표 7. 경로 매개변수
    이름 설명
    없음
    표 8. 쿼리 매개변수
    이름 설명
    모드 타사 통합을 위한 비동기식 및 동기식 모드를 지원합니다.

    데이터 유형: 문자열

    유효한 값은 다음과 같습니다.
    • async: 비동기 모드입니다.
    • sync: 동기 모드입니다.

    기본값: 비동기

    표 9. 요청 본문 매개변수(XML 또는 JSON)
    이름 설명
    catalog_id 필수 고객이 구매할 수 있는 카탈로그 콘텐츠의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    customer_id 필수 고객의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    제품 만들거나 업데이트할 제품을 정의하는 객체의 목록입니다. 각 트랜잭션의 제품 제한은 1,000개입니다.

    데이터 유형: 배열

    "products": [
      {
        "contract_agreement": {Array},
        "sku": "String"
      }
    ]
    products.contract_agreement 제품에 대한 계약의 상세 정보입니다.

    데이터 유형: 객체

    "contract_agreement": {
      "contract_end_date": "String",
      "contract_number": "String",
      "contract_start_date": "String",
      "negotiated_currency ": "String",
      "negotiated_price": "String"
    }
    products.contract_agreement.contract_end_date 계약 기간이 종료되는 날짜입니다.

    데이터 유형: 문자열

    최대 길이: 40

    형식: YYYY-MM-DD

    products.contract_agreement.contract_number 필수 제품과 연결된 활성 계약의 수입니다.

    데이터 유형: 문자열

    최대 길이: 100

    products.contract_agreement.contract_start_date 계약 기간이 시작되는 날짜입니다.

    데이터 유형: 문자열

    최대 길이: 40

    형식: YYYY-MM-DD

    products.contract_agreement.negotiated_currency 필수 협상된 가격의 통화입니다.

    데이터 유형: 문자열

    최대 길이: 40

    products.contract_agreement.negotiated_price 필수 공급자 또는 리셀러와의 계약을 통해 협상된 제품의 단가입니다.

    데이터 유형: 문자열

    최대 길이: 40

    제품.SKU 필수 해당 공급자가 판매하는 제품을 고유하게 식별하는 공급자가 생성한 번호입니다.

    데이터 유형: 문자열

    최대 길이: 100

    supplier_id 필수 고객이 주문할 수 있는 리셀러 또는 공급자의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    third_party_import_id 외부 공급업체가 문자열 값을 전달하여 임포트한 데이터 세트를 고유하게 식별할 수 있는 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 고유한 방식으로 이 작업에 적용됩니다.

    표 10. 요청 헤더
    머리글 설명
    수용 응답 본문의 데이터 형식입니다. 지원되는 유형은 application/json 또는 application/xml입니다.

    기본값: application/json

    주:
    구매 통합 프레임워크에는 데이터 형식만 application/json 지원됩니다.
    표 11. 응답 헤더
    머리글 설명
    안 함

    상태 코드

    이 HTTP 작업에 적용되는 상태 코드는 다음과 같습니다.

    표 12. 상태 코드
    상태 코드 설명
    성공 성공입니다. 요청이 성공적으로 처리되었습니다.
    실패 실패. 요청이 오류와 함께 처리되었습니다.

    응답 본문 매개변수(JSON)

    이러한 응답 본문 매개변수는 동기 모드에서 쿼리될 때 수신됩니다.
    이름 설명
    error_response_body SKU와 오류 메시지별로 나열된 오류에 대한 설명입니다.

    데이터 유형: 배열

    error_response_body.error_message 자세한 오류 메시지입니다.

    데이터 유형: 문자열

    status_code "성공" 또는 "실패"와 같은 응답 상태입니다.

    데이터 유형: 문자열

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

    가능한 응답:

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

    Spendint API - POST /sn_spend_intg/spendint/availability

    공급자 제품 기록의 가용성을 업데이트합니다.

    공급자 제품 기록을 사용할 수 있는 경우 API는 제품 SKU를 사용하여 기존 공급자 제품을 찾습니다. 일치하는 공급자 제품이 있으면 해당 available_units 필드가 업데이트됩니다. 일치하는 공급자 제품을 찾을 수 없으면 가용성을 업데이트하려는 제품이 없다는 오류 메시지가 생성됩니다.

    상태 테이블

    가용성 업데이트 요청의 상태를 알아보려면 테이블 REST API를 사용하여 데이터베이스에 ServiceNow 대한 REST 호출을 수행합니다. API의 응답에는 가용성 업데이트 요청이 실패한 기록이 나열됩니다. 가용성 업데이트 응답의 경우 다음 매개변수를 사용하여 가용성 오류 테이블을 쿼리합니다.

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

    고객 ID, 공급자 ID, 오류 유형, 고유 임포트 세트 ID 및 상태에 대한 세부 정보는 상위 오류 테이블인 아웃바운드 상태 테이블에서 찾을 수 있습니다.

    URL 형식

    /api/sn_spend_intg/spendint/availability

    지원되는 요청 매개변수

    표 13. 경로 매개변수
    이름 설명
    없음
    표 14. 쿼리 매개변수
    이름 설명
    모드 타사 통합을 위한 비동기식 및 동기식 모드를 지원합니다.

    데이터 유형: 문자열

    유효한 값은 다음과 같습니다.
    • async: 비동기 모드입니다.
    • sync: 동기 모드입니다.

    기본값: 비동기

    표 15. 요청 본문 매개변수(XML 또는 JSON)
    이름 설명
    catalog_id 필수 고객이 구매할 수 있는 카탈로그 콘텐츠의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    customer_id 필수 고객의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    제품 업데이트할 제품을 정의하는 객체의 목록입니다. 각 트랜잭션의 제품 제한은 1,000개입니다.

    데이터 유형: 배열

    "products": [
      {
        "available_units": "String",
        "sku": "String",
        "unit": "String"
      }
    ]
    products.available_units 재고가 유지되는 제품에 필요합니다. 이 제품에 사용할 수 있는 단위 수입니다.

    데이터 유형: 문자열

    최대 길이: 40

    제품.SKU 필수 해당 공급자가 판매하는 제품을 고유하게 식별하는 공급자가 생성한 번호입니다.

    데이터 유형: 문자열

    최대 길이: 100

    제품.단위 필수 공급자가 제품을 판매하는 단위 또는 요율입니다. 예를 들어 조각, 시간 등이 있습니다.

    데이터 유형: 문자열

    최대 길이: 100

    supplier_id 고객이 주문할 수 있는 리셀러 또는 공급자의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    third_party_import_id 외부 공급업체가 문자열 값을 전달하여 임포트한 데이터 세트를 고유하게 식별할 수 있습니다.

    데이터 유형: 문자열

    최대 길이: 100

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 고유한 방식으로 이 작업에 적용됩니다.

    표 16. 요청 헤더
    머리글 설명
    수용 응답 본문의 데이터 형식입니다. 지원되는 유형은 application/json 또는 application/xml입니다.

    기본값: application/json

    주:
    구매 통합 프레임워크에는 데이터 형식만 application/json 지원됩니다.
    표 17. 응답 헤더
    머리글 설명
    안 함

    상태 코드

    이 HTTP 작업에 적용되는 상태 코드는 다음과 같습니다.

    표 18. 상태 코드
    상태 코드 설명
    성공 성공입니다. 요청이 성공적으로 처리되었습니다.
    실패 실패. 요청이 오류와 함께 처리되었습니다.

    응답 본문 매개변수(JSON)

    이러한 응답 본문 매개변수는 동기 모드에서 쿼리될 때 수신됩니다.
    이름 설명
    error_response_body SKU와 오류 메시지별로 나열된 오류에 대한 설명입니다.

    데이터 유형: 배열

    error_response_body.error_message 자세한 오류 메시지입니다.

    데이터 유형: 문자열

    status_code "성공" 또는 "실패"와 같은 응답 상태입니다.

    데이터 유형: 문자열

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

    가능한 응답:

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

    Spendint API - POST /sn_spend_intg/spendint/orderack

    사용자가 외부 공급업체 카탈로그에서 제품을 쇼핑할 때 주문 정보를 업데이트합니다. 사용자가 체크 아웃하면 구매에 대한 승인 또는 기타 작업을 완료할 수 있도록 구매 라인이 생성됩니다.

    데이터베이스에서 ServiceNow 구매 주문이 생성되면 주문은 다음 테이블로 푸시됩니다.
    • 아웃바운드 주문: 주문 헤더를 포함합니다.
    • 아웃바운드 주문 라인: 주문 라인을 포함합니다.

    공급자는 이러한 테이블을 쿼리하고 보류 중인 주문을 가져와야 합니다. 공급자는 데이터베이스와 ServiceNow 통합하기 위한 작업에 대해 워크플로우 스튜디오 범위가 지정된 앱을 생성해야 합니다.

    다음 매개변수를 사용하여 테이블을 쿼리합니다.
    • 헤더의 경우 sysparm_query=supplier_id=<supplier_id>^purchase_order.status=20
    • 헤더의 경우 sysparm_query=purchase_order.supplier_id=<supplier_id>^purchase_order.status=20
    구매 라인이 구매 주문서 라인으로 변환되면 다음 프로세스가 실행됩니다.
    1. 해당하는 경우 구매 주문서와 구매 주문서 라인이 전사적 자원 계획(ERP)에 제출됩니다.
    2. 구매 주문서 및 구매 주문서 라인은 통합을 통해 고객 ID, 공급자 ID, 구매 주문서 번호, 주문 날짜, 구매 주문서 금액, 구매 주문서 금액 통화 및 구매 주문서 라인을 사용하여 외부 공급업체로 이전됩니다.
    3. 구매 주문서와 구매 주문서 라인은 외부 공급업체 카탈로그 통합과 ERP에서 확인 메시지를 받을 때까지 제출 보류 중 상태로 유지됩니다. 확인을 받으면 상태가 주문됨으로 업데이트됩니다. ERP 통합이 관련되어 있지 않은 경우 외부 공급업체 통합에서만 확인 메시지가 필요합니다.

    상태 테이블

    주문 확인 요청의 상태를 알고 싶다면, 테이블 REST API를 사용하여 데이터베이스에 ServiceNow 대한 REST 호출을 수행하십시오. API의 응답에는 주문 확인 요청이 실패한 기록이 나열됩니다. 주문 확인 응답의 경우 다음 매개변수를 사용하여 주문 확인 오류 테이블을 쿼리합니다.

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

    고객 ID, 공급자 ID, 오류 유형, 고유 임포트 세트 ID 및 상태에 대한 세부 정보는 상위 오류 테이블인 아웃바운드 상태 테이블에서 찾을 수 있습니다.

    URL 형식

    /api/sn_spend_intg/spendint/orderack

    지원되는 요청 매개변수

    표 19. 경로 매개변수
    이름 설명
    없음
    표 20. 쿼리 매개변수
    이름 설명
    모드 타사 통합을 위한 비동기식 및 동기식 모드를 지원합니다.

    데이터 유형: 문자열

    유효한 값은 다음과 같습니다.
    • async: 비동기 모드입니다.
    • sync: 동기 모드입니다.

    기본값: 비동기

    표 21. 요청 본문 매개변수(XML 또는 JSON)
    이름 설명
    customer_id 필수 고객의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    order_number 필수 이 주문에 대해 고객이 제공한 구매 주문서 번호입니다.

    데이터 유형: 문자열

    최대 길이: 40

    sales_order_lines 이 주문의 구매에 대한 고유한 업데이트가 있는 판매 주문 라인을 정의하는 객체의 목록입니다.

    데이터 유형: 배열

    "sales_order_lines":[
      {
        "estimated_arrival_date": "String",
        "line_number": "String",
        "sales_order_line_number": "String"
      }
    ]
    sales_order_lines.예상 도착 날짜 주문의 예상 도착 날짜입니다.

    데이터 유형: 문자열

    최대 길이: 40

    형식: YYYY-MM-DD

    sales_order_lines.line_number 필수 특정 구매에 대해 고객이 생성한 구매 주문서 라인 번호입니다.

    데이터 유형: 문자열

    최대 길이: 40

    sales_order_lines.sales_order_line_number 공급자가 생성한 판매 주문 라인 번호입니다. 이 번호는 이 구매를 수정하는 경우에만 필요합니다.

    데이터 유형: 문자열

    최대 길이: 40

    sales_order_number 이 주문에 대해 공급자가 생성한 번호 또는 값입니다.

    데이터 유형: 문자열

    최대 길이: 40

    status_code 필수 주문이 성공적으로 완료되었는지 확인하는 제출된 주문의 상태입니다.

    데이터 유형: 문자열

    유효한 값은 다음과 같습니다.
    • 확인됨: 주문이 성공적으로 완료되었습니다.
    • 거부됨: 주문이 접수되지 않았습니다.
    status_message 상태 코드에 첨부된 메시지입니다. 예를 들어 주문이 성공적으로 완료되었으며 이월 주문이라는 메시지가 표시될 수 있습니다.

    데이터 유형: 문자열

    최대 길이: 1000

    supplier_id 필수 고객이 주문할 수 있는 리셀러 또는 공급자의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    third_party_import_id 외부 공급업체가 문자열 값을 전달하여 임포트한 데이터 세트를 고유하게 식별할 수 있는 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 고유한 방식으로 이 작업에 적용됩니다.

    표 22. 요청 헤더
    머리글 설명
    수용 응답 본문의 데이터 형식입니다. 지원되는 유형은 application/json 또는 application/xml입니다.

    기본값: application/json

    주:
    구매 통합 프레임워크에는 데이터 형식만 application/json 지원됩니다.
    표 23. 응답 헤더
    머리글 설명
    안 함

    상태 코드

    이 HTTP 작업에 적용되는 상태 코드는 다음과 같습니다.

    표 24. 상태 코드
    상태 코드 설명
    성공 성공입니다. 요청이 성공적으로 처리되었습니다.
    실패 실패. 요청이 오류와 함께 처리되었습니다.

    응답 본문 매개변수(JSON)

    이러한 응답 본문 매개변수는 동기 모드에서 쿼리될 때 수신됩니다.
    이름 설명
    error_response_body 판매 주문 번호, 판매 주문 라인 번호 및 오류 메시지로 나열된 오류에 대한 설명입니다.

    데이터 유형: 배열

    error_response_body.error_message 자세한 오류 메시지입니다.

    데이터 유형: 문자열

    status_code "성공" 또는 "실패"와 같은 응답 상태입니다.

    데이터 유형: 문자열

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

    가능한 응답:

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

    Spendint API - POST /sn_spend_intg/spendint/shipment

    이 엔드포인트를 사용하여 외부 공급업체의 구매에 대한 업데이트를 수락합니다.

    데이터를 받으면 판매 주문 라인 번호를 사용하여 배송 데이터를 구매 주문 라인과 일치시켜야 합니다. 추적 번호를 사용하여 구매 주문서 라인과 관련된 기존 배송 상세 정보 기록 을 찾을 수 있습니다. 이러한 기록이 없으면 새 배송 상세 정보 기록을 생성합니다. 배송 데이터에 대한 구매 주문서 또는 구매 주문서 라인이 없는 경우 이 배송에 대한 구매 주문서가 없다는 오류 메시지가 표시됩니다.
    주:
    구매 주문 및 구매 주문 라인이 제출 보류 중 상태이고 판매 주문 및 판매 주문 라인이 채워지지 않은 경우 외부 공급업체 리셀러의 배송 및 송장 게시가 허용되지 않습니다. 구매 주문 및 구매 주문 라인의 상태가 주문됨인 경우에만 허용됩니다. 또한 배송 및 송장 게시에 대한 순차적 제한이 없습니다.

    상태 테이블

    배송 요청의 상태를 알려면 테이블 REST API를 사용하여 데이터베이스에 ServiceNow 대한 REST 호출을 수행합니다. API의 응답에는 배송 업데이트가 실패한 기록이 나열됩니다. 배송 응답을 얻으려면 다음 매개변수를 사용하여 배송 오류 테이블을 쿼리합니다.

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

    고객 ID, 공급자 ID, 오류 유형, 고유 임포트 세트 ID 및 상태에 대한 세부 정보는 상위 오류 테이블인 아웃바운드 상태 테이블에서 찾을 수 있습니다.

    URL 형식

    /api/sn_spend_intg/spendint/shipment

    지원되는 요청 매개변수

    표 25. 경로 매개변수
    이름 설명
    없음
    표 26. 쿼리 매개변수
    이름 설명
    모드 타사 통합을 위한 비동기식 및 동기식 모드를 지원합니다.

    데이터 유형: 문자열

    유효한 값은 다음과 같습니다.
    • async: 비동기 모드입니다.
    • sync: 동기 모드입니다.

    기본값: 비동기

    표 27. 요청 본문 매개변수(XML 또는 JSON)
    이름 설명
    customer_id 고객의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    order_number 필수 이 주문에 대해 고객이 제공한 구매 주문서 번호입니다.

    데이터 유형: 문자열

    최대 길이: 40

    sales_order_number 필수 이 주문에 대해 공급자가 생성한 번호 또는 값입니다.

    데이터 유형: 문자열

    최대 길이: 40

    shipment_lines 일련 번호, IMEI 번호 및 자산의 자산 태그 상세 정보를 포함할 수 있는 배송 라인 목록입니다.

    데이터 유형: 배열

    "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.actual_shipment_date 배송물이 공급자의 위치를 떠난 날짜입니다.

    데이터 유형: 문자열

    최대 길이: 40

    형식: YYYY-MM-DD

    shipment_lines.estimated_arrival_date 배송물이 지정된 위치에 도착할 것으로 예상되는 날짜입니다.

    데이터 유형: 문자열

    최대 길이: 40

    형식: YYYY-MM-DD

    shipment_lines.line_number 필수 특정 구매에 대해 고객이 생성한 구매 주문서 라인 번호입니다.

    데이터 유형: 문자열

    최대 길이: 40

    shipment_lines.planned_shipment_date 배송이 공급자의 위치를 떠날 것으로 계회된 날짜입니다.

    데이터 유형: 문자열

    최대 길이: 40

    형식: YYYY-MM-DD

    shipment_lines.product_details 배송되는 제품에 대한 상세 정보를 정의하는 객체의 목록입니다. 옵션에는 일련 번호, IMEI 번호 및 자산 태그 세부 정보가 포함됩니다.

    데이터 유형: 배열

    "product_details": [
      {
        "asset_tag": "String",
        "imei": "String",
        "serial_number": "String"
      }
    ]
    shipment_lines.product_details.asset_tag 배송된 제품의 자산 태그입니다.

    데이터 유형: 문자열

    최대 길이: 100

    shipment_lines.product_details.imei 배송된 제품의 IMEI 번호입니다.

    데이터 유형: 문자열

    최대 길이: 100

    shipment_lines.product_details.serial_number 필수 배송된 제품의 일련 번호입니다.

    데이터 유형: 문자열

    최대 길이: 100

    shipment_lines.sales_order_line_number 공급자가 생성한 판매 주문 라인 번호입니다. 이 번호는 이 구매를 수정하는 경우에만 필요합니다.

    데이터 유형: 문자열

    최대 길이: 40

    shipment_lines.shipping_address 제품이 배송되는 주소입니다.

    데이터 유형: 객체

    "shipping_address":
      {
        "city": "String",
        "country": "String",
        "name": "String",
        "state": "String",
        "street": "String",
        "zip_code": "String"
      }
    shipment_lines.shipping_address.city 제품이 배송되는 도시의 이름입니다.

    데이터 유형: 문자열

    최대 길이: 1000

    shipment_lines.shipping_address.country 제품이 배송되는 국가입니다.

    데이터 유형: 문자열

    최대 길이: 40

    shipment_lines.shipping_address.name 제품이 배송되는 고객의 이름입니다.

    데이터 유형: 문자열

    최대 길이: 1000

    shipment_lines.shipping_address.state 제품이 배송되는 곳 시/도입니다.

    데이터 유형: 문자열

    최대 길이: 1000

    shipment_lines.shipping_address.street 제품이 배송되는 주소의 이름입니다.

    데이터 유형: 문자열

    최대 길이: 1000

    shipment_lines.shipping_address.zip코드 제품이 배송되는 우편 번호 또는 핀 번호입니다.

    데이터 유형: 문자열

    최대 길이: 40

    shipment_lines.shipment_quantity 필수 실제 상품으로 배송되는 제품의 수입니다. 번호에는 배송된 제품의 수량이 포함되어야 합니다.

    데이터 유형: 문자열

    최대 길이: 40

    shipment_lines.shipping_carrier FedEx, UPS, USPS 등 지정된 위치로 제품을 배송하는 배송 운송업체입니다.

    데이터 유형: 문자열

    최대 길이: 100

    shipment_lines.ship_to 제품이 배송되는 수취인 이름입니다.

    데이터 유형: 문자열

    최대 길이: 100

    shipment_lines.tracking_number 배송 운송업체가 구매의 전체 또는 일부에 대해 제공하는 추적 번호입니다.

    데이터 유형: 문자열

    최대 길이: 100

    supplier_id 필수 고객이 주문할 수 있는 리셀러 또는 공급자의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    supplier_shipment_number 필수 이 배송에 대해 생성된 식별 번호입니다. 일반적으로 이 숫자는 전사적 자원 계획(ERP) 또는 주문 추적 시스템에서 생성됩니다.

    데이터 유형: 문자열

    최대 길이: 100

    third_party_import_id 외부 공급업체가 문자열 값을 전달하여 임포트한 데이터 세트를 고유하게 식별할 수 있는 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 고유한 방식으로 이 작업에 적용됩니다.

    표 28. 요청 헤더
    머리글 설명
    수용 응답 본문의 데이터 형식입니다. 지원되는 유형은 application/json 또는 application/xml입니다.

    기본값: application/json

    주:
    구매 통합 프레임워크에는 데이터 형식만 application/json 지원됩니다.
    표 29. 응답 헤더
    머리글 설명
    안 함

    상태 코드

    이 HTTP 작업에 적용되는 상태 코드는 다음과 같습니다.

    표 30. 상태 코드
    상태 코드 설명
    성공 성공입니다. 요청이 성공적으로 처리되었습니다.
    실패 실패. 요청이 오류와 함께 처리되었습니다.

    응답 본문 매개변수(JSON)

    이러한 응답 본문 매개변수는 동기 모드에서 쿼리될 때 수신됩니다.
    이름 설명
    error_response_body 판매 주문 라인 번호, 판매 주문 번호, 공급자 배송 번호 및 오류 메시지로 나열된 오류에 대한 설명입니다.

    데이터 유형: 배열

    error_response_body.error_message 자세한 오류 메시지입니다.

    데이터 유형: 문자열

    status_code "성공" 또는 "실패"와 같은 응답 상태입니다.

    데이터 유형: 문자열

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

    가능한 응답:

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

    Spendint API - POST /sn_spend_intg/spendint/invoice

    외부 공급업체 제공자의 송장을 허용합니다.

    구매 주문 및 구매 주문 라인이 제출 보류 중 상태이고 판매 주문 및 판매 주문 라인이 채워지지 않은 경우 외부 공급업체 리셀러의 배송 및 송장 게시가 허용되지 않습니다. 구매 주문 및 구매 주문 라인의 상태가 주문됨인 경우에만 허용됩니다. 또한 배송 및 송장 게시에 대한 순차적 제한이 없습니다.

    송장이 제출되면 송장 및 송장 라인이 구매 주문서에 매핑됩니다. 매핑에 성공하면 송장 상태가 다음과 같이 설정됩니다.
    • 배송 대기 중: 영수증이 없는 경우 주문이 부분적으로 배송되거나 송장에 승인이 필요합니다.
    • 송장 확인됨: 구매 주문이 제공되고 송장 발행된 금액이 구매 주문의 총 금액과 일치하는 경우입니다.
    • 검토 필요: 구매 주문이 제공되고 송장 발행된 금액이 구매 주문의 총 금액과 일치하지 않는 경우입니다.

    라인 항목에 대해 유효한 송장이 게시되면 동일한 송장을 업데이트할 수 없습니다.

    제공된 송장에 구매 주문서 번호가 없는 경우 송장이 거부되고 제공된 송장 중 하나 이상에 구매 주문서 번호가 없다는 오류 메시지가 표시됩니다. 제공된 송장에 구매 주문서 번호가 있지만 구매 주문서와 일치하지 않거나 구매 주문서가 없는 경우 오류 메시지가 표시됩니다. 이 메시지에는 하나 이상의 송장에 송장의 구매 주문서 번호와 일치하는 해당 구매 주문서가 없음이 표시됩니다. 또한 외부 공급업체 재판매인이 보낸 송장 금액이 송장 처리된 금액과 일치하지 않으면 송장이 거부됩니다.

    상태 테이블

    송장 요청의 상태를 알려면 테이블 REST API를 사용하여 데이터베이스에 ServiceNow 대한 REST 호출을 수행합니다. API의 응답에는 송장 생성이 실패한 기록이 나열됩니다. 송장 응답의 경우 다음 매개변수를 사용하여 송장 오류 테이블을 쿼리합니다.

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

    고객 ID, 공급자 ID, 오류 유형, 고유 임포트 세트 ID 및 상태에 대한 세부 정보는 상위 오류 테이블인 아웃바운드 상태 테이블에서 찾을 수 있습니다.

    URL 형식

    /api/sn_spend_intg/spendint/invoice

    지원되는 요청 매개변수

    표 31. 경로 매개변수
    이름 설명
    없음
    표 32. 쿼리 매개변수
    이름 설명
    모드 타사 통합을 위한 비동기식 및 동기식 모드를 지원합니다.

    데이터 유형: 문자열

    유효한 값은 다음과 같습니다.
    • async: 비동기 모드입니다.
    • sync: 동기 모드입니다.

    기본값: 비동기

    표 33. 요청 본문 매개변수(XML 또는 JSON)
    이름 설명
    통화 필수 소계, 세금 및 배송의 통화입니다. 소계, 세금 및 배송은 동일한 통화여야 합니다.

    데이터 유형: 문자열

    최대 길이: 40

    customer_id 고객의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    할인 송장에 적용되는 할인입니다. 편집 가능한 필드입니다.

    데이터 유형: 문자열

    최대 길이: 100

    invoice_date 필수 고객에게 송장이 발행된 날짜입니다.

    데이터 유형: 문자열

    최대 길이: 40

    형식: YYYY-MM-DD

    invoice_lines 이 주문 내의 구매에 대해 송장 처리되는 라인을 정의하는 객체의 목록입니다.

    데이터 유형: 배열

    "invoice_lines": [
      {
        "invoiced_line_amount": "String",
        "invoiced_quantity": "String",
        "line_number": "String",
        "supplier_invoice_line_number": "String",
        "sales_order_line_number": "String"
      }
    ]
    invoice_lines.invoiced_line_amount 필수 지정된 구매 주문 라인에 대해 고객에게 송장을 발행하는 총 비용(세금 및 배송 제외)입니다.

    데이터 유형: 문자열

    최대 길이: 40

    invoice_lines.invoiced_quantity 필수 고객에게 송장을 발행하는 상품 또는 서비스의 수량입니다.

    데이터 유형: 문자열

    최대 길이: 40

    invoice_lines.line_number 필수 특정 구매에 대해 고객이 생성한 구매 주문서 라인 번호입니다.

    데이터 유형: 문자열

    최대 길이: 40

    invoice_lines.sales_order_line_number 필수 공급자가 생성한 판매 주문 라인 번호입니다.

    데이터 유형: 문자열

    최대 길이: 40

    invoice_lines.supplier_invoice_line_number 필수 이 송장 라인에 대해 공급자가 생성한 식별 번호입니다.

    데이터 유형: 문자열

    최대 길이: 100

    other_charges 송장과 관련된 기타 추가 요금입니다. 편집 가능한 필드입니다.

    데이터 유형: 문자열

    최대 길이: 100

    order_number 필수 이 주문에 대해 고객이 제공한 구매 주문서 번호입니다.

    데이터 유형: 문자열

    최대 길이: 40

    remit_to_address 필수 지불이 이루어지는 위치입니다.

    데이터 유형: 문자열

    최대 길이: 1000

    sales_order_number 필수 이 주문에 대해 공급자가 생성한 번호 또는 값입니다.

    데이터 유형: 문자열

    최대 길이: 40

    배송 필수 전체 구매에 대한 총 배송비입니다.

    데이터 유형: 문자열

    최대 길이: 40

    소계 필수 세금 및 배송 요금을 제외하고 공급자에게 지불할 총 금액입니다.

    데이터 유형: 문자열

    최대 길이: 40

    supplier_id 필수 고객이 주문할 수 있는 리셀러 또는 공급자의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    supplier_invoice_number 필수 이 송장에 대해 공급자가 생성한 식별 번호입니다.

    데이터 유형: 문자열

    최대 길이: 100

    supplier_tax_id 외부 공급업체 리셀러와 연결된 세금 식별자입니다. 편집 가능한 필드입니다.

    데이터 유형: 문자열

    최대 길이: 100

    세금 필수 구매에 대해 청구되는 총 세금 금액입니다.

    데이터 유형: 문자열

    최대 길이: 40

    tax_rate 주문에 적용되는 세율 백분율입니다. 편집 가능한 필드입니다.

    데이터 유형: 문자열

    최대 길이: 100

    third_party_import_id 외부 공급업체가 문자열 값을 전달하여 임포트한 데이터 세트를 고유하게 식별할 수 있는 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    total_amount_invoiced 필수 세금 및 배송 요금을 포함하여 공급자에게 지불할 총 금액입니다.

    데이터 유형: 문자열

    최대 길이: 40

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 고유한 방식으로 이 작업에 적용됩니다.

    표 34. 요청 헤더
    머리글 설명
    수용 응답 본문의 데이터 형식입니다. 지원되는 유형은 application/json 또는 application/xml입니다.

    기본값: application/json

    주:
    구매 통합 프레임워크에는 데이터 형식만 application/json 지원됩니다.
    표 35. 응답 헤더
    머리글 설명
    안 함

    상태 코드

    이 HTTP 작업에 적용되는 상태 코드는 다음과 같습니다.

    표 36. 상태 코드
    상태 코드 설명
    성공 성공입니다. 요청이 성공적으로 처리되었습니다.
    실패 실패. 요청이 오류와 함께 처리되었습니다.

    응답 본문 매개변수(JSON)

    이러한 응답 본문 매개변수는 동기 모드에서 쿼리될 때 수신됩니다.
    이름 설명
    error_response_body 판매 주문 라인 번호, 판매 주문 번호, 공급자 송장 번호, 공급자 송장 라인 번호 및 오류 메시지로 나열된 오류에 대한 설명입니다.

    데이터 유형: 배열

    error_response_body.error_message 자세한 오류 메시지입니다.

    데이터 유형: 문자열

    status_code "성공" 또는 "실패"와 같은 응답 상태입니다.

    데이터 유형: 문자열

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

    가능한 응답:

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