Realizar um Pix Cash-Out por Agência e Conta

Essa funcionalidade permite que os clientes da Celcoin consigam efetuar pagamentos ou transferências para qualquer instituição financeira utilizando o Pix.


Passos para Integrar

  1. Realizar autenticação na API - [API Reference]
  2. Realizar o PIX Cash Out - [API Reference]
  3. Receber o Webhook com Status do Pix

Caso seja necessário você pode consultar o status do Pix manualmente.


Descrição dos campos

CampoDescriçãoTipo Campo
amount*Valor da transação.
clientCode*Identificador único da transação gerado pelo cliente.
transactionIdentificationIdentificador único retornado durante a leitura do BRCode.Se initiationType igual a MANUAL ou DICT, esse campo não deve ser informado,

Se initiationType igual a STATIC_QRCODE, esse campo se torna obrigatório e com tamanho maximo permitido de 25 caracteres.

Se initiationType igual a DYNAMIC_QRCODE, esse campo se torna obrigatório e com tamanho maximo permitido entre 26 a 35 caracteres.
endToEndIdIdentificador ponta-a-ponta associado ao pagamento.Se initiationType igual a MANUAL, esse campo não deve ser informado pois o mesmo sera gerado pela Celcoin.

Se initiationType diferente de MANUAL, esse campo deve ser recuperado pelo endpoint /pix/dict/{key}.
initiationTypeTipo de iniciação do pagamentoMANUAL: Pagamento via dados transacionais da conta. (creditParty.key, endToEndId, e transactionIdentification, não devem ser informados).

DICT: Pagamento via chave. (Campos obrigatórios : creditParty.key, e endToEndId.transactionIdentification não deve ser informado).

STATIC_QRCODE: Pagamento via BRCode estatico. (Campos obrigatórios : creditParty.key, endToEndId, e transactionIdentification).

DYNAMIC_QRCODE: Pagamento via BRCode dinamico. (Campos obrigatórios : creditParty.key, endToEndId, e transactionIdentification).
paymentTypeTipo de pagamentoIMMEDIATE: Usado para pagamentos imediatos.
FRAUD: Usado para pagamento por suspeita de fraude.
SCHEDULED: Usado apenas para pagamentos agendados.
urgencyDetermina a urgência do pagamentoHIGH - usado para pagamentos imediatos.
NORMAL - usado para pagamentos agendados.
transactionTypeTipo da transação PixTRANSFER: Usado para pagamentos imediatos.
debitParty {Objeto
account*Número da conta de origem (Quem irá pagar).
}
creditParty {Objeto
bank*Identificador do Banco de destino (ISPB - Identificador de Sistema de Pagamentos Brasileiro).
key*Chave Pix.
account*Número da Conta de destino (Quem irá receber).
branch*Número da agência de destino.
taxId*Número do documento (CPF ou CNPJ) da conta de destino.
name*Nome da conta de destino
accountType*Tipo de Conta Pix.CACC - Normal ou contas digitais
TRAN - Conta de pagamentos
SLRY - Conta salario
SVGS - Conta poupança
}
remittanceInformationDetermina um texto a ser apresentado ao pagador para que ele possa inserir uma informação correlacionada, em formato livre, para ser enviada ao destinatário. Se presente durante a leitura do Dynamic BRCode deve ser preservado e informado aqui.

Campo com * são obrigatórios na chamada


Transferência Pix a partir de dados bancários

Essa funcionalidade deve ser utilizada sempre que sua aplicação possuir os dados bancários de um cliente (instituição financeira, tipo da conta, agência, conta e a titularidade), ou quando o usuário informar que deseja efetuar uma transferência com Pix informando os dados bancários em seu aplicativo, ou sistema, desta forma o caso de uso poderia ser:

Com os dados bancários do usuário e o valor que ele deseja realizar a transferência, deve ser realizada uma chamada na API Iniciar pagamento Pix.

JSON de exemplo

{
  "amount": 25.55,
  "clientCode": "1458854",
  "initiationType": "MANUAL",
  "paymentType": "IMMEDIATE",
  "urgency": "HIGH",
  "transactionType": "TRANSFER",
  "debitParty": {
    "account": "444444"
  },
  "creditParty": {
    "bank": "30306294",
    "account": "10545584",
    "branch": "10545584",
    "taxId": "11122233344",
    "name": "Celcoin",
    "accountType": "CACC"
  },
  "remittanceInformation": "Texto de mensagem"
}

cURL da chamada

curl --location --request POST 'https://sandbox.openfinance.celcoin.dev/baas-wallet-transactions-webservice/v1/pix/payment' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "amount": 25.55,
  "clientCode": "1458854",
  "initiationType": "MANUAL",
  "paymentType": "IMMEDIATE",
  "urgency": "HIGH",
  "transactionType": "TRANSFER",
  "debitParty": {
    "account": "444444"
  },
  "creditParty": {
    "bank": "30306294",
    "account": "10545584",
    "branch": "10545584",
    "taxId": "11122233344",
    "name": "Celcoin",
    "accountType": "CACC"
  },
  "remittanceInformation": "Texto de mensagem"
}'

Exemplo de retorno

🚧

Atenção!!

Caso ocorra algum erro da familia 5xx ao tentar realizar um pagamento, ou transfêrencia Pix e, ao consultar nossa api o status da transação esteja PROCESSING, recomendamos que aguarde até receber o disparo do gatilho com o novo status da transação. Sendo assim, não recomendamos o cancelamento da transação, pois o mesmo pode acarretar problemas em sua integração.

👍

Sucesso 200

{
    "status": "PROCESSING",
    "version": "1.0.0",
    "body": {
        "id": "60ec4471-71dd-43a3-a848-efe7a314d76f",
        "amount": 50,
        "clientCode": "1458856889",
        "transactionIdentification": null,
        "endToEndId": "E1393589320221110144001306556986",
        "initiationType": "MANUAL",
        "paymentType": "IMMEDIATE",
        "urgency": "HIGH",
        "transactionType": "TRANSFER",
        "debitParty": {
            "account": "30053913714179",
            "branch": "0001",
            "taxId": "77859635097",
            "name": "Hernani  Conrado",
            "accountType": "TRAN"
        },
        "creditParty": {
            "bank": "30306294",
            "key": null,
            "account": "42161",
            "branch": "20",
            "taxId": "12312312300",
            "name": "Fulano de Tal",
            "accountType": "CACC"
        },
        "remittanceInformation": "Texto de mensagem"
    }
}

Error 400

{
  "version": "1.0.0",
  "status": "ERROR",
  "error": {
    "errorCode": "CBE039",
    "message": "Account invalido.."
  }
}

Tabela de errorCode

CodeMessage
CBE001ClientCode é obrigatório.
CBE093ClientCode possui tamanho maximo de 200 caracteres.
CBE094amount é obrigatório.
CBE095amount invalido.Favor verificar a formatação do campo e deve ser maior que 0.
CBE100Existe um lançamento idêntico pendente.Favor aguarde para realizar esta operação para evitar duplicidade.
CBE101Já existe um lançamento com o mesmo clientCode. Favor realizar uma nova operação.
CBE102Lançamento de debito não permitido.Valor ultrapassa o limite maximo permitido por operação.
CBE107debitParty é obrigatório.
CBE108debitparty.account é obrigatório.
CBE109debitparty.account invalido.
CBE110debitparty.account possui tamanho maximo de 20 caracteres.
CBE115creditParty é obrigatório.
CBE116creditparty.account é obrigatório.
CBE117creditparty.account invalido.
CBE118creditparty.account possui tamanho maximo de 20 caracteres.
CBE119creditParty.branch é obrigatório.
CBE120creditParty.branch invalido.
CBE121creditParty.taxId é obrigatório.
CBE122creditParty.taxId invalido.
CBE123Transação não permitida.Conta com saldo insuficiente.
CBE124Lançamento não permitido.debit.account esta encerrada.
CBE126creditParty.bank é obrigatório e deve existir na lista de participantes Pix.
CBE127creditParty.name é obrigatório e possui tamanho maximo de 120 caracteres.
CBE128creditParty.accountType não foi informado ou é invalido.
CBE129remittanceInformation possui tamanho máximo de 140 caracteres.
CBE130initiationType invalido.
CBE131paymentType invalido.
CBE132urgency invalido.
CBE133transactionType invalido.
CBE134Campo transactionIdentification é de uso exclusivo para pagamentos de QRCodes. InitiationType STATIC_QRCODE ou DYNAMIC_QRCODE.
CBE135Campo transactionIdentification é de preenchimento obrigatório para pagamentos de QRCodes. InitiationType DYNAMIC_QRCODE.
CBE136Quando initiationType igual a STATIC_QRCODE o campo transactionIdentification não pode ultrapassar 25 caracteres.
CBE137Quando initiationType igual a DYNAMIC_QRCODE o campo transactionIdentification não pode ultrapassar 35 caracteres.
CBE138Já existe uma transação com o mesmo endToEndId. Favor realizar uma nova operação.
CBE139Quando initiationType igual a DICT os campos endToEndId e credityParty.key se tornam obrigatórios.
CBE140Quando initiationType igual a STATIC_QRCODE o campo credityParty.key se torna obrigatório.
CBE141Quando initiationType igual a DYNAMIC_QRCODE o campo credityParty.key se torna obrigatório.
CBE142Quando initiationType igual a MANUAL o campo credityParty.key não deve ser informado.
CBE143Quando paymentType está preenchido com Valor SCHEDULED, o campo urgency deve ser preenchido com valor NORMAL.
CBE144Quando paymentType está preenchido com Valor IMMEDIATE ou FRAUD, o campo urgency deve ser preenchido com valor HIGH.
CBE145Tipo de iniciação de pagamento não permitido.Para mais informações, entre em contato com o nosso suporte.
CBE146endToEndId invalido.
CBE159Lançamento não permitido.Sua conta esta bloqueada.
PBE7055Instituição recebedora não está respondendo

Recebendo notificações automáticas (Webhook)

Oferecemos a opção de configurar webhooks para receber notificações automáticas sempre que um pagamento via Pix Cash-out for realizado. Esses webhooks são um meio eficiente de receber atualizações em tempo real sobre as transações realizadas.

Para mais informações sobre a configuração e utilização dos webhooks, consulte a documentação específica disponível.

Evento: pix-payment-out

Link Documentação: Modelos de Webhooks do BaaS


Em caso de dúvidas adicionais, nossa equipe de suporte estará disponível para ajudar.