Telr Remote API

Direct server-to-server card and wallet transactions (remote.json).

OpenAPI Specification

telr-remote-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Telr Payment Gateway Agreements Remote API
  description: 'Telr is a UAE-headquartered (Dubai) online payment gateway operating across the MENA region (UAE, Saudi Arabia, Bahrain, Jordan), supporting 120+ currencies and 30 languages. This specification models Telr''s documented HTTPS/JSON gateway surfaces: the Hosted Payment Page (order.json), the Remote / Direct API (remote.json, including Apple Pay / Google Pay / Samsung Pay wallet tokens), repeat-billing agreements (manageagreement.json), and the newer REST Payments API (/api/v1/orders). Legacy gateway endpoints authenticate with a numeric store id + authentication key passed in the JSON body; the REST Service/Payments API uses HTTP Basic auth (store id : API key). All transactions are PCI DSS v4.0 Level 1 and NESA certified.'
  termsOfService: https://telr.com/terms-conditions/
  contact:
    name: Telr Support
    url: https://docs.telr.com/
    email: support@telr.com
  version: '1.0'
servers:
- url: https://secure.telr.com
  description: Telr production gateway (MENA)
security:
- basicAuth: []
tags:
- name: Remote
  description: Direct server-to-server card and wallet transactions (remote.json).
paths:
  /gateway/remote.json:
    post:
      operationId: createRemoteTransaction
      tags:
      - Remote
      summary: Process a direct (remote) card or wallet transaction
      description: Server-to-server sale/auth transaction. Card details, or an Apple Pay / Google Pay / Samsung Pay wallet token, are submitted directly. Requires appropriate PCI scope for raw card data. Authenticates with store + authkey in the request body.
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoteRequest'
      responses:
        '200':
          description: Transaction processed (see transaction.status).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteResponse'
components:
  schemas:
    RemoteResponse:
      type: object
      properties:
        trace:
          type: string
        transaction:
          type: object
          properties:
            ref:
              type: string
            type:
              type: string
            class:
              type: string
            status:
              type: string
            code:
              type: string
            message:
              type: string
        error:
          type: object
          properties:
            message:
              type: string
            note:
              type: string
            details:
              type: object
    RemoteRequest:
      type: object
      required:
      - store
      - authkey
      - method
      - tran
      properties:
        store:
          type: integer
        authkey:
          type: string
        method:
          type: string
          enum:
          - transaction
          - card
          - wallet
        tran:
          type: object
          required:
          - type
          - class
          - amount
          - currency
          properties:
            id:
              type: string
              description: Cart / order id.
            type:
              type: string
              enum:
              - sale
              - auth
              - capture
              - refund
              - void
            class:
              type: string
              enum:
              - ecom
              - moto
              - cont
              description: ecom = e-commerce, moto = mail/phone order, cont = continuous.
            description:
              type: string
              maxLength: 63
            amount:
              type: string
            currency:
              type: string
              example: AED
            test:
              type: integer
              enum:
              - 0
              - 1
            ref:
              type: string
              description: Original transaction ref for capture/refund/void.
        card:
          type: object
          properties:
            number:
              type: string
            expiry:
              type: object
              properties:
                month:
                  type: integer
                year:
                  type: integer
            cvv:
              type: string
        applepay:
          type: object
          description: Apple Pay token (encrypted payload or decrypted network token).
        googlepay:
          type: object
          description: Google Pay token.
        samsungpay:
          type: object
          description: Samsung Pay token.
        customer:
          $ref: '#/components/schemas/Customer'
    Customer:
      type: object
      properties:
        email:
          type: string
          format: email
        name:
          type: object
          properties:
            title:
              type: string
            firstName:
              type: string
            lastName:
              type: string
        address:
          type: object
          properties:
            line1:
              type: string
            line2:
              type: string
            line3:
              type: string
            city:
              type: string
            country:
              type: string
              description: ISO 3166-1 alpha-2 country code.
        phone:
          type: string
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: 'HTTP Basic auth for the REST Service / Payments API: username = store id, password = API key (generated in Merchant Administration under Integrations > Service API). Base64 of "storeid:apikey".'