Como usar a API para criar uma cobrança com OpenPix Parcelado?
Para a utilização dessa funcionalidade é necessário possuir a funcionalidade OpenPix Parcelado. Solicite o acesso via chat pela plataforma pelo link
Para criar uma cobrança Pix com OpenPix Parcelado, você utiliza o endpoint /api/v1/charge da API.
Você pode acessar aqui a documentação referente a esse endpoint.
Os campos obrigatórios para criar uma cobrança Pix com OpenPix Parcelado são os seguintes:
value: O valor em centavos da cobrança Pix a ser criado.correlationID: Um identificador único para a cobrança Pix. CorrelationIDtype: O type da cobrança ser PIX_CREDITcustomer: É obrigatório que seja passado um cliente com: nome, cpf/cnpj, email, telefone e endereço completo
Exemplo
O body da sua requisição será semelhante a este exemplo:
{
  "correlationID": "63c533c0-3bb2-4847-a568-e2270e99aad8",
  "value": 1500,
  "comment": "OpenPix Parcelado",
  "type": "PIX_CREDIT",
  "customer": {
    "name": "Dan ",
    "taxID": "12345678900",
    "phone": "+5519912345678",
    "email": "test@openpix.com",
    "address": {
      "zipcode": "13142514",
      "street": "Rua OpenPix",
      "number": "2019",
      "neighborhood": "Casa",
      "city": "Sao Paulo",
      "state": "SP",
      "complement": "Brooklin"
    }
  }
}
Após efetuar a requisição, se tudo ocorreu bem, o status code da requisição será 2xx e no body da resposta, além dos campos normais de cobrança criada, com status ACTIVE_WAITING_PAYMENT_METHOD.
Renderizando a cobrança
Para que o fluxo funcione por completo após a crição da cobrança com OpenPix Parcelado é necessário que a mesma seja renderizada utilizando o link de pagamento da mesma ou o nosso Plugin Js.
Renderizando a cobrança - Link de Pagamento
Renderizar sua cobrança OpenPix Parcelado com o link de pagamento é a forma mais simples de executar o fluxo por completo. Basta pegar o campo paymentLinkUrl e abrir em uma nova aba no navegador.
Renderizando a cobrança - Plugin Js
Você encontra as docs sobre como renderiza-la clicando aqui.
Siga os steps abaixo:
- Copie o seu correlationID
 - Injete o plugin js conforme o exemplo abaixo passando três campos:
 
- appID: appID da sua loja, importante que o mesmo seja do tipo PLUGIN. Veja como criar um appID do tipo Plugin aqui
 - correlationID: correlationID da cobrança
 - node: o node representa o nó em seu HTML que ira receber nosso plugin injetado. 
<div id="openpix-order"></div> <!-- o node nesse caso é "openpix-order" --> 
<html lang="pt-BR">
<head>
  <meta charset="UTF-8" />
  <title>Demo OpenPix Plugin</title>
</head>
<body>
  <div id="openpix-order"></div> <!-- o node nesse caso é "openpix-order" -->
  <script src="https://plugin.openpix.com.br/v1/openpix.js?appID=appID&correlationID=123&node=openpix-order"></script>
</body>
</html>
Exemplos em código
- Shell + cURL
 - JavaScript + Fetch
 
  curl 'https://api.openpix.com.br/api/v1/charge' -X POST \
      -H "Accept: application/json" \
      -H "Content-Type: application/json" \
      -H "user-agent: node-fetch" \
      --data-binary '{"correlationID":"63c533c0-3bb2-4847-a568-e2270e99aad8","value":1500,"comment":"OpenPix Parcelado","type":"PIX_CREDIT","customer":{"name":"Dan ","taxID":"12345678900","phone":"+5519912345678","email":"test@openpix.com","address":{"zipcode":"13142514","street":"Rua OpenPix","number":"2019","neighborhood":"Casa","city":"Sao Paulo","state":"SP","complement":"Brooklin"}}}'
fetch('https://api.openpix.com.br/api/v1/charge', {
  method: 'POST',
  body: JSON.stringify({
    value: 100,
    correlationID: 'c782e0ac-833d-4a89-9e73-9b60b2b41d3a',
    type: 'PIX_CREDIT',
    customer: {
      name: 'Dan ',
      taxID: '12345678900',
      phone: '+5519912345678',
      email: 'test@openpix.com',
      address: {
        zipcode: '13142514',
        street: 'Rua OpenPix',
        number: '2019',
        neighborhood: 'Casa',
        city: 'Sao Paulo',
        state: 'SP',
        complement: 'Brooklin',
      },
    },
  }),
  headers: {
    Authorization: 'appID',
    'Content-Type': 'application/json',
  },
}).then((res) => res.json());