Tamara Channel Partners API

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. Hosted on a dedicated partner subdomain (partner-api.tamara.co).

OpenAPI Specification

tamara-channel-partners-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Tamara Channel Partners 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: Merchant Onboarding
- name: Merchant API Keys
- name: Channel Partner Webhooks
paths:
  /channel-partners/merchant-onboarding/create:
    post:
      operationId: createMerchantOnboarding
      summary: Create Merchant Onboarding
      description: Submit merchant and KYB information to initiate automated onboarding and verification.
      tags: [Merchant Onboarding]
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingRequest'
      responses:
        '200':
          description: Onboarding submitted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingResponse'
  /channel-partners/merchant-onboarding/{onboardingCode}:
    get:
      operationId: retrieveMerchantOnboarding
      summary: Retrieve Merchant Onboarding
      tags: [Merchant Onboarding]
      security:
      - bearerAuth: []
      parameters:
      - name: onboardingCode
        in: path
        required: true
        schema:
          type: string
          example: S0777457
      responses:
        '200':
          description: Onboarding details.
  /channel-partners/merchant/{merchantId}/api-key:
    get:
      operationId: retrieveMerchantApiKeys
      summary: Retrieve Merchant API Keys
      description: Retrieve API, public, and notification keys for an onboarded merchant.
      tags: [Merchant API Keys]
      security:
      - bearerAuth: []
      parameters:
      - name: merchantId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Merchant API keys.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantApiKeys'
  /channel-partners/webhooks/register:
    post:
      operationId: registerChannelPartnerWebhook
      summary: Register Channel Partner Webhook
      description: Register a new webhook for onboarding status notifications.
      tags: [Channel Partner Webhooks]
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartnerWebhookRequest'
      responses:
        '201':
          description: Webhook registered.
  /channel-partners/webhooks:
    get:
      operationId: listChannelPartnerWebhooks
      summary: Retrieve Channel Partner Webhooks
      tags: [Channel Partner Webhooks]
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Channel partner webhooks.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PartnerWebhook'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
  schemas:
    BusinessKyc:
      type: object
      properties:
        business_name:
          type: string
        country_of_operations:
          type: string
        business_type:
          type: string
          enum: [registered, freelance, sole_proprietor]
        website_url:
          type: string
          format: uri
        online:
          type: boolean
        in_store:
          type: boolean
        annual_gmv:
          type: string
        category:
          type: array
          items:
            type: string
        sub_category:
          type: array
          items:
            type: string
        platform:
          type: string
    BankKyc:
      type: object
      properties:
        iban:
          type: string
        email_for_settlement_report:
          type: string
        beneficiary_name:
          type: string
        swift_code:
          type: string
    LegalKyc:
      type: object
      properties:
        cr_number:
          type: string
        national_id_number:
          type: string
        entity_name:
          type: string
        legal_address:
          type: string
        legal_signatory_name:
          type: string
    OnboardingRequest:
      type: object
      required:
      - first_name
      - last_name
      - country
      - email
      - phone
      - business_kyc
      properties:
        locale:
          type: string
          example: en_AE
        first_name:
          type: string
        last_name:
          type: string
        country:
          type: string
        email:
          type: string
          format: email
        country_code:
          type: string
        phone:
          type: string
        hear_about_tamara:
          type: string
        external_channel_partner_id:
          type: string
        business_kyc:
          $ref: '#/components/schemas/BusinessKyc'
        bank_kyc:
          $ref: '#/components/schemas/BankKyc'
        legal_kyc:
          $ref: '#/components/schemas/LegalKyc'
        user_defined_data:
          type: object
          additionalProperties: true
    OnboardingResponse:
      type: object
      properties:
        onboarding_code:
          type: string
    MerchantApiKeys:
      type: object
      properties:
        api_key:
          type: string
        public_key:
          type: string
        notification_key:
          type: string
        merchant_id:
          type: string
          format: uuid
        merchant_code:
          type: string
        merchant_status:
          type: string
    PartnerWebhookRequest:
      type: object
      required: [url, events]
      properties:
        url:
          type: string
          format: uri
        events:
          type: array
          items:
            type: string
            enum: [qualified, disqualified, ready_to_transact, resubmission_required]
        headers:
          type: object
          additionalProperties:
            type: string
    PartnerWebhook:
      type: object
      properties:
        id:
          type: string
          format: uuid
        url:
          type: string
          format: uri
        events:
          type: array
          items:
            type: string
        headers:
          type: object
          additionalProperties:
            type: string