How do I specify VAT in an order?

Refresh

November 2018

Views

629 time

3

We're based in the EU. When we sell our digital products to private persons or companies without a VAT number, we have to charge them VAT (Value Added Tax). This is what I'm trying:

import stripe

stripe.api_key = 'sk_test_xxx'
stripe.api_version = '2015-10-16'

product = stripe.Product.create(
    id='product', 
    name='Product', 
    shippable=False
)

sku = stripe.SKU.create(
    product='product', 
    price=100, 
    currency='eur', 
    inventory={'type': 'infinite'}
)

customer = stripe.Customer.create(
    email='[email protected]',
    description="Customer"
)

order = stripe.Order.create(
    customer=customer.id,
    currency='eur',
    items=[
        {
            'type': 'sku',
            'quantity': 5,
            'parent': sku.id,
            'amount': 500
        },
        {
            'type': 'tax',
            'description': "20% VAT",
            'amount': 100
        }
    ]
)

The Order creation call gives me:

stripe.error.InvalidRequestError: Request req_xxx: Items of type tax are not supported at order creation.

When I replace the last order creation call without the tax:

order = stripe.Order.create(
    customer=customer.id,
    currency='eur',
    items=[
        {
            'type': 'sku',
            'quantity': 5,
            'parent': sku.id,
            'amount': 500
        }
    ]
)

I'm getting back these order['items']:

  [
    {
      "amount": 500, 
      "currency": "eur", 
      "description": "Product", 
      "object": "order_item", 
      "parent": "sku_xxx", 
      "quantity": 5, 
      "type": "sku"
    }, 
    {
      "amount": 0, 
      "currency": "eur", 
      "description": "Taxes (included)", 
      "object": "order_item", 
      "parent": null, 
      "quantity": null, 
      "type": "tax"
    }, 
    {
      "amount": 0, 
      "currency": "eur", 
      "description": "Free shipping", 
      "object": "order_item", 
      "parent": "ship_free-shipping", 
      "quantity": null, 
      "type": "shipping"
    }
  ]

However, an order does not allow updating the items field after the order has been created.

What's the correct and semantic way to add VAT to the order items?

1 answers

1

Я связался со службой поддержки нашивки и теперь это должно быть возможно в частном беты. Вы можете попросить Stripe присоединиться к бета налогов.

После присоединения, вы можете получить доступ к документации здесь: https://stripe.com/docs/relay#shipping-and-taxes и здесь: https://stripe.com/docs/relay/dynamic-shipping-taxes#order-creation -Event .

Там будет вариант в вашей полоске приборной панели (настройки реле), чтобы определить «динамические» налоги webhook где нашивка посылает Орден, и ваш сервер должен затем отвечать на пункте заказа, содержащем запись налога. Webhook ударил сразу же после создания заказа.