Tamara In-Store Checkout API

Generate Tamara checkout sessions for brick-and-mortar stores through SMS payment links or QR codes that customers scan with the Tamara consumer app to complete the BNPL purchase in-aisle. Includes the void operation for in-store sessions that need to be cancelled before completion.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tamara-in-store-checkout-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tamara-in-store-checkout-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Tamara Channel Partners Captures In-Store Checkout API
  description: 'Allow payment service providers, platforms, and aggregators to onboard merchants onto

    Tamara on their behalf. Submit merchant KYB/KYC information, retrieve onboarding

    status and merchant API keys, and register onboarding event webhooks.

    '
  version: 1.0.0
  contact:
    name: Tamara Partner Support
    url: https://docs.tamara.co/
servers:
- url: https://partner-api.tamara.co
  description: Production
- url: https://partner-api-sandbox.tamara.co
  description: Sandbox
tags:
- name: In-Store Checkout
paths:
  /checkout/in-store-session:
    post:
      operationId: createInStoreSmsSession
      summary: Create In-Store SMS Payment Link Checkout Session
      description: 'Create an in-store checkout session and SMS a Tamara payment link to the supplied

        consumer phone number. Returns a `checkout_id`, `order_id`, and `checkout_deeplink`.

        '
      tags:
      - In-Store Checkout
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InStoreSmsRequest'
      responses:
        '200':
          description: Session created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InStoreSessionResponse'
  /checkout/in-store:
    post:
      operationId: createInStoreQrSession
      summary: Create In-Store QR Code Checkout Session
      description: 'Create an in-store checkout deeplink that can be rendered as a QR code for the

        consumer to scan in-store with the Tamara app.

        '
      tags:
      - In-Store Checkout
      security:
      - bearerAuth: []
      parameters:
      - name: X-Device-Id
        in: header
        required: true
        schema:
          type: string
        description: POS device identifier.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InStoreQrRequest'
      responses:
        '200':
          description: Session created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InStoreSessionResponse'
  /checkout/{checkout_id}/void:
    post:
      operationId: voidCheckoutSession
      summary: Void Checkout Session
      description: Void an in-store checkout session before the consumer completes the payment.
      tags:
      - In-Store Checkout
      security:
      - bearerAuth: []
      parameters:
      - name: checkout_id
        in: path
        required: true
        schema:
          type: string
      - name: order_id
        in: query
        required: true
        schema:
          type: string
          format: uuid
      - name: store_code
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Void result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: success
                  captured_amount:
                    $ref: '#/components/schemas/Money'
components:
  schemas:
    Item:
      type: object
      properties:
        reference_id:
          type: string
        type:
          type: string
        name:
          type: string
        sku:
          type: string
        quantity:
          type: integer
        total_amount:
          $ref: '#/components/schemas/Money'
    InStoreSmsRequest:
      type: object
      required:
      - total_amount
      - phone_number
      - order_reference_id
      - items
      properties:
        total_amount:
          $ref: '#/components/schemas/Money'
        phone_number:
          type: string
        order_reference_id:
          type: string
        order_number:
          type: string
        email:
          type: string
        locale:
          type: string
          enum:
          - ar_SA
          - en_US
        payment_type:
          type: string
          enum:
          - PAY_BY_INSTALMENTS
          - PAY_NOW
        expires_in_minutes:
          type: integer
          minimum: 5
          maximum: 1440
          default: 15
        items:
          type: array
          items:
            $ref: '#/components/schemas/Item'
        additional_data:
          type: object
          properties:
            store_code:
              type: string
    Money:
      type: object
      required:
      - amount
      - currency
      properties:
        amount:
          type: number
        currency:
          type: string
          enum:
          - SAR
          - AED
          - BHD
          - KWD
          - OMR
    InStoreQrRequest:
      type: object
      required:
      - amount
      - platform
      properties:
        amount:
          $ref: '#/components/schemas/Money'
        order_reference_id:
          type: string
        order_number:
          type: string
        platform:
          type: string
          description: Identifier for the POS or QR partner platform.
          example: PARTNERNAME_POS_QR
        locale:
          type: string
          enum:
          - ar_SA
          - en_US
        additional_data:
          type: object
          properties:
            store_code:
              type: string
    InStoreSessionResponse:
      type: object
      properties:
        checkout_id:
          type: string
          format: uuid
        order_id:
          type: string
          format: uuid
        checkout_deeplink:
          type: string
          format: uri
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer