? Question

REST API

Do you have an online marketplace or a retail website? Do you want to empower your customers with safe and convenient payments? Integrate with GunTab through our API.

Overview

The GunTab API is a RESTful JSON API. That means it is designed to:

Authentication

API authentication is token-based.

API tokens can only be generated by users who have verified their identity. You can verify your identity in either of these ways:

After your identity has been verified, please create a token from your GunTab account. The token value should be used to build your "Authorization" header with a "Token" type, like this:

Authorization: Token 55555555-5555-5555-5555-555555555555

API token types

By default, API tokens are non-production. This means they will return dummy responses without actually taking any action. These dummy responses are formatted exactly like production responses. Please use these non-production API keys for all development and testing pursposes. For live production purposes, please generate a production API key.

Warning: Don't forget to use a production API key in your production environment. If GunTab is giving you success responses, but your requests don't otherwise seem successful, it is because you are using a non-production API key.

Errors

All errors have the same format:

{
  "errors": [
    "Your authentication token is invalid."
  ]
}

Invoices

You can use the API to create and read Invoices. These are also known as "payment requests". An Invoice is how a seller initiates a GunTab transaction to get paid. If a buyer accepts an Invoice, GunTab will help the buyer select a local FFL and make payment.

Create Invoice

Create a new Invoice. Give the buyer_email if you want GunTab to send an email to the buyer, or leave it empty and send the response_url to the buyer your own way. Maximum of 100 per 24 hour period.

Endpoint

POST https://api.guntab.com/v1/invoices

Parameters

Response

After creating an Invoice with a buyer_email value, you can ask the buyer to check their email for a payment request from GunTab.

After creating an Invoice without a buyer_email value, you should redirect the buyer to the response_url that appears in the response payload.

Example Request JSON

{
  "amount_cents": "75000",
  "buyer_email": "buyer@example.com",
  "sales_tax_amount_cents": "6375",
  "seller_order_id": "555555",
  "shipping_amount_cents": "3500",
  "listings": [
    {
      "listing_type_id": "handgun",
      "quantity": 1,
      "title": "Glock 19x Gen 5 9mm",
      "url": "https://www.gunbroker.com/item/847828189"
    }
  ]
}

Example Response JSON

{
  "amount_cents": 75000,
  "buyer_email": "buyer@example.com",
  "created_at": "2022-11-28T15:36:23.147Z",
  "id": "d9777bdd-e68e-4ebc-88cc-5746d2db7e8a",
  "object": "Invoice",
  "production": false,
  "response": null,
  "response_at": null,
  "response_url": "http://example.org/invoices/d9777bdd-e68e-4ebc-88cc-5746d2db7e8a/responses/new",
  "sales_tax_amount_cents": 6375,
  "seller_order_id": "555555",
  "shipping_amount_cents": 3500,
  "listings": [
    {
      "amount_cents": null,
      "description": null,
      "listing_type_id": "handgun",
      "quantity": 1,
      "serial_number": null,
      "title": "Glock 19x Gen 5 9mm",
      "url": "https://www.gunbroker.com/item/847828189"
    }
  ]
}

Read Invoice

Get the details of an existing Invoice, including the response_url that can be shared with the buyer.

Endpoint

GET https://api.guntab.com/v1/invoices/55555555-5555-5555-5555-555555555555

Response

When using a non-production API token, this endpoint will return dummy data. The production key in the response indicates if you are using a production API token.

Example Request JSON

{
}

Example Response JSON

{
  "amount_cents": 75000,
  "buyer_email": "buyer@example.com",
  "created_at": "2022-11-28T15:36:23.147Z",
  "id": "d9777bdd-e68e-4ebc-88cc-5746d2db7e8a",
  "object": "Invoice",
  "production": false,
  "response": null,
  "response_at": null,
  "response_url": "http://example.org/invoices/d9777bdd-e68e-4ebc-88cc-5746d2db7e8a/responses/new",
  "sales_tax_amount_cents": 6375,
  "seller_order_id": "555555",
  "shipping_amount_cents": 3500,
  "listings": [
    {
      "amount_cents": null,
      "description": null,
      "listing_type_id": "handgun",
      "quantity": 1,
      "serial_number": null,
      "title": "Glock 19x Gen 5 9mm",
      "url": "https://www.gunbroker.com/item/847828189"
    }
  ]
}

Support

Need help or have a question? Please see our Help Center, or you can contact support.