Vendor Direct Fulfillment Payments API v1 model

Swagger model for the Vendor Direct Fulfillment Payments API v1.

{
  "swagger": "2.0",
  "info": {
    "description": "The Selling Partner API for Direct Fulfillment Payments provides programmatic access to a direct fulfillment vendor's invoice data.",
    "version": "v1",
    "title": "Selling Partner API for Direct Fulfillment Payments",
    "contact": {
      "name": "Selling Partner API Developer Support",
      "url": "https://sellercentral.amazon.com/gp/mws/contactus.html"
    },
    "license": {
      "name": "Apache License 2.0",
      "url": "http://www.apache.org/licenses/LICENSE-2.0"
    }
  },
  "host": "sellingpartnerapi-na.amazon.com",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "paths": {
    "/vendor/directFulfillment/payments/v1/invoices": {
      "post": {
        "tags": [
          "vendorInvoice"
        ],
        "description": "Submits one or more invoices for a vendor's direct fulfillment orders.\n\n**Usage Plans:**\n\n| Plan type | Rate (requests per second) | Burst |\n| ---- | ---- | ---- |\n|Default| 10 | 10 |\n|Selling partner specific| Variable | Variable |\n\nThe x-amzn-RateLimit-Limit response header returns the usage plan rate limits that were applied to the requested operation. Rate limits for some selling partners will vary from the default rate and burst shown in the table above. For more information, see \"Usage Plans and Rate Limits\" in the Selling Partner API documentation.",
        "operationId": "submitInvoice",
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SubmitInvoiceRequest"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/SubmitInvoiceResponse"
            },
            "headers": {
              "x-amzn-RateLimit-Limit": {
                "type": "string",
                "description": "Your rate limit (requests per second) for this operation."
              },
              "x-amzn-RequestId": {
                "type": "string",
                "description": "Unique request reference identifier."
              }
            },
            "x-amzn-api-sandbox": {
              "static": [
                {
                  "request": {
                    "parameters": {
                      "body": {
                        "value": {
                          "invoices": [
                            {
                              "invoiceNumber": "0092590411",
                              "invoiceDate": "2020-03-13T11:16:24Z",
                              "remitToParty": {
                              "partyId": "YourVendorCode",
                              "address": {
                                "name": "vendor name",
                                "addressLine1": "vendor address 1",
                                "addressLine2": "vendor address 2",
                                "addressLine3": "vendor address 3",
                                "city": "DECity",
                                "county": "Schwabing",
                                "district": "München",
                                "stateOrRegion": "Bayern",
                                "postalCode": "DEPostCode",
                                "countryCode": "DE"
                              },
                              "taxRegistrationDetails": [
                                {
                                  "taxRegistrationType": "VAT",
                                  "taxRegistrationNumber": "DE123456789"
                                }
                              ]
                            },
                            "shipFromParty": {
                              "partyId": "ABCD"
                            },
                            "billToParty": {
                              "partyId": "5450534005838",
                              "address": {
                                "name": "Amazon EU SARL",
                                "addressLine1": "Marcel-Breuer-Str. 12",
                                "city": "München",
                                "county": "Schwabing",
                                "district": "München",
                                "stateOrRegion": "Bayern",
                                "postalCode": "80807",
                                "countryCode": "DE"
                              },
                              "taxRegistrationDetails": [
                                {
                                  "taxRegistrationType": "VAT",
                                  "taxRegistrationNumber": "DE814584193",
                                  "taxRegistrationAddress": {
                                    "name": "Amazon EU SARL",
                                    "addressLine1": "Marcel-Breuer-Str. 12",
                                    "city": "München",
                                    "stateOrRegion": "Bayern",
                                    "postalCode": "80807",
                                    "countryCode": "DE"
                                  },
                                  "taxRegistrationMessage": "txmessage"
                                }
                              ]
                            },
                            "shipToCountryCode": "DE",
                            "paymentTermsCode": "Basic",
                            "invoiceTotal": {
                              "currencyCode": "EUR",
                              "amount": "1428.00"
                            },
                            "taxTotals": [
                              {
                                "taxType": "CGST",
                                "taxRate": "0.19",
                                "taxAmount": {
                                  "currencyCode": "EUR",
                                  "amount": "228.00"
                                },
                                "taxableAmount": {
                                  "currencyCode": "EUR",
                                  "amount": "1200.00"
                                }
                              }
                            ],
                            "items": [
                              {
                                "itemSequenceNumber": "1",
                                "buyerProductIdentifier": "B00IVLAABC",
                                "invoicedQuantity": {
                                  "amount": 1,
                                  "unitOfMeasure": "Each"
                                },
                                "netCost": {
                                  "currencyCode": "EUR",
                                  "amount": "1200.00"
                                },
                                "purchaseOrderNumber": "D3rC3KTxG",
                                "vendorOrderNumber": "0092590411",
                                "hsnCode": "76.06.92.99.00",
                                "taxDetails": [
                                  {
                                    "taxType": "CGST",
                                    "taxRate": "0.19",
                                    "taxAmount": {
                                      "currencyCode": "EUR",
                                      "amount": "228.00"
                                    },
                                    "taxableAmount": {
                                      "currencyCode": "EUR",
                                      "amount": "1200.00"
                                    }
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      }
                    }
                  }
                },
                "response": {
                  "payload": {
                    "transactionId": "20190905010908-8a3b6901-ef20-412f-9270-21c021796605"
                  }
                }
              },
              {
                "request": {
                  "parameters": {
                    "body": {}
                  }
                },
                "response": {
                  "payload": {
                    "transactionId": "mock-TransactionId-20190905010908-8a3b6901-ef20-412f-9270-21c021796605"
                  }
                }
              }
              ]
            }
          },
          "400": {
            "description": "Request has missing or invalid parameters and cannot be parsed.",
            "schema": {
              "$ref": "#/definitions/SubmitInvoiceResponse"
            },
            "headers": {
              "x-amzn-RateLimit-Limit": {
                "type": "string",
                "description": "Your rate limit (requests per second) for this operation."
              },
              "x-amzn-RequestId": {
                "type": "string",
                "description": "Unique request reference identifier."
              }
            },
            "x-amzn-api-sandbox": {
              "static": [
                {
                  "request": {
                    "parameters": {
                      "body": {
                        "value": {
                          "invoices": [
                            {
                              "invoiceNumber": "TestInvoice400",
                              "invoiceDate": "2020-08.13"
                            }
                        ]
                      }
                    }
                  }
                },
                "response": {
                  "errors": [
                    {
                      "code": "InvalidInput",
                      "message": "The value '2020-03.13' of element 'invoiceDate' is not valid.",
                      "details": ""
                    },
                    {
                      "code": "InvalidInput",
                      "message": "The content of element 'invoice' is not complete. One of '{invoiceNumber, referenceNumber}' is expected.",
                      "details": ""
                    },
                    {
                      "code": "InvalidInput",
                      "message": "'2020-03.13' is not a valid value for 'dateTime'.",
                      "details": ""
                    }
                  ]
                }
                }
              ]
            }
          },
          "403": {
            "description": "Indicates that access to the resource is forbidden. Possible reasons include Access Denied, Unauthorized, Expired Token, or Invalid Signature.",
            "schema": {
              "$ref": "#/definitions/SubmitInvoiceResponse"
            },
            "headers": {
              "x-amzn-RequestId": {
                "type": "string",
                "description": "Unique request reference identifier."
              }
            }
          },
          "404": {
            "description": "The resource specified does not exist.",
            "schema": {
              "$ref": "#/definitions/SubmitInvoiceResponse"
            },
            "headers": {
              "x-amzn-RateLimit-Limit": {
                "type": "string",
                "description": "Your rate limit (requests per second) for this operation."
              },
              "x-amzn-RequestId": {
                "type": "string",
                "description": "Unique request reference identifier."
              }
            }
          },
          "413": {
            "description": "The request size exceeded the maximum accepted size.",
            "schema": {
              "$ref": "#/definitions/SubmitInvoiceResponse"
            },
            "headers": {
              "x-amzn-RateLimit-Limit": {
                "type": "string",
                "description": "Your rate limit (requests per second) for this operation.\n_Note:_ For this status code, the rate limit header is deprecated and no longer returned."
              },
              "x-amzn-RequestId": {
                "type": "string",
                "description": "Unique request reference identifier."
              }
            }
          },
          "415": {
            "description": "The request payload is in an unsupported format.",
            "schema": {
              "$ref": "#/definitions/SubmitInvoiceResponse"
            },
            "headers": {
              "x-amzn-RateLimit-Limit": {
                "type": "string",
                "description": "Your rate limit (requests per second) for this operation.\n_Note:_ For this status code, the rate limit header is deprecated and no longer returned."
              },
              "x-amzn-RequestId": {
                "type": "string",
                "description": "Unique request reference identifier."
              }
            }
          },
          "429": {
            "description": "The frequency of requests was greater than allowed.",
            "schema": {
              "$ref": "#/definitions/SubmitInvoiceResponse"
            },
            "headers": {
              "x-amzn-RateLimit-Limit": {
                "type": "string",
                "description": "Your rate limit (requests per second) for this operation.\n_Note:_ For this status code, the rate limit header is deprecated and no longer returned."
              },
              "x-amzn-RequestId": {
                "type": "string",
                "description": "Unique request reference identifier."
              }
            }
          },
          "500": {
            "description": "An unexpected condition occurred that prevented the server from fulfilling the request.",
            "schema": {
              "$ref": "#/definitions/SubmitInvoiceResponse"
            },
            "headers": {
              "x-amzn-RateLimit-Limit": {
                "type": "string",
                "description": "Your rate limit (requests per second) for this operation.\n_Note:_ For this status code, the rate limit header is deprecated and no longer returned."
              },
              "x-amzn-RequestId": {
                "type": "string",
                "description": "Unique request reference identifier."
              }
            }
          },
          "503": {
            "description": "Temporary overloading or maintenance of the server.",
            "schema": {
              "$ref": "#/definitions/SubmitInvoiceResponse"
            },
            "headers": {
              "x-amzn-RateLimit-Limit": {
                "type": "string",
                "description": "Your rate limit (requests per second) for this operation.\n_Note:_ For this status code, the rate limit header is deprecated and no longer returned."
              },
              "x-amzn-RequestId": {
                "type": "string",
                "description": "Unique request reference identifier."
              }
            }
          }
        }
      },
      "parameters": []
    }
  },
  "definitions": {
    "SubmitInvoiceRequest": {
      "type": "object",
      "properties": {
        "invoices": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/InvoiceDetail"
          }
        }
      },
      "description": "The request schema for the submitInvoice operation."
    },
    "InvoiceDetail": {
      "type": "object",
      "required": [
        "invoiceDate",
        "invoiceNumber",
        "invoiceTotal",
        "items",
        "remitToParty",
        "shipFromParty"
      ],
      "properties": {
        "invoiceNumber": {
          "type": "string",
          "description": "The unique invoice number."
        },
        "invoiceDate": {
          "type": "string",
          "format": "date-time",
          "description": "Invoice date."
        },
        "referenceNumber": {
          "type": "string",
          "description": "An additional unique reference number used for regulatory or other purposes."
        },
        "remitToParty": {
          "description": "Name, address and tax details of the party receiving the payment of this invoice.",
          "$ref": "#/definitions/PartyIdentification"
        },
        "shipFromParty": {
          "description": "Warehouse code of the vendor as in the order.",
          "$ref": "#/definitions/PartyIdentification"
        },
        "billToParty": {
          "description": "Name, address and tax details of the party to whom this invoice is issued.",
          "$ref": "#/definitions/PartyIdentification"
        },
        "shipToCountryCode": {
          "type": "string",
          "description": "Ship-to country code."
        },
        "paymentTermsCode": {
          "type": "string",
          "description": "The payment terms for the invoice."
        },
        "invoiceTotal": {
          "description": "Total amount details of the invoice.",
          "$ref": "#/definitions/Money"
        },
        "taxTotals": {
          "type": "array",
          "description": "Individual tax details per line item.",
          "items": {
            "$ref": "#/definitions/TaxDetail"
          }
        },
        "additionalDetails": {
          "type": "array",
          "description": "Additional details provided by the selling party, for tax related or other purposes.",
          "items": {
            "$ref": "#/definitions/AdditionalDetails"
          }
        },
        "chargeDetails": {
          "type": "array",
          "description": "Total charge amount details for all line items.",
          "items": {
            "$ref": "#/definitions/ChargeDetails"
          }
        },
        "items": {
          "type": "array",
          "description": "Provides the details of the items in this invoice.",
          "items": {
            "$ref": "#/definitions/InvoiceItem"
          }
        }
      }
    },
    "InvoiceItem": {
      "type": "object",
      "required": [
        "invoicedQuantity",
        "itemSequenceNumber",
        "netCost",
        "purchaseOrderNumber"
      ],
      "properties": {
        "itemSequenceNumber": {
          "type": "string",
          "description": "Numbering of the item on the purchase order. The first item will be 1, the second 2, and so on."
        },
        "buyerProductIdentifier": {
          "type": "string",
          "description": "Buyer's standard identification number (ASIN) of an item."
        },
        "vendorProductIdentifier": {
          "type": "string",
          "description": "The vendor selected product identification of the item."
        },
        "invoicedQuantity": {
          "description": "Item quantity invoiced.",
          "$ref": "#/definitions/ItemQuantity"
        },
        "netCost": {
          "description": "Net price (before tax) to vendor with currency details.",
          "$ref": "#/definitions/Money"
        },
        "purchaseOrderNumber": {
          "type": "string",
          "description": "The purchase order number for this order. Formatting Notes: 8-character alpha-numeric code."
        },
        "vendorOrderNumber": {
          "type": "string",
          "description": "The vendor's order number for this order."
        },
        "hsnCode": {
          "type": "string",
          "description": "HSN tax code. The HSN number cannot contain alphabets."
        },
        "taxDetails": {
          "type": "array",
          "description": "Individual tax details per line item.",
          "items": {
            "$ref": "#/definitions/TaxDetail"
          }
        },
        "chargeDetails": {
          "type": "array",
          "description": "Individual charge details per line item.",
          "items": {
            "$ref": "#/definitions/ChargeDetails"
          }
        }
      }
    },
    "PartyIdentification": {
      "type": "object",
      "required": [
        "partyId"
      ],
      "properties": {
        "partyId": {
          "type": "string",
          "description": "Assigned Identification for the party."
        },
        "address": {
          "description": "Identification of the party by address.",
          "$ref": "#/definitions/Address"
        },
        "taxRegistrationDetails": {
          "type": "array",
          "description": "Tax registration details of the entity.",
          "items": {
            "$ref": "#/definitions/TaxRegistrationDetail"
          }
        }
      }
    },
    "TaxRegistrationDetail": {
      "type": "object",
      "required": [
        "taxRegistrationNumber"
      ],
      "properties": {
        "taxRegistrationType": {
          "type": "string",
          "description": "Tax registration type for the entity.",
          "enum": [
            "VAT",
            "GST"
          ],
          "x-docgen-enum-table-extension": [
            {
              "value": "VAT",
              "description": "Value-added tax."
            },
            {
              "value": "GST",
              "description": "Goods and Services tax."
            }
          ]
        },
        "taxRegistrationNumber": {
          "type": "string",
          "description": "Tax registration number for the party. For example, VAT ID."
        },
        "taxRegistrationAddress": {
          "description": "Address associated with the tax registration number.",
          "$ref": "#/definitions/Address"
        },
        "taxRegistrationMessage": {
          "type": "string",
          "description": "Tax registration message that can be used for additional tax related details."
        }
      },
      "description": "Tax registration details of the entity."
    },
    "Address": {
      "type": "object",
      "required": [
        "addressLine1",
        "city",
        "countryCode",
        "name",
        "postalCode",
        "stateOrRegion"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the person, business or institution at that address."
        },
        "addressLine1": {
          "type": "string",
          "description": "First line of the address."
        },
        "addressLine2": {
          "type": "string",
          "description": "Additional street address information, if required."
        },
        "addressLine3": {
          "type": "string",
          "description": "Additional street address information, if required."
        },
        "city": {
          "type": "string",
          "description": "The city where the person, business or institution is located."
        },
        "county": {
          "type": "string",
          "description": "The county where person, business or institution is located."
        },
        "district": {
          "type": "string",
          "description": "The district where person, business or institution is located."
        },
        "stateOrRegion": {
          "type": "string",
          "description": "The state or region where person, business or institution is located."
        },
        "postalCode": {
          "type": "string",
          "description": "The postal code of that address. It conatins a series of letters or digits or both, sometimes including spaces or punctuation."
        },
        "countryCode": {
          "type": "string",
          "description": "The two digit country code in ISO 3166-1 alpha-2 format."
        },
        "phone": {
          "type": "string",
          "description": "The phone number of the person, business or institution located at that address."
        }
      },
      "description": "Address of the party."
    },
    "Money": {
      "type": "object",
      "required": [
        "amount",
        "currencyCode"
      ],
      "properties": {
        "currencyCode": {
          "type": "string",
          "description": "Three digit currency code in ISO 4217 format."
        },
        "amount": {
          "$ref": "#/definitions/Decimal"
        }
      },
      "description": "An amount of money, including units in the form of currency."
    },
    "Decimal": {
      "type": "string",
      "description": "A decimal number with no loss of precision. Useful when precision loss is unacceptable, as with currencies. Follows RFC7159 for number representation. <br>**Pattern** : `^-?(0|([1-9]\\d*))(\\.\\d+)?([eE][+-]?\\d+)?$`."
    },
    "TaxDetail": {
      "type": "object",
      "required": [
        "taxAmount",
        "taxType"
      ],
      "properties": {
        "taxType": {
          "type": "string",
          "description": "Type of the tax applied.",
          "enum": [
            "CGST",
            "SGST",
            "CESS",
            "UTGST",
            "IGST",
            "MwSt.",
            "PST",
            "TVA",
            "VAT",
            "GST",
            "ST",
            "Consumption",
            "MutuallyDefined",
            "DomesticVAT"
          ],
          "x-docgen-enum-table-extension": [
            {
              "value": "CGST",
              "description": "Central Goods and Services Tax (CGST) is levied by the Indian government for intrastate movement of goods and services."
            },
            {
              "value": "SGST",
              "description": "State Goods and Services Tax (SGST) is an indirect tax levied and collected by a State Government in India on the intra-state supplies."
            },
            {
              "value": "CESS",
              "description": "A cess is a form of tax levied by the government on tax with specific purposes till the time the government gets enough money for that purpose."
            },
            {
              "value": "UTGST",
              "description": "Union Territory Goods and Services Tax in India."
            },
            {
              "value": "IGST",
              "description": "Integrated Goods and Services Tax (IGST) is a tax levied on all Inter-State supplies of goods and/or services in India."
            },
            {
              "value": "MwSt.",
              "description": "Mehrwertsteuer, MwSt, is the German for value-added tax."
            },
            {
              "value": "PST",
              "description": "A provincial sales tax (PST) is imposed on consumers of goods and particular services in many Canadian provinces."
            },
            {
              "value": "TVA",
              "description": "Taxe sur la Valeur Ajout&#233;e (TVA) is French for Value-added tax."
            },
            {
              "value": "VAT",
              "description": "Value-added tax."
            },
            {
              "value": "GST",
              "description": "Tax levied on most goods and services sold for domestic consumption."
            },
            {
              "value": "ST",
              "description": "Sales tax."
            },
            {
              "value": "Consumption",
              "description": "Tax levied on consumption spending on goods and services."
            },
            {
              "value": "MutuallyDefined",
              "description": "Tax component that was mutually agreed upon between Amazon and vendor."
            },
            {
              "value": "DomesticVAT",
              "description": "Domestic Value-added tax."
            }
          ]
        },
        "taxRate": {
          "description": "Tax percentage applied. Percentage must be expressed in decimal.",
          "$ref": "#/definitions/Decimal"
        },
        "taxAmount": {
          "description": "Total tax amount applied on invoice total or an item total.",
          "$ref": "#/definitions/Money"
        },
        "taxableAmount": {
          "description": "This field will contain the invoice amount that is taxable at the rate specified in the tax rate field.",
          "$ref": "#/definitions/Money"
        }
      },
      "description": "Details of tax amount applied."
    },
    "ChargeDetails": {
      "type": "object",
      "required": [
        "chargeAmount",
        "type"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of charge applied.",
          "enum": [
            "GIFTWRAP",
            "FULFILLMENT",
            "MARKETINGINSERT",
            "PACKAGING",
            "LOADING",
            "FREIGHTOUT",
            "TAX_COLLECTED_AT_SOURCE"
          ],
          "x-docgen-enum-table-extension": [
            {
              "value": "GIFTWRAP",
              "description": "Additional charge applied for giftwrap order."
            },
            {
              "value": "FULFILLMENT",
              "description": "Fulfillment fees are the costs associated with receiving and storing products along with processing orders from handling to shipping."
            },
            {
              "value": "MARKETINGINSERT",
              "description": "Charge to insert ads on orders."
            },
            {
              "value": "PACKAGING",
              "description": "Additional charge for packaging orders."
            },
            {
              "value": "LOADING",
              "description": "Additional charge for loading orders."
            },
            {
              "value": "FREIGHTOUT",
              "description": "Freight-out refers to the costs for which the seller is responsible when shipping to a buyer, such as delivery and insurance expenses."
            },
            {
              "value": "TAX_COLLECTED_AT_SOURCE",
              "description": "Tax collected at source (TCS) is the tax payable by a seller which he collects from the buyer at the time of sale."
            }
          ]
        },
        "chargeAmount": {
          "$ref": "#/definitions/Money"
        },
        "taxDetails": {
          "type": "array",
          "description": "Individual tax details per line item.",
          "items": {
            "$ref": "#/definitions/TaxDetail"
          }
        }
      },
      "description": "Monetary and tax details of the charge."
    },
    "AdditionalDetails": {
      "type": "object",
      "required": [
        "detail",
        "type"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of the additional information provided by the selling party.",
          "enum": [
            "SUR",
            "OCR"
          ],
          "x-docgen-enum-table-extension": [
            {
              "value": "SUR",
              "description": "An additional tax on something already taxed, such as a higher rate of tax on incomes above a certain level."
            },
            {
              "value": "OCR",
              "description": "OCR."
            }
          ]
        },
        "detail": {
          "type": "string",
          "description": "The detail of the additional information provided by the selling party."
        },
        "languageCode": {
          "type": "string",
          "description": "The language code of the additional information detail."
        }
      },
      "description": "A field where selling party can provide additional information for tax related or any other purposes."
    },
    "ItemQuantity": {
      "type": "object",
      "required": [
        "amount",
        "unitOfMeasure"
      ],
      "properties": {
        "amount": {
          "type": "integer",
          "description": "Quantity of units available for a specific item."
        },
        "unitOfMeasure": {
          "type": "string",
          "description": "Unit of measure for the available quantity."
        }
      },
      "description": "Details of item quantity."
    },
    "SubmitInvoiceResponse": {
      "type": "object",
      "properties": {
        "payload": {
          "description": "The response payload for the submitInvoice operation.",
          "$ref": "#/definitions/TransactionReference"
        },
        "errors": {
          "$ref": "#/definitions/ErrorList"
        }
      },
      "description": "The response schema for the submitInvoice operation."
    },
    "TransactionReference": {
      "type": "object",
      "properties": {
        "transactionId": {
          "type": "string",
          "description": "GUID to identify this transaction. This value can be used with the Transaction Status API to return the status of this transaction."
        }
      }
    },
    "ErrorList": {
      "type": "array",
      "description": "A list of error responses returned when a request is unsuccessful.",
      "items": {
        "$ref": "#/definitions/Error"
      }
    },
    "Error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "An error code that identifies the type of error that occurred."
        },
        "message": {
          "type": "string",
          "description": "A message that describes the error condition."
        },
        "details": {
          "type": "string",
          "description": "Additional details that can help the caller understand or fix the issue."
        }
      },
      "description": "Error response returned when the request is unsuccessful."
    }
  }
}