{
  "info": {
    "_postman_id": "9e73cb77467d7b03830b7118e305dcad",
    "name": "Gateway (Español)",
    "description": "Colección generada automáticamente desde la definición OpenAPI publicada en Placetopay Docs. La variable base_url ya está configurada con la dirección del entorno de pruebas.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://api-co-dev.placetopay.ws"
    }
  ],
  "item": [
    {
      "name": "Solicitud de Información",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/information",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "information"
          ]
        },
        "description": "Este servicio proporciona información sobre la tarjeta del usuario que se va a procesar, tal como qué servicios son los que se usarán para ella y los tipos de crédito, si aplica, que hay para esta, si no hay tipos de crédito se retorna un arreglo vacío y si los hay, se debe iterar cada tipo de crédito con los installments que se encuentran en el arreglo.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"auth\": {\n    \"login\": \"aabbccdd1234567890aabbccdd123456\",\n    \"tranKey\": \"ABC123example456trankey+789abc012def3456ABC=\",\n    \"nonce\": \"NjE0OWVkODgwYjNhNw==\",\n    \"seed\": \"2021-09-21T09:34:48-05:00\"\n  },\n  \"payment\": {\n    \"reference\": \"1234567890\",\n    \"description\": \"Testing Payment\",\n    \"amount\": {\n      \"currency\": \"COP\",\n      \"total\": \"3000\"\n    }\n  },\n  \"instrument\": {\n    \"card\": {\n      \"number\": \"4110760000000008\"\n    }\n  },\n  \"ipAddress\": \"127.0.0.1\",\n  \"userAgent\": \"Testing\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Procesamiento de transacción",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/process",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "process"
          ]
        },
        "description": "Este servicio permite que se realice el cobro a la tarjeta del usuario, los parámetros del instrument son variables, si no se pide tipo de crédito ni otp no es necesario enviar esas variables, payer es siempre requerido, buyer es opcional pero recomendado."
      }
    },
    {
      "name": "Tokenización (tokenize)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/tokenize",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "tokenize"
          ]
        },
        "description": "Este servicio permite almacenar un instrumento de pago como: tarjetas de crédito o cuenta bancaria de manera segura, a través de una petición que contenga la información de la misma, se generará un token que puede ser usado en el servicio de procesamiento y para todos los efectos, en Placetopay equivale a una tarjeta de crédito o cuenta bancaria, la diferencia es que se envía la estructura token en vez de card o account.\nPreviamente al consumo de este servicio se debe consultar el de información para saber si es necesario o no generar un OTP al cliente y en caso de ser necesario, solicitar el token a la persona y enviarlo en el consumo.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"auth\": {\n    \"login\": \"aabbccdd1234567890aabbccdd123456\",\n    \"tranKey\": \"ABC123example456trankey+789abc012def3456ABC=\",\n    \"nonce\": \"NjBjYjc3YTYwZGZhYw==\",\n    \"seed\": \"2021-06-17T11:26:14-05:00\"\n  },\n  \"payer\": {\n    \"name\": \"John\",\n    \"surname\": \"Doe\",\n    \"email\": \"user_email@example.com\"\n  },\n  \"instrument\": {\n    \"card\": {\n      \"number\": \"5180300000000005\",\n      \"expiration\": \"12/18\",\n      \"cvv\": \"123\"\n    }\n  },\n  \"ipAddress\": \"127.0.0.1\",\n  \"userAgent\": \"Testing\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Tokenización (invalidate)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/invalidate",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "invalidate"
          ]
        },
        "description": "Este servicio permite invalidar y eliminar un token asociado a una tarjeta de crédito.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"auth\": {\n    \"login\": \"aabbccdd1234567890aabbccdd123456\",\n    \"tranKey\": \"/svw0VZ1UML5qEmaPbefQO7OXt098zOdfWsc/vHclGM=\",\n    \"nonce\": \"NjQ0MWFlNGY0MWE1OQ==\",\n    \"seed\": \"2023-04-20T16:27:43-05:00\"\n  },\n  \"instrument\": {\n    \"token\": {\n      \"token\": \"239bd2573205e974c4bed7c99cc1125c464f6350a905565333fff041d8f5ef79\"\n    }\n  }\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Operaciones sobre una transacción",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/transaction",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "transaction"
          ]
        },
        "description": "Permite realizar un reembolso, re-autorización, checkout, confirmación o cancelación sobre una transacción existente",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"auth\": {\n    \"login\": \"aabbccdd1234567890aabbccdd123456\",\n    \"tranKey\": \"ABC123example456trankey+789abc012def3456ABC=\",\n    \"nonce\": \"MzgwYWYwMjc2ZWUzODA5YmI1MDQ1YmNjYzdlNzY1MTY=\",\n    \"seed\": \"2021-03-02T17:03:50+01:00\"\n  },\n  \"internalReference\": \"1505723583\",\n  \"authorization\": \"999999\",\n  \"action\": \"reverse\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Consulta de transacción por referencia interna",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/query",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "query"
          ]
        },
        "description": "Permite consultar una transacción en particular usando su referencia interna",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"auth\": {\n    \"login\": \"aabbccdd1234567890aabbccdd123456\",\n    \"tranKey\": \"ABC123example456trankey+789abc012def3456ABC=\",\n    \"nonce\": \"MzgwYWYwMjc2ZWUzODA5YmI1MDQ1YmNjYzdlNzY1MTY=\",\n    \"seed\": \"2021-03-02T17:03:50+01:00\"\n  },\n  \"internalReference\": \"230364\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Búsqueda de transacciones",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/search",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "search"
          ]
        },
        "description": "Este servicio permite la búsqueda de transacciones por referencia y monto, suele utilizarse en caso de pérdida de comunicación al crear una transacción para obtener la referencia interna nuevamente.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"auth\": {\n    \"login\": \"aabbccdd1234567890aabbccdd123456\",\n    \"tranKey\": \"+FSGHsW3e6WrrHcIdBmqI+j6FFeUN4bidfPL7LeZgvE=\",\n    \"nonce\": \"N2YzMGM1M2QxOTU3YzZmMzVlYmIzZTAyOGMwNjNkMmU=\",\n    \"seed\": \"2021-03-03T19:40:37+01:00\"\n  },\n  \"reference\": \"TEST_20171108_144400\",\n  \"amount\": {\n    \"currency\": \"COP\",\n    \"total\": 1000\n  }\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Cálculo de Intereses",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/interests",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "interests"
          ]
        },
        "description": "Este servicio se debe consumir si la tarjeta requiere que se muestren los intereses (`displayInterest` en `true`) o sus condiciones de crédito lo permiten (Ver condición en [Créditos por proveedor](/gateway/additional-data/#additional-data-credit-providers)). Está disponible para los flujos que exponen cálculo de intereses, incluidos Ecuador y Chile con PAYSTUDIO flavour `TS`."
      }
    },
    {
      "name": "Generación de OTP (solo Ecuador)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/otp/generate",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "otp",
            "generate"
          ]
        },
        "description": "Este servicio se consume si es necesario el otp para la tarjeta provista por el cliente (requireOtp en true) y debe permitirsele al usuario ingresar el OTP para enviarlo posteriormente en el servicio de procesamiento, a manera de ejemplo de esta manera se captura en la interfaz de redirección",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"auth\": {\n    \"login\": \"aabbccdd1234567890aabbccdd123456\",\n    \"tranKey\": \"q/7k0WUshvLEpQ5gqNWqne+ZfWXSXUP/b7T80TuAUSY=\",\n    \"nonce\": \"NjE0YTM3OGIwNjA2NA==\",\n    \"seed\": \"2021-09-21T14:50:35-05:00\"\n  },\n  \"payer\": {\n    \"name\": \"John\",\n    \"email\": \"user_email@example.com\"\n  },\n  \"payment\": {\n    \"reference\": \"1234567890\",\n    \"amount\": {\n      \"currency\": \"USD\",\n      \"total\": 3\n    }\n  },\n  \"instrument\": {\n    \"card\": {\n      \"number\": \"36545400000008\",\n      \"expiration\": \"12/20\",\n      \"cvv\": \"123\"\n    }\n  },\n  \"ipAddress\": \"127.0.0.1\",\n  \"userAgent\": \"Testing\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Validación de OTP (solo Ecuador)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/otp/validate",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "otp",
            "validate"
          ]
        },
        "description": "Permite validar que el OTP provisto concuerde con el enviado por el proveedor y proporcionará una firma que sirve para autenticar la transacción > Nota Importante > > Es necesario enviar el valor retornado como `signature` en la respuesta como `instrument.otp` en la petición de procesamiento para que se registre en la transacción",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"auth\": {\n    \"login\": \"aabbccdd1234567890aabbccdd123456\",\n    \"tranKey\": \"q/7k0WUshvLEpQ5gqNWqne+ZfWXSXUP/b7T80TuAUSY=\",\n    \"nonce\": \"NjE0YTM3OGIwNjA2NA==\",\n    \"seed\": \"2021-09-21T14:50:35-05:00\"\n  },\n  \"payer\": {\n    \"name\": \"John\",\n    \"email\": \"user_email@example.com\"\n  },\n  \"payment\": {\n    \"reference\": \"1234567890\",\n    \"amount\": {\n      \"currency\": \"USD\",\n      \"total\": 3\n    }\n  },\n  \"instrument\": {\n    \"card\": {\n      \"number\": \"36545400000008\",\n      \"expiration\": \"12/20\",\n      \"cvv\": \"123\"\n    },\n    \"otp\": \"123456\"\n  },\n  \"ipAddress\": \"127.0.0.1\",\n  \"userAgent\": \"Testing\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Solicitar un reporte",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/report",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "report"
          ]
        },
        "description": "Permite solicitar que se genere un reporte de transacciones y retorna un identificador para el proceso, el cúal una vez sea llamado el callback puede ser obtenido en el endpoint siguiente",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"auth\": {\n    \"login\": \"aabbccdd1234567890aabbccdd123456\",\n    \"tranKey\": \"cV5MJlkUgPq/BLG40M1Cp2mSkJcZg7FPL4FBxKo+t5A=\",\n    \"nonce\": \"NjQ4MjMzMjY0MDIyYw==\",\n    \"seed\": \"2023-06-08T14:59:34-05:00\"\n  },\n  \"filters\": {\n    \"startDate\": \"2023-06-07 14:59:34\",\n    \"endDate\": \"2023-06-08 14:59:34\"\n  },\n  \"callbackUrl\": \"https://dnetix.co/ping/report\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Obtener un reporte previamente solicitado",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/report/obtain",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "report",
            "obtain"
          ]
        },
        "description": "Permite obtener un reporte previamente generado"
      }
    },
    {
      "name": "3DS Lookup",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/mpi/lookup",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "mpi",
            "lookup"
          ]
        },
        "description": "Realiza el proceso inicial de validación de 3DS retornando los datos para que el usuario pueda continuar con el proceso"
      }
    },
    {
      "name": "3DS Query",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/mpi/query",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "mpi",
            "query"
          ]
        }
      }
    },
    {
      "name": "Servicio de consulta de balance",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/balance",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "balance"
          ]
        },
        "description": "Este servicio permite la consulta de balance, debe consumirse cuando el medio de pago lo requiera ('requireBalance' en true).",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"auth\": {\n    \"login\": \"aabbccdd1234567890aabbccdd123456\",\n    \"tranKey\": \"E0gHh8C6fceHnbsLlgBq2n7nRNjr8MVPcz0um1ZYCfs=\",\n    \"nonce\": \"NjE0YjUwZGNlYjJiNA==\",\n    \"seed\": \"2021-09-22T10:50:52-05:00\"\n  },\n  \"payment\": {\n    \"reference\": \"1234567890\",\n    \"amount\": {\n      \"currency\": \"CRC\",\n      \"total\": \"1000\"\n    }\n  },\n  \"instrument\": {\n    \"card\": {\n      \"number\": \"4111111111111111\",\n      \"expiration\": \"12/30\",\n      \"cvv\": \"123\"\n    }\n  },\n  \"ipAddress\": \"127.0.0.1\",\n  \"userAgent\": \"Testing\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Solicitud de Pinpad",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/security/pinpad/transaction",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "security",
            "pinpad",
            "transaction"
          ]
        },
        "description": "Un PINPAD es un dispositivo electrónico que se utiliza en una transacción de débito, crédito o tarjeta inteligente para aceptar y cifrar el número de identificación personal (PIN) del titular de la tarjeta.\nEsta API proporciona un servicio PinPad con generación de PinBlock cifrada según ISO 9564.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"auth\": {\n    \"login\": \"aabbccdd1234567890aabbccdd123456\",\n    \"tranKey\": \"ABC123example456trankey+789abc012def3456ABC=\",\n    \"nonce\": \"NjE1MWQ4MDE5YWViMw==\",\n    \"seed\": \"2021-09-27T09:41:05-05:00\"\n  },\n  \"instrument\": {\n    \"card\": {\n      \"number\": \"4111111111111111\"\n    }\n  }\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Generación de PinBlock a partir de PinPad",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/security/pinpad/pinblock",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "security",
            "pinpad",
            "pinblock"
          ]
        },
        "description": "Permite generar el pinblock con una transaccion en base a las posiciones entregadas por el usuario que se seleccionaron del PinPad",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"auth\": {\n    \"login\": \"aabbccdd1234567890aabbccdd123456\",\n    \"tranKey\": \"ABC123example456trankey+789abc012def3456ABC=\",\n    \"nonce\": \"NjE1MWQ4MDE5YWViMw==\",\n    \"seed\": \"2021-09-27T09:41:05-05:00\"\n  },\n  \"instrument\": {\n    \"card\": {\n      \"number\": \"0215020177972730\"\n    },\n    \"pinPad\": {\n      \"transactionId\": \"b0c62f97-3b06-4c33-b68f-e281e95eb4bb\",\n      \"positions\": \"0123\"\n    }\n  }\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Consultar orden de pago",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/cash/orders",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "cash",
            "orders"
          ]
        },
        "description": "Este servicio permite consultar ordenes de pago mediante los valores de referencia, total y moneda."
      }
    },
    {
      "name": "Eliminar orden de pago",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/cash/delete",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "cash",
            "delete"
          ]
        },
        "description": "Este servicio permite eliminar una orden de pago en estado pendiente."
      }
    },
    {
      "name": "Consulta de token",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/token",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "token"
          ]
        },
        "description": "Este servicio permite buscar un token mediante el valor del token o subtoken.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"auth\": {\n    \"login\": \"aabbccdd1234567890aabbccdd123456\",\n    \"tranKey\": \"ABC123example456trankey+789abc012def3456ABC=\",\n    \"nonce\": \"NjE1MWQ4MDE5YWViMw==\",\n    \"seed\": \"2021-09-27T09:41:05-05:00\"\n  },\n  \"instrument\": {\n    \"token\": {\n      \"token\": \"faketoken12f233bd8f5d42138d681bf07ea8295429df07a4af287703e30c891\"\n    }\n  }\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Crear Session",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/account-validator/session",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "account-validator",
            "session"
          ]
        },
        "description": "Este endpoint permite crear una sesión de verificación de cuenta"
      }
    },
    {
      "name": "Consultar estado de sesión",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/account-validator/query",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "account-validator",
            "query"
          ]
        },
        "description": "Este endpoint te permitirá consultar el estado de la sesión creada."
      }
    },
    {
      "name": "Validar Cuenta existente",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/gateway/account-validator/validate",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "gateway",
            "account-validator",
            "validate"
          ]
        },
        "description": "Una vez realizada de manera exitosa la creación inicial de la sesión podrá realizar validaciones a la cuenta las veces que considere necesarias, solo debe tener la información de la cuenta y el código de verificación entregado en el proceso anterior."
      }
    }
  ]
}