---
title: API para procesamiento con SDK
slug: api-para-procesamiento-con-sdk
description: Learn how to efficiently utilize the Mobbex API with this comprehensive document. Discover the step-by-step process for generating an intent token, detecting the entered card, and processing operations. Gain valuable insights through code examples and res
docTags: 
createdAt: 2021-02-26T15:36:48.000Z
---

we

Consta básicamente de los siguientes pasos:

- Generación de la intención de Pago (Intent Token)
- Detección de tarjeta ingresada (Opcional)
- Creación de Token de tarjeta (Se gestiona a través del SDK)
- Procesamiento de la operación (Se gestiona a través del SDK)



## Generación de Intent Token

El primer paso para realizar una operación en modalidad tarjeta presente es obtener el Intent Token, en el cuál se definen todas las características de la operación.

La API a utilizar es:

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://api.mobbex.com/p/pos/physical",
  "name": "Creación de Intent Token para Tarjeta Presente",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [
      {
        "kind": "optional",
        "name": "api-key",
        "type": "string",
        "description": "Llave Privada de la entidad"
      }
    ],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "total",
        "type": "Number",
        "children": [],
        "description": "Total de la operación"
      },
      {
        "kind": "required",
        "name": "serialNumber",
        "type": "String",
        "children": [],
        "description": "Serial Reference generado por el SDK identificatorio del lector"
      },
      {
        "kind": "optional",
        "name": "test",
        "type": "Boolean",
        "children": [],
        "description": "Indica si la operación realizada está en modo TEST"
      },
      {
        "kind": "optional",
        "name": "currency",
        "type": "string",
        "children": [],
        "description": "Moneda de la operación. Formato ISO 4217"
      },
      {
        "kind": "optional",
        "name": "otherAmount",
        "type": "Number",
        "children": [],
        "description": "Importe adicional de la operación. Aplica unicamente para operatorias de cashback, la entidad debe estar habilitada para tal fin."
      },
      {
        "kind": "optional",
        "name": "submerchant",
        "type": "Object",
        "children": [
          {
            "kind": "required",
            "name": "reference",
            "type": "string",
            "description": "El campo reference permite identificar al comercio de manera única y evita la duplicación de comercios. Este campo según el país suele estar asociado al identificador Tributario ( CUIT en Argentina ) o el ID de su base de datos. Este campo le permitirá buscar y encontrar el comercio via API o en el Backend."
          },
          {
            "kind": "required",
            "name": "country",
            "type": "string",
            "description": "Código de país del comercio. Formato: ISO 3166-3"
          },
          {
            "kind": "required",
            "name": "legalName",
            "type": "string",
            "description": "Nombre Legal del Comercio como se encuentra registrado en el Fisco"
          },
          {
            "kind": "required",
            "name": "name",
            "type": "string",
            "description": "Nombre de fantasía del comercio"
          },
          {
            "kind": "required",
            "name": "taxIdType",
            "type": "string",
            "description": "Tipo de Identificador Tributario. Valores Aceptados: Argentina: arg.cuit, arg.cuil, arg.dni. Chile: chl.rut. Uruguay: ury.rut. México: mex.rfc"
          },
          {
            "kind": "required",
            "name": "taxId",
            "type": "string",
            "description": "Identificador Tributario basado en el Tipo elegido."
          },
          {
            "kind": "required",
            "name": "mcc",
            "type": "string",
            "description": "MCC del subcomercio (Ver Código de Comercio en la sección Agregadores)"
          },
          {
            "kind": "required",
            "name": "city",
            "type": "string",
            "description": "Ciudad del Comercio"
          },
          {
            "kind": "required",
            "name": "state",
            "type": "string",
            "description": "Provincia o Estado del Comercio. Para Argentina se debe utilizar la clasificacion propuesta ( Ver Cod. de Provincias Argentina en la sección Agregadores)."
          },
          {
            "kind": "required",
            "name": "address",
            "type": "Object",
            "children": [
              {
                "kind": "required",
                "name": "street",
                "type": "string",
                "description": "Calle"
              },
              {
                "kind": "required",
                "name": "number",
                "type": "string",
                "description": "Altura"
              },
              {
                "kind": "required",
                "name": "notes",
                "type": "string",
                "description": "Información adicional sobre la direccion"
              }
            ],
            "description": "Información sobre la dirección del comercio"
          },
          {
            "kind": "optional",
            "name": "currency",
            "type": "string",
            "description": "Moneda por defecto del subcomercio. Si no se envía, se define por defecto la moneda oficial del país."
          },
          {
            "kind": "required",
            "name": "owner",
            "type": "Object",
            "children": [
              {
                "kind": "required",
                "name": "name",
                "type": "string",
                "description": "Nombre del titular"
              },
              {
                "kind": "required",
                "name": "lastname",
                "type": "string",
                "description": "Apellido del titular"
              },
              {
                "kind": "required",
                "name": "identification",
                "type": "string",
                "description": "Documento de Identidad del titular del comercio"
              },
              {
                "kind": "required",
                "name": "identificationType",
                "type": "string",
                "description": "Tipo de Identificador Tributario. Valores Aceptados: Argentina: arg.cuit, arg.cuil, arg.dni. Chile: chl.rut. Uruguay: ury.rut. México: mex.rfc"
              }
            ],
            "description": "Información sobre el responsable/titular del comercio"
          },
          {
            "name": "zipCode",
            "kind": "required",
            "type": "string",
            "description": "Código Postal de la Entidad. Para Argentina, indicar el nuevo CPA de 8 dígitos"
          }
        ],
        "description": "Objeto que contiene toda la información relacionada al subcomercio, requerido en Agrupadores o Pay Fac"
      },
      {
        "kind": "optional",
        "name": "intent",
        "type": "string",
        "children": [],
        "description": "Flujo de la operación, permite soportar operaciones en 2 pasos. Valores posibles: \"payment.2-step\", \"payment.v2\". Por defecto la captura de la operación es automática"
      },
      {
        "kind": "optional",
        "name": "reference",
        "type": "string",
        "children": [],
        "description": "Reference externa de la operación asignada por el consumidor del servicio."
      },
      {
        "kind": "optional",
        "name": "description",
        "type": "string",
        "children": [],
        "description": "Descripción de la operación"
      },
      {
        "kind": "optional",
        "name": "webhook",
        "type": "string",
        "children": [],
        "description": "URL donde se realizará la notificación sobre las actualizaciones sobre el cobro realizado."
      },
      {
        "name": "geolocation",
        "kind": "optional",
        "type": "array",
        "description": "Array de posición en formato: [latitud, longitud]",
        "": "Array de posición en formato: [latitud, longitud]"
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "FyOcKHXNqWH0h_VZm7TNn",
        "code": "{\n    \"result\": true,\n    \"data\": {\n        \"intent\": {\n            \"type\": \"payment.v2\",\n            \"token\": \"620198a7-291e-4bde-9248-43b34d59e8c9\"\n        },\n        \"test\": true\n    }\n}",
        "language": "200"
      }
    ],
    "selectedLanguageId": "FyOcKHXNqWH0h_VZm7TNn"
  },
  "examples": {
    "languages": [
      {
        "id": "cAEI7-ofL5F0I7kaGwBy1",
        "code": "curl --location --request POST 'https://api.mobbex.com/p/pos/physical' \\\n--header 'api-key: _8bjoCPu4xW5GCHsp5yDHzSmhMnQU1kfw7nw' \\\n--header 'x-lang: es' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n\t\"total\": 3.21,\n\t\"serialNumber\": \"2GKJ23H1324\",\n\t\"currency\": \"ARS\",\n\t\"description\": \"Description\",\n\t\"test\": true\n}'",
        "language": "curl"
      }
    ],
    "selectedLanguageId": "cAEI7-ofL5F0I7kaGwBy1"
  },
  "description": "",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "hasTryItOut": false,
  "autoGeneratedAnchorSlug": "creacin-de-intent-token-para-tarjeta-presente",
  "legacyHash": "do8NGFdMXuuNxI1oSmtzx"
}
```
:::

:::hint{type="success"}
## Parámetro a Almacenar

Se debe guardar el valor de "data.intent.token" para ser utilizado en las siguientes operaciones.
:::



## Detección de tarjeta ingresada

Una vez obtenido el `intent.token` de la operación, es posible realizar la detección de la tarjeta ingresada por el cliente para visualizar los planes de cuotas definidos para la misma. Esta detección se realiza sobre el BIN de la tarjeta, es decir, sobre los primeros 6 dígitos del PAN.

Esta API se encuentra restringida a los comercios que hayan solicitado el módulo de cálculo de promociones.

La API a utilizar es:

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://api.mobbex.com/p/sources/detect/{{intent_token}}",
  "name": "Detección de Tarjeta",
  "method": "POST",
  "request": {
    "pathParameters": [],
    "queryParameters": [
      {
        "kind": "optional",
        "name": "intent_token",
        "type": "string",
        "description": "Intent Token correspondiente al checkout creado anteriormente"
      }
    ],
    "headerParameters": [
      {
        "kind": "optional",
        "name": "api-key",
        "type": "string",
        "description": "Llave pública de la entidad"
      }
    ],
    "bodyDataParameters": [
      {
        "kind": "required",
        "name": "type",
        "type": "string",
        "description": "Tipo de medio de pago a consultar. Valor fijo: \"card\""
      },
      {
        "kind": "optional",
        "name": "data",
        "type": "Object",
        "description": "Objeto de tipo JSON con los datos de la tarjeta a detectar."
      },
      {
        "kind": "optional",
        "name": "data.bin",
        "type": "string",
        "description": "BIN de la tarjeta a detectar (primeros 6 dígitos)"
      },
      {
        "kind": "optional",
        "name": "options",
        "type": "Object",
        "description": "Objeto de tipo JSON con las opciones de detección"
      },
      {
        "kind": "optional",
        "name": "options.installments",
        "type": "Boolean",
        "description": "Valor true/false que habilita el cálculo de cuotas."
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "QZhdAziOiemc7b_v0Hk7_",
        "code": "{\n\t\"result\": true,\n\t\"data\": {\n\t\t\"type\": \"card\",\n\t\t\"source\": {\n\t\t\t\"references\": [\"visa\"],\n\t\t\t\"reference\": \"visa\",\n\t\t\t\"generic\": \"visa\",\n\t\t\t\"compatReference\": \"visa\",\n\t\t\t\"name\": \"Visa\",\n\t\t\t\"shortName\": \"Visa\",\n\t\t\t\"currency\": \"*\",\n\t\t\t\"card\": {\n\t\t\t\t\"level\": \"classic\",\n\t\t\t\t\"product\": {\n\t\t\t\t\t\"name\": \"Visa\",\n\t\t\t\t\t\"shortName\": \"Visa\",\n\t\t\t\t\t\"variant\": \"credit\",\n\t\t\t\t\t\"lengths\": [16],\n\t\t\t\t\t\"gaps\": [4, 8, 12],\n\t\t\t\t\t\"code\": {\n\t\t\t\t\t\t\"name\": \"CVV\",\n\t\t\t\t\t\t\"length\": 3,\n\t\t\t\t\t\t\"position\": 1\n\t\t\t\t\t},\n\t\t\t\t\t\"logo\": \"https://res.mobbex.com/images/sources/png/visa.png\",\n\t\t\t\t\t\"validation\": [\"length\", \"exp\", \"cvv\", \"luhn\"]\n\t\t\t\t},\n\t\t\t\t\"issuer\": {\n\t\t\t\t\t\"shortName\": \"Visa\",\n\t\t\t\t\t\"name\": \"Visa\",\n\t\t\t\t\t\"color\": \"#122d98\",\n\t\t\t\t\t\"logo\": \"https://res.mobbex.com/images/sources/png/visa.png\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"installments\": [{\n\t\t\t\"name\": \"1 Pago\",\n\t\t\t\"description\": \"1 Pago\",\n\t\t\t\"sourceReference\": \"\",\n\t\t\t\"count\": 1,\n\t\t\t\"reference\": \"1\",\n\t\t\t\"totals\": {\n\t\t\t\t\"currency\": {\n\t\t\t\t\t\"value\": \"TEST\",\n\t\t\t\t\t\"label\": \"Test Money\",\n\t\t\t\t\t\"symbol\": \"T$\",\n\t\t\t\t\t\"hidden\": false\n\t\t\t\t},\n\t\t\t\t\"installment\": {\n\t\t\t\t\t\"amount\": 5,\n\t\t\t\t\t\"count\": 1\n\t\t\t\t},\n\t\t\t\t\"total\": 5,\n\t\t\t\t\"financial\": {\n\t\t\t\t\t\"percentage\": 0,\n\t\t\t\t\t\"amount\": 0\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\t\"name\": \"3 Cuotas\",\n\t\t\t\"description\": \"3 Cuotas\",\n\t\t\t\"sourceReference\": \"\",\n\t\t\t\"count\": 3,\n\t\t\t\"reference\": \"3\",\n\t\t\t\"totals\": {\n\t\t\t\t\"currency\": {\n\t\t\t\t\t\"value\": \"TEST\",\n\t\t\t\t\t\"label\": \"Test Money\",\n\t\t\t\t\t\"symbol\": \"T$\",\n\t\t\t\t\t\"hidden\": false\n\t\t\t\t},\n\t\t\t\t\"installment\": {\n\t\t\t\t\t\"amount\": 1.92,\n\t\t\t\t\t\"count\": 3\n\t\t\t\t},\n\t\t\t\t\"total\": 5.75,\n\t\t\t\t\"financial\": {\n\t\t\t\t\t\"percentage\": 15,\n\t\t\t\t\t\"amount\": 0.75\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\t\"name\": \"6 Cuotas\",\n\t\t\t\"description\": \"6 Cuotas\",\n\t\t\t\"sourceReference\": \"\",\n\t\t\t\"count\": 6,\n\t\t\t\"reference\": \"6\",\n\t\t\t\"totals\": {\n\t\t\t\t\"currency\": {\n\t\t\t\t\t\"value\": \"TEST\",\n\t\t\t\t\t\"label\": \"Test Money\",\n\t\t\t\t\t\"symbol\": \"T$\",\n\t\t\t\t\t\"hidden\": false\n\t\t\t\t},\n\t\t\t\t\"installment\": {\n\t\t\t\t\t\"amount\": 1.08,\n\t\t\t\t\t\"count\": 6\n\t\t\t\t},\n\t\t\t\t\"total\": 6.5,\n\t\t\t\t\"financial\": {\n\t\t\t\t\t\"percentage\": 30,\n\t\t\t\t\t\"amount\": 1.5\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\t\"name\": \"9 Cuotas\",\n\t\t\t\"description\": \"9 Cuotas\",\n\t\t\t\"sourceReference\": \"\",\n\t\t\t\"count\": 9,\n\t\t\t\"reference\": \"9\",\n\t\t\t\"totals\": {\n\t\t\t\t\"currency\": {\n\t\t\t\t\t\"value\": \"TEST\",\n\t\t\t\t\t\"label\": \"Test Money\",\n\t\t\t\t\t\"symbol\": \"T$\",\n\t\t\t\t\t\"hidden\": false\n\t\t\t\t},\n\t\t\t\t\"installment\": {\n\t\t\t\t\t\"amount\": 0.81,\n\t\t\t\t\t\"count\": 9\n\t\t\t\t},\n\t\t\t\t\"total\": 7.25,\n\t\t\t\t\"financial\": {\n\t\t\t\t\t\"percentage\": 45,\n\t\t\t\t\t\"amount\": 2.25\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\t\"name\": \"Ahora 12\",\n\t\t\t\"description\": \"\",\n\t\t\t\"sourceReference\": \"\",\n\t\t\t\"count\": 12,\n\t\t\t\"reference\": \"ahora_12\",\n\t\t\t\"totals\": {\n\t\t\t\t\"currency\": {\n\t\t\t\t\t\"value\": \"TEST\",\n\t\t\t\t\t\"label\": \"Test Money\",\n\t\t\t\t\t\"symbol\": \"T$\",\n\t\t\t\t\t\"hidden\": false\n\t\t\t\t},\n\t\t\t\t\"installment\": {\n\t\t\t\t\t\"amount\": 0.48,\n\t\t\t\t\t\"count\": 12\n\t\t\t\t},\n\t\t\t\t\"total\": 5.75,\n\t\t\t\t\"financial\": {\n\t\t\t\t\t\"percentage\": 15,\n\t\t\t\t\t\"amount\": 0.75\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\t\"name\": \"Ahora 18\",\n\t\t\t\"description\": \"\",\n\t\t\t\"sourceReference\": \"\",\n\t\t\t\"count\": 18,\n\t\t\t\"reference\": \"ahora_18\",\n\t\t\t\"totals\": {\n\t\t\t\t\"currency\": {\n\t\t\t\t\t\"value\": \"TEST\",\n\t\t\t\t\t\"label\": \"Test Money\",\n\t\t\t\t\t\"symbol\": \"T$\",\n\t\t\t\t\t\"hidden\": false\n\t\t\t\t},\n\t\t\t\t\"installment\": {\n\t\t\t\t\t\"amount\": 0.35,\n\t\t\t\t\t\"count\": 18\n\t\t\t\t},\n\t\t\t\t\"total\": 6.25,\n\t\t\t\t\"financial\": {\n\t\t\t\t\t\"percentage\": 25,\n\t\t\t\t\t\"amount\": 1.25\n\t\t\t\t}\n\t\t\t}\n\t\t}]\n\t}\n}",
        "language": "200"
      }
    ],
    "selectedLanguageId": "QZhdAziOiemc7b_v0Hk7_"
  },
  "examples": {
    "languages": [
      {
        "id": "0kcm9lyyz1L8YmrE-FlUD",
        "code": "curl --location --request POST 'https://api.mobbex.com/p/sources/detect/{intent_token}' \\\n--header 'api-key: ZQnK0za2GaHa5rkiUb0XROIK5akZzSDK5BgA' \\\n--header 'x-lang: es' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n\t\"type\": \"card\",\n\t\"data\": {\n\t\t\"bin\": \"451700\"\n\t},\n  \"options\": {\n\t\t\"installments\": true\n\t},\n}'",
        "language": "curl"
      }
    ],
    "selectedLanguageId": "0kcm9lyyz1L8YmrE-FlUD"
  },
  "description": "",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "hasTryItOut": false,
  "autoGeneratedAnchorSlug": "deteccin-de-tarjeta",
  "legacyHash": "ygyPzG1sJ9shyHxYMhMRM"
}
```
:::



:::hint{type="success"}
## Procesamiento con el plan de cuotas

Se debe almacenar el valor "data.installments.reference" correspondiente al plan de cuotas elegido para ser utilizado luego al procesar la operación
:::

## Devolución de Operaciones

Para realizar la devolución de operaciones, tambien es requisito la generación de un Intent Token de devolución

:::ApiMethodV2
```json
{
  "tab": "request",
  "url": "https://api.mobbex.com/p/pos/physical/{uid}/refund",
  "name": "Realizar devolución de operación",
  "method": "POST",
  "request": {
    "pathParameters": [
      {
        "name": "uid",
        "kind": "required",
        "type": "string",
        "description": "ID del cupón a devolver",
        "children": []
      }
    ],
    "queryParameters": [],
    "headerParameters": [
      {
        "kind": "required",
        "name": "api-key",
        "type": "string",
        "description": "Llave privada de la entidad"
      },
      {
        "kind": "required",
        "name": "x-suga-entity",
        "type": "string",
        "description": "UID de la entidad a la que pertenece la operación. En relación al intent token de procesamiento, debe ser igual al parámetro \"submerchant.reference\""
      }
    ],
    "bodyDataParameters": [
      {
        "kind": "optional",
        "name": "total",
        "type": "Number",
        "description": "Importe a devolver en el caso de que se realice una devolución parcial. En caso de anulaciones o devoluciones totales, este campo no es requerido"
      }
    ],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "VeEhfPI51suoX5U8m38h8",
        "code": "{\n    \"intent\": {\n      \"token\": \"\"\n    },\n    \"requireCard\": true\n}",
        "language": "200"
      },
      {
        "id": "6YRZXkKu8cI2ZUfliAKnX",
        "code": "",
        "language": "404"
      }
    ],
    "selectedLanguageId": "VeEhfPI51suoX5U8m38h8"
  },
  "examples": {
    "languages": [
      {
        "id": "yh0hnMRMXmXqUXdqjkVHb",
        "code": "curl --location --request POST ' https://api.mobbex.com/p/pos/physical/ybzgOhykE/refund' \\\n--header 'api-key: abcabc123123defdef456456' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"total\": 10\n}'",
        "language": "curl"
      },
      {
        "id": "OJDgIU8BJuhy9fUtMdJ2W",
        "code": "var data = JSON.stringify({\n  \"total\": 10,\n  \"source\": \"T:pS65Gf2H~\"\n});\n\nvar xhr = new XMLHttpRequest();\nxhr.withCredentials = true;\n\nxhr.addEventListener(\"readystatechange\", function() {\n  if(this.readyState === 4) {\n    console.log(this.responseText);\n  }\n});\n\nxhr.open(\"POST\", \"https://api.mobbex.com/p/operations/ybzgOhykE/refund\");\nxhr.setRequestHeader(\"api-key\", \"abcabc123123defdef456456\");\nxhr.setRequestHeader(\"Content-Type\", \"application/json\");\n\nxhr.send(data);",
        "language": "javascript"
      }
    ],
    "selectedLanguageId": "yh0hnMRMXmXqUXdqjkVHb"
  },
  "description": "",
  "currentNewParameter": {
    "label": "Path Parameter",
    "value": "pathParameters"
  },
  "hasTryItOut": false,
  "autoGeneratedAnchorSlug": "realizar-devolucin-de-operacin",
  "legacyHash": "NRLOA6DFXGtX8-wJdHtmY"
}
```
:::



