A ZoryCash oferece infraestrutura financeira robusta para empresas e operadores de alto volume no Brasil. Com processamento instantâneo via PIX em menos de 2 segundos, liquidação automática em USDT (BEP-20 / TRC-20), checkout de alta conversão e divisão de comissões (split) em tempo real.
Integre via API REST moderna ou servidor MCP (Model Context Protocol). Acesso direto a endpoints de cobrança, saques em massa, consulta de saldos e webhooks resilientes. Suporta negociação de conteúdo em Markdown (Accept: text/markdown).
================================================================================ZORYCASH API - GUIA DE INTEGRACAO PARA LLMs (v1)================================================================================ Produto: ZoryCashSite base: https://zorycash.com.brAPI base URL: https://api.zorycash.com.br/api/v1Formato: REST sobre HTTPS, request e response em JSONMercado principal: BrasilMoeda: BRLUnidade monetaria: centavos inteiros. Exemplo: 5000 = R$ 50,00 OBJETIVO DESTE ARQUIVOUse este arquivo para gerar codigo de integracao confiavel para a API ZoryCash.Nao invente endpoints, parametros ou status fora desta especificacao. Quando ousuario pedir exemplos, prefira codigo simples, com tratamento de erro, timeout,idempotencia via external_ref e logs sem expor x-api-key. ================================================================================1. AUTENTICACAO================================================================================ Todas as chamadas em /api/v1 exigem uma chave privada de API. Header recomendado:x-api-key: <SUA_CHAVE_PRIVADA> Tambem aceito:Authorization: Bearer <SUA_CHAVE_PRIVADA> Padrao das chaves:ak_live_... para producaoak_test_... para teste, quando habilitado na conta Nunca coloque a chave na URL, em query string, em frontend publico, em logs,em analytics ou em mensagens de erro exibidas para clientes finais. ================================================================================2. CORS, RATE LIMIT E RESPOSTAS================================================================================ CORS:Access-Control-Allow-Origin: *Access-Control-Allow-Methods: GET, POST, OPTIONSAccess-Control-Allow-Headers: Content-Type, Authorization, x-api-key Rate limit atual:Operacoes financeiras usam limites adaptativos por conta, canal e nivel operacional.Contas novas comecam com menor cadencia e evoluem somente com pagamentos liquidados.Ao receber 429, respeite o cabecalho Retry-After antes de tentar novamente.Rota Black: PIX entrada/saida R$ 2 a R$ 1.000; cripto saida R$ 10 a R$ 1.000; cripto entrada R$ 10 a R$ 3.000.O nivel da conta pode reduzir o teto, nunca ampliar o teto da rota. Content-Type:Enviar Content-Type: application/json em chamadas POST. Codigos comuns:200 OK - leitura ou operacao aceita201 Created - recurso criado202 Accepted - operacao enviada, mas atualizacao local ainda pendente400 Bad Request - validacao ou payload invalido401 Unauthorized - chave ausente, invalida ou revogada402 Payment Required - saldo insuficiente404 Not Found - recurso nao pertence a chave ou nao existe429 Too Many Requests - limite excedido500 Internal Error - falha interna502 Bad Gateway - processamento externo recusado/indisponivel503 Service Unavailable - autenticacao temporariamente indisponivel Formato de erro:{ "error": "codigo_ou_mensagem", "details": []} ================================================================================3. IDEMPOTENCIA================================================================================ Use external_ref em operacoes financeiras sempre que possivel. Para POST /pix/charge:Se a mesma chave criar uma cobranca com o mesmo external_ref, a API retorna acobranca existente com "idempotent": true. Para POST /pix/withdraw:Se a mesma chave solicitar um saque com o mesmo external_ref, a API retorna osaque existente com "idempotent": true. Recomendacao:external_ref deve ser o ID unico do pedido/saque no sistema do integrador.Nao reutilize external_ref para operacoes diferentes. ================================================================================4. ENDPOINT: CRIAR COBRANCA PIX================================================================================ POST /pix/charge Cria uma cobranca PIX e retorna QR Code e copia e cola. Body:{ "amount_cents": 5000, "external_ref": "pedido_123", "description": "Pagamento de Fatura", "payer_name": "Joao Silva", "payer_doc": "12345678909", "payer_email": "joao@exemplo.com", "splits": [ { "recipient_pix_key": "49000000000", "percentage": 10 }, { "recipient_pix_key": "financeiro@exemplo.com", "fixed_cents": 500 } ]} Campos:amount_cents: inteiro obrigatorio, minimo 500, maximo 10000000.external_ref: string opcional, maximo 120 caracteres, usada para idempotencia.description: string opcional, maximo 200 caracteres.payer_name: string opcional, maximo 120 caracteres.payer_doc: string opcional, maximo 20 caracteres.payer_email: e-mail opcional, maximo 255 caracteres.splits: array opcional com ate 10 recebedores.splits[].recipient_pix_key: chave PIX do recebedor do split.splits[].percentage: percentual de 0 a 100.splits[].fixed_cents: valor fixo em centavos. Response 200:{ "id": "uuid-da-transacao", "status": "pending", "amount_cents": 5000, "pix": { "qr_code_image": "data:image/png;base64,...", "copy_paste": "000201...", "expires_at": "2026-08-30T12:00:00.000Z" }, "external_ref": "pedido_123", "splits": [ { "id": "uuid-do-split-aplicado", "recipient_pix_key": "49000000000", "amount_cents": 500, "status": "pending" } ], "created_at": "2026-08-30T12:00:00.000Z"} Status de transacao mais comuns:pending, paid, expired, failed, canceled, refunded. ================================================================================5. ENDPOINT: REALIZAR SAQUE PIX================================================================================ POST /pix/withdraw Solicita um saque PIX debitando o saldo disponivel da conta autenticada.Esta operacao pode movimentar dinheiro real em producao. Body:{ "amount_cents": 2000, "pix_key": "12345678909", "pix_key_type": "cpf", "external_ref": "saque_123"} Campos:amount_cents: inteiro obrigatorio, minimo 500, maximo 10000000.pix_key: string obrigatoria, minimo 3 e maximo 200 caracteres.pix_key_type: cpf, cnpj, email, phone ou random.external_ref: string opcional, maximo 120 caracteres, usada para idempotencia. Response 200:{ "id": "uuid-do-saque", "status": "processing", "amount_cents": 2000, "fee_cents": 200, "created_at": "2026-08-30T12:00:00.000Z"} Response 402:{ "error": "insufficient_balance"} Status de saque mais comuns:pending, processing, completed, rejected, failed. ================================================================================6. ENDPOINT: CONSULTAR SALDO================================================================================ GET /balance Consulta o saldo da conta autenticada. Antes de responder, a API tenta sincronizartransacoes pendentes recentes. Response 200:{ "available_cents": 154000, "total_received_cents": 500000, "total_withdrawn_cents": 346000} Campos:available_cents: saldo disponivel para saque.total_received_cents: total recebido historico.total_withdrawn_cents: total sacado historico. ================================================================================7. ENDPOINT: CONSULTAR TRANSACAO================================================================================ GET /transactions/:id Consulta uma transacao especifica pertencente a chave autenticada.Se a transacao estiver pending e tiver external_id, a API tenta sincronizar ostatus antes de retornar. Response 200:{ "id": "uuid-da-transacao", "status": "paid", "amount_cents": 5000, "net_cents": 4800, "atlas_fee_cents": 100, "acquirer_fee_cents": 100, "description": "Pagamento de Fatura", "external_id": "id-no-provedor", "pix_copy_paste": "000201...", "pix_qr": "data:image/png;base64,...", "expires_at": "2026-08-30T12:30:00.000Z", "paid_at": "2026-08-30T12:05:00.000Z", "created_at": "2026-08-30T12:00:00.000Z"} Response 404:{ "error": "not_found"} ================================================================================8. ENDPOINTS: SPLITS DE PAGAMENTO================================================================================ GET /splits Lista splits cadastrados na conta autenticada. Response 200:{ "data": [ { "id": "uuid-do-split", "name": "Socio", "recipient_pix_key": "49000000000", "recipient_pix_key_type": "cpf", "percentage": 10, "fixed_cents": 0, "active": true, "created_at": "2026-08-30T12:00:00.000Z" } ]} POST /splits Cria uma regra de split. Body:{ "name": "Socio", "recipient_pix_key": "49000000000", "recipient_pix_key_type": "cpf", "recipient_doc": "49000000000", "percentage": 10, "fixed_cents": 0} Regras:percentage ou fixed_cents deve ser maior que zero.percentage deve ficar entre 0 e 100.fixed_cents deve ser inteiro em centavos. GET /splits/:id Consulta uma regra de split e as ultimas 50 aplicacoes em transacoes. POST /splits/:id Atualiza ou remove uma regra de split. Body para atualizar:{ "active": false, "percentage": 5, "fixed_cents": 100} Body para remover:{ "deleted": true} ================================================================================9. WEBHOOKS ENVIADOS PELA ZORYCASH================================================================================ A ZoryCash envia eventos para as URLs cadastradas no painel do usuario.O backend do integrador deve responder 2xx rapidamente. Headers enviados:Content-Type: application/jsonX-ZoryCash-Event: <nome_do_evento>X-ZoryCash-Delivery: <id_unico_da_entrega>X-ZoryCash-Signature: sha256=<hmac_sha256_hex> Assinatura:Calcule HMAC-SHA256 sobre o corpo JSON bruto usando o segredo do endpoint.Compare em tempo constante com o valor depois de "sha256=". Nunca registre osegredo em logs. Payload:{ "id": "uuid-da-entrega", "event": "payment.confirmed", "created_at": "2026-08-30T12:05:00.000Z", "data": { "id": "uuid-da-transacao", "status": "paid", "amount_cents": 5000, "net_cents": 4800, "external_ref": "pedido_123" }} Eventos de pagamento:payment.createdpayment.confirmedpayment.partialpayment.failedpayment.refundedpayment.chargeback Eventos de saque:withdrawal.completedwithdrawal.failedwithdrawal.refunded Eventos MED:med.openedmed.updatedmed.acceptedmed.rejectedmed.cancelledmed.closed Boas praticas:Responda 200 OK antes de tarefas demoradas.Use X-ZoryCash-Delivery como chave de idempotencia no seu sistema.A ZoryCash faz ate 6 tentativas com intervalos progressivos.Nao confie apenas no webhook para liberar produto se precisar de confirmacaoforte: consulte GET /transactions/:id quando necessario. ================================================================================10. EXEMPLOS DE CODIGO================================================================================ cURL - criar cobranca PIX:curl -X POST https://api.zorycash.com.br/api/v1/pix/charge \ -H "x-api-key: SUA_CHAVE" \ -H "Content-Type: application/json" \ -d '{"amount_cents":5000,"external_ref":"pedido_123","description":"Pedido 123"}' cURL - consultar saldo:curl -X GET https://api.zorycash.com.br/api/v1/balance \ -H "x-api-key: SUA_CHAVE" Node.js - criar cobranca PIX:const res = await fetch("https://api.zorycash.com.br/api/v1/pix/charge", { method: "POST", headers: { "Content-Type": "application/json", "x-api-key": process.env.ZORYCASH_API_KEY }, body: JSON.stringify({ amount_cents: 5000, external_ref: "pedido_123", description: "Pedido 123" })});const data = await res.json();if (!res.ok) throw new Error(data.error || "Falha ao criar cobranca"); Python - criar cobranca PIX:import osimport requests res = requests.post( "https://api.zorycash.com.br/api/v1/pix/charge", headers={ "Content-Type": "application/json", "x-api-key": os.environ["ZORYCASH_API_KEY"], }, json={ "amount_cents": 5000, "external_ref": "pedido_123", "description": "Pedido 123", }, timeout=15,)data = res.json()res.raise_for_status() PHP - criar cobranca PIX com Guzzle:$client = new \GuzzleHttp\Client(["timeout" => 15]);$response = $client->post("https://api.zorycash.com.br/api/v1/pix/charge", [ "headers" => [ "Content-Type" => "application/json", "x-api-key" => getenv("ZORYCASH_API_KEY"), ], "json" => [ "amount_cents" => 5000, "external_ref" => "pedido_123", "description" => "Pedido 123", ],]);$data = json_decode((string) $response->getBody(), true); ================================================================================11. PROMPT RECOMENDADO PARA OUTRAS IAs================================================================================ Use a documentacao da ZoryCash acima. Gere uma integracao usando a linguagemsolicitada pelo usuario. Inclua:1. variavel de ambiente ZORYCASH_API_KEY;2. funcao para criar cobranca PIX com external_ref;3. funcao para consultar saldo;4. handler de webhook idempotente para payment.confirmed com validacao HMAC;5. tratamento de erro para 400, 401, 402, 429 e 5xx;6. cuidado para nunca logar a x-api-key. ================================================================================FIM================================================================================