curl --request POST \
--url https://api-payment.safefypay.com.br/v1/transactions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"method": "Pix",
"amount": 10000,
"currency": "BRL"
}
'{
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"externalId": "pedido_12345",
"method": "Pix",
"amount": 10000,
"fee": 150,
"netAmount": 9850,
"currency": "BRL",
"status": "Pending",
"description": "Pagamento do pedido #12345",
"environment": "Sandbox",
"expiresAt": "2025-01-15T15:30:00Z",
"createdAt": "2025-01-15T15:00:00Z",
"completedAt": null,
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"splits": [
{
"splitCode": "550e8400-e29b-41d4-a716-446655440001",
"type": "PERCENTAGE",
"value": 20,
"shareAmount": 1970
}
],
"pix": {
"txId": "SAFEFY2025011512345678901234",
"copyAndPaste": "00020126580014br.gov.bcb.pix0136a1b2c3d4-e5f6-7890-abcd-ef1234567890...",
"expiresAt": "2025-01-15T15:30:00Z"
},
"card": null,
"boleto": null
},
"message": "Transacao criada com sucesso.",
"error": null
}{
"data": null,
"message": null,
"error": {
"message": "O Valor Mínimo da transacao e R$ 1,00 (100 centavos).",
"code": "invalid_amount"
}
}{
"data": null,
"message": null,
"error": {
"message": "Token invalido ou expirado.",
"code": "unauthorized"
}
}{
"data": null,
"message": null,
"error": {
"message": "Erro ao processar a transacao. Tente novamente.",
"code": "internal_error"
}
}Create transaction
Create a new PIX, Boleto, or Credit Card charge
curl --request POST \
--url https://api-payment.safefypay.com.br/v1/transactions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"method": "Pix",
"amount": 10000,
"currency": "BRL"
}
'{
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"externalId": "pedido_12345",
"method": "Pix",
"amount": 10000,
"fee": 150,
"netAmount": 9850,
"currency": "BRL",
"status": "Pending",
"description": "Pagamento do pedido #12345",
"environment": "Sandbox",
"expiresAt": "2025-01-15T15:30:00Z",
"createdAt": "2025-01-15T15:00:00Z",
"completedAt": null,
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"splits": [
{
"splitCode": "550e8400-e29b-41d4-a716-446655440001",
"type": "PERCENTAGE",
"value": 20,
"shareAmount": 1970
}
],
"pix": {
"txId": "SAFEFY2025011512345678901234",
"copyAndPaste": "00020126580014br.gov.bcb.pix0136a1b2c3d4-e5f6-7890-abcd-ef1234567890...",
"expiresAt": "2025-01-15T15:30:00Z"
},
"card": null,
"boleto": null
},
"message": "Transacao criada com sucesso.",
"error": null
}{
"data": null,
"message": null,
"error": {
"message": "O Valor Mínimo da transacao e R$ 1,00 (100 centavos).",
"code": "invalid_amount"
}
}{
"data": null,
"message": null,
"error": {
"message": "Token invalido ou expirado.",
"code": "unauthorized"
}
}{
"data": null,
"message": null,
"error": {
"message": "Erro ao processar a transacao. Tente novamente.",
"code": "internal_error"
}
}- PIX: Only
methodandamountare required. Returns the Copy and Paste code for payment. - Boleto: Requires
method,amount, and a linked customer (customerIdorcustomerName). Returns barcode, digitable line, and PDF URL. - Credit Card: Requires
method=CreditCard,amount, and card data (cardNumber,cardHolderName,cardExpirationMonth,cardExpirationYear,cardCvv) or acardTokenobtained viaPOST /v1/card-tokenize.
pix.copyAndPaste value.See the dedicated guide: Generating PIX QR Code.Payment splitting through the API
For a PIX transaction, sendsplits to direct portions of the net amount to other organizations. Each recipient is identified by its splitCode.
{
"method": "Pix",
"amount": 10000,
"currency": "BRL",
"splits": [
{
"splitCode": "550e8400-e29b-41d4-a716-446655440001",
"type": "PERCENTAGE",
"value": 20
},
{
"splitCode": "550e8400-e29b-41d4-a716-446655440002",
"type": "FIXED",
"value": 1000
}
]
}
type: usePERCENTAGEorFIXED.valueforPERCENTAGE: from 1 to 100, with up to two decimal places.valueforFIXED: a positive whole number in cents.- The same
splitCodecannot be included twice, and all shares must fit within the payment’s projected available settlement. - Splitting is PIX-only and must be enabled for the organization creating the charge.
shareAmount in cents. The create response and transaction retrieval include the applied splits for reconciliation.Authorizations
Token JWT obtido via /v1/auth/token
Body
Metodo de pagamento
Pix, CreditCard, Boleto "Pix"
Valor em centavos (min: 100)
10000
Moeda
BRL "BRL"
Descricao da transacao (max: 500)
"Pagamento do pedido #12345"
ID externo para referencia (max: 100)
"pedido_12345"
ID do cliente cadastrado. Para boleto, informe customerId ou customerName.
"550e8400-e29b-41d4-a716-446655440000"
URL para receber webhooks
"https://seusite.com.br/webhook"
Metadados em JSON
"{\"orderId\": 12345}"
Regras de split para PIX. Cada split direciona parte do valor liquido a outra organizacao. Disponivel apenas quando o split estiver habilitado para a organizacao principal.
Show child attributes
Show child attributes
Tempo de expiracao do PIX (5-1440 min)
30
Nome do cliente/pagador. Se customerId nao for enviado e customerName for informado, a Safefy cria (ou reutiliza) um cliente e vincula a transacao.
"Joao Silva"
CPF/CNPJ do cliente/pagador
"12345678900"
Email do cliente/pagador (opcional). Se nao for enviado, a Safefy gera um email tecnico apenas para viabilizar o processamento.
"joao@exemplo.com"
Telefone do cliente/pagador com codigo do pais. Aceita com ou sem '+' no envio e e normalizado para apenas digitos no processamento.
"5511999998888"
Data de vencimento do boleto (YYYY-MM-DD). Obrigatorio para boleto. Minimo: D+2.
"2025-02-15"
Instrucoes do boleto. Opcional.
"Nao receber apos o vencimento"
Numero do cartao de credito (obrigatorio para method=CreditCard)
"4111111111111111"
Nome do titular do cartao (obrigatorio para method=CreditCard)
"JOAO SILVA"
Mes de expiracao do cartao, dois digitos (obrigatorio para method=CreditCard)
"12"
Ano de expiracao do cartao, quatro digitos (obrigatorio para method=CreditCard)
"2028"
Codigo de seguranca do cartao CVV (obrigatorio para method=CreditCard)
"123"
Numero de parcelas, de 1 a 12 (obrigatorio para method=CreditCard)
1
Token de cartao obtido via /v1/card-tokenize (alternativa ao envio de dados brutos do cartao)
"ct_abc123def456"