{"id":21832167,"url":"https://github.com/pagarme/pagarme-php","last_synced_at":"2025-04-14T07:20:59.303Z","repository":{"id":7405241,"uuid":"8735887","full_name":"pagarme/pagarme-php","owner":"pagarme","description":":blue_heart: Pagar.me's PHP API","archived":false,"fork":false,"pushed_at":"2024-09-27T17:38:52.000Z","size":2226,"stargazers_count":4,"open_issues_count":53,"forks_count":5,"subscribers_count":10,"default_branch":"V4","last_synced_at":"2025-03-27T21:01:41.450Z","etag":null,"topics":["depreciado","fp-undefined-owner","pagar","pagarme","payments","php","sec-context-","sec-squad-processing","sec-tribo-gateways"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pagarme.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-03-12T19:01:34.000Z","updated_at":"2025-02-28T16:48:36.000Z","dependencies_parsed_at":"2024-05-02T19:46:31.038Z","dependency_job_id":"1b09b795-cffa-48e6-aeb0-60c7a01ac6c0","html_url":"https://github.com/pagarme/pagarme-php","commit_stats":{"total_commits":319,"total_committers":25,"mean_commits":12.76,"dds":0.6896551724137931,"last_synced_commit":"a70d32904369d9fad1afc9c8ef998d4c785c2947"},"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pagarme%2Fpagarme-php","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pagarme%2Fpagarme-php/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pagarme%2Fpagarme-php/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pagarme%2Fpagarme-php/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pagarme","download_url":"https://codeload.github.com/pagarme/pagarme-php/tar.gz/refs/heads/V4","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248837170,"owners_count":21169377,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["depreciado","fp-undefined-owner","pagar","pagarme","payments","php","sec-context-","sec-squad-processing","sec-tribo-gateways"],"created_at":"2024-11-27T19:18:18.719Z","updated_at":"2025-04-14T07:20:59.268Z","avatar_url":"https://github.com/pagarme.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Introdução\n\nEssa SDK foi construída com o intuito de torná-la flexível, de forma que todos possam utilizar todas as features, de todas as versões de API.\n\nVocê pode acessar a documentação oficial do Pagar.me acessando esse [link](https://docs.pagar.me).\n\n## Índice\n\n- [Instalação](#instalação)\n- [Configuração](#configuração)\n- [Transações](#transações)\n  - [Criando uma transação](#criando-uma-transação)\n  - [Capturando uma transação](#capturando-uma-transação)\n  - [Estornando uma transação](#estornando-uma-transação)\n    - [Estornando uma transação parcialmente](#estornando-uma-transação-parcialmente)\n    - [Estornando uma transação com split](#estornando-uma-transação-com-split)\n  - [Retornando transações](#retornando-transações)\n  - [Retornando uma transação](#retornando-uma-transação)\n  - [Retornando recebíveis de uma transação](#retornando-recebíveis-de-uma-transação)\n  - [Retornando um recebível de uma transação](#retornando-um-recebível-de-uma-transação)\n  - [Retornando o histórico de operações de uma transação](#retornando-o-histórico-de-operações-de-uma-transação)\n  - [Notificando cliente sobre boleto a ser pago](#notificando-cliente-sobre-boleto-a-ser-pago)\n  - [Retornando eventos de uma transação](#retornando-eventos-de-uma-transação)\n  - [Calculando Pagamentos Parcelados](#calculando-pagamentos-parcelados)\n  - [Testando pagamento de boletos](#testando-pagamento-de-boletos)\n- [Estornos](#estornos)\n- [Chargebacks](#chargebacks)\n- [Cartões](#cartões)\n  - [Criando cartões](#criando-cartões)\n  - [Retornando cartões](#retornando-cartões)\n  - [Retornando um cartão](#retornando-um-cartão)\n- [Planos](#planos)\n  - [Criando planos](#criando-planos)\n  - [Retornando planos](#retornando-planos)\n  - [Retornando um plano](#retornando-um-plano)\n  - [Atualizando um plano](#atualizando-um-plano)\n- [Assinaturas](#assinaturas)\n  - [Criando assinaturas](#criando-assinaturas)\n  - [Split com assinatura](#split-com-assinatura)\n  - [Retornando uma assinatura](#retornando-uma-assinatura)\n  - [Retornando assinaturas](#retornando-assinaturas)\n  - [Atualizando uma assinatura](#atualizando-uma-assinatura)\n  - [Cancelando uma assinatura](#cancelando-uma-assinatura)\n  - [Transações de assinatura](#transações-de-assinatura)\n  - [Pulando cobranças](#pulando-cobranças)\n- [Postbacks](#postbacks)\n  - [Retornando postbacks](#retornando-postbacks)\n  - [Retornando um postback](#retornando-um-postback)\n  - [Reenviando um Postback](#reenviando-um-postback)\n- [Saldo do recebedor principal](#saldo-do-recebedor-principal)\n- [Operações de saldo](#operações-de-saldo)\n  - [Histórico das operações](#histórico-das-operações)\n  - [Histórico de uma operação específica](#histórico-de-uma-operação-específica)\n- [Recebível](#recebível)\n  - [Retornando recebíveis](#retornando-recebíveis)\n  - [Retornando um recebível](#retornando-um-recebível)\n- [Transferências](#transferências)\n  - [Criando uma transferência](#criando-uma-transferência)\n  - [Retornando transferências](#retornando-transferências)\n  - [Retornando uma transferência](#retornando-uma-transferência)\n  - [Cancelando uma transferência](#cancelando-uma-transferência)\n- [Antecipações](#antecipações)\n  - [Criando uma antecipação](#criando-uma-antecipação)\n  - [Obtendo os limites de antecipação](#obtendo-os-limites-de-antecipação)\n  - [Cancelando uma antecipação pending](#cancelando-uma-antecipação-pending)\n  - [Retornando antecipações](#retornando-antecipações)\n- [Contas bancárias](#contas-bancárias)\n  - [Criando uma conta bancária](#criando-uma-conta-bancária)\n  - [Retornando uma conta bancária](#retornando-uma-conta-bancária)\n  - [Retornando contas bancárias](#retornando-contas-bancárias)\n- [Recebedores](#recebedores)\n  - [Criando um recebedor](#criando-um-recebedor)\n  - [Retornando recebedores](#retornando-recebedores)\n  - [Retornando um recebedor](#retornando-um-recebedor)\n  - [Atualizando um recebedor](#atualizando-um-recebedor)\n  - [Saldo de um recebedor](#saldo-de-um-recebedor)\n  - [Operações de saldo de um recebedor](#operações-de-saldo-de-um-recebedor)\n  - [Operação de saldo específica de um recebedor](#operação-de-saldo-específica-de-um-recebedor)\n- [Clientes](#clientes)\n  - [Criando um cliente](#criando-um-cliente)\n  - [Retornando clientes](#retornando-clientes)\n  - [Retornando um cliente](#retornando-um-cliente)\n- [Links de pagamento](#links-de-pagamento)\n  - [Criando um link de pagamento](#criando-um-link-de-pagamento)\n  - [Retornando links de pagamento](#retornando-links-de-pagamento)\n  - [Retornando um link de pagamento](#retornando-um-link-de-pagamento)\n  - [Cancelando um link de pagamento](#cancelando-um-link-de-pagamento)\n- [Buscas avançadas (Elasticsearch)](#buscas-avançadas-elasticsearch)\n  - [Realizando uma busca](#realizando-uma-busca)\n\n## Instalação\n\nInstale a biblioteca utilizando o comando\n\n`composer require pagarme/pagarme-php`\n\n## Configuração\n\nPara incluir a biblioteca em seu projeto, basta fazer o seguinte:\n\n```php\n\u003c?php\nrequire('vendor/autoload.php');\n\n$pagarme = new PagarMe\\Client('SUA_CHAVE_DE_API');\n```\n\n### Definindo headers customizados\n\n1. Se necessário for é possível definir headers http customizados para os requests. Para isso basta informá-los durante a instanciação do objeto `Client`:\n\n```php\n\u003c?php\nrequire('vendor/autoload.php');\n\n$pagarme = new PagarMe\\Client(\n    'SUA_CHAVE_DE_API',\n    ['headers' =\u003e ['MEU_HEADER_CUSTOMIZADO' =\u003e 'VALOR HEADER CUSTOMIZADO']]\n); \n```\n\nE então, você pode poderá utilizar o cliente para fazer requisições ao Pagar.me, como nos exemplos abaixo.\n\n## Transações\n\nNesta seção será explicado como utilizar transações no Pagar.me com essa biblioteca.\n\n### Criando uma transação\n\n```php\n\u003c?php\n$transaction = $pagarme-\u003etransactions()-\u003ecreate([\n    'amount' =\u003e 1000,\n    'payment_method' =\u003e 'credit_card',\n    'card_holder_name' =\u003e 'Anakin Skywalker',\n    'card_cvv' =\u003e '123',\n    'card_number' =\u003e '4242424242424242',\n    'card_expiration_date' =\u003e '1220',\n    'customer' =\u003e [\n        'external_id' =\u003e '1',\n        'name' =\u003e 'Nome do cliente',\n        'type' =\u003e 'individual',\n        'country' =\u003e 'br',\n        'documents' =\u003e [\n          [\n            'type' =\u003e 'cpf',\n            'number' =\u003e '00000000000'\n          ]\n        ],\n        'phone_numbers' =\u003e [ '+551199999999' ],\n        'email' =\u003e 'cliente@email.com'\n    ],\n    'billing' =\u003e [\n        'name' =\u003e 'Nome do pagador',\n        'address' =\u003e [\n          'country' =\u003e 'br',\n          'street' =\u003e 'Avenida Brigadeiro Faria Lima',\n          'street_number' =\u003e '1811',\n          'state' =\u003e 'sp',\n          'city' =\u003e 'Sao Paulo',\n          'neighborhood' =\u003e 'Jardim Paulistano',\n          'zipcode' =\u003e '01451001'\n        ]\n    ],\n    'shipping' =\u003e [\n        'name' =\u003e 'Nome de quem receberá o produto',\n        'fee' =\u003e 1020,\n        'delivery_date' =\u003e '2018-09-22',\n        'expedited' =\u003e false,\n        'address' =\u003e [\n          'country' =\u003e 'br',\n          'street' =\u003e 'Avenida Brigadeiro Faria Lima',\n          'street_number' =\u003e '1811',\n          'state' =\u003e 'sp',\n          'city' =\u003e 'Sao Paulo',\n          'neighborhood' =\u003e 'Jardim Paulistano',\n          'zipcode' =\u003e '01451001'\n        ]\n    ],\n    'items' =\u003e [\n        [\n          'id' =\u003e '1',\n          'title' =\u003e 'R2D2',\n          'unit_price' =\u003e 300,\n          'quantity' =\u003e 1,\n          'tangible' =\u003e true\n        ],\n        [\n          'id' =\u003e '2',\n          'title' =\u003e 'C-3PO',\n          'unit_price' =\u003e 700,\n          'quantity' =\u003e 1,\n          'tangible' =\u003e true\n        ]\n    ]\n]);\n```\n\n### Capturando uma transação\n\n```php\n\u003c?php\n$capturedTransaction = $pagarme-\u003etransactions()-\u003ecapture([\n    'id' =\u003e 'ID_OU_TOKEN_DA_TRANSAÇÃO',\n    'amount' =\u003e VALOR_TOTAL_COM_CENTAVOS\n]);\n```\n\n### Estornando uma transação\n\n```php\n\u003c?php\n$refundedTransaction = $pagarme-\u003etransactions()-\u003erefund([\n    'id' =\u003e 'ID_OU_TOKEN_DA_TRANSAÇÃO',\n]);\n```\n\nEsta funcionalidade também funciona com estornos parciais, ou estornos com split. Por exemplo:\n\n#### Estornando uma transação parcialmente\n\n```php\n\u003c?php\n$partialRefundedTransaction = $pagarme-\u003etransactions()-\u003erefund([\n    'id' =\u003e 'ID_OU_TOKEN_DA_TRANSAÇÃO',\n    'amount' =\u003e 'VALOR_PARCIAL_DO_ESTORNO',\n]);\n```\n\n#### Estornando uma transação com split\n\n```php\n\u003c?php\n$refundedTransactionWithSplit = $pagarme-\u003etransactions()-\u003erefund([\n    'id' =\u003e 'ID_OU_TOKEN_DA_TRANSAÇÃO',\n    'amount' =\u003e '6153',\n    'split_rules' =\u003e [\n        [\n            'id' =\u003e 'sr_cj41w9m4d01ta316d02edaqav',\n            'amount' =\u003e '3000',\n            'recipient_id' =\u003e 're_cj2wd5ul500d4946do7qtjrvk'\n        ],\n        [\n            'id' =\u003e 'sr_cj41w9m4e01tb316dl2f2veyz',\n            'amount' =\u003e '3153',\n            'recipient_id' =\u003e 're_cj2wd5u2600fecw6eytgcbkd0',\n            'charge_processing_fee' =\u003e 'true'\n        ]\n    ]\n]);\n```\n\n### Retornando transações\n\n```php\n\u003c?php\n$transactions = $pagarme-\u003etransactions()-\u003egetList();\n```\n\nSe necessário, você pode utilizar parâmetros para filtrar essa busca, por exemplo, se quiser filtrar apenas transações pagas, você pode utilizar o código abaixo:\n\n```php\n\u003c?php\n$paidTransactions = $pagarme-\u003etransactions()-\u003egetList([\n    'status' =\u003e 'paid'\n]);\n```\n\n### Retornando uma transação\n\n```php\n\u003c?php\n$transactions = $pagarme-\u003etransactions()-\u003eget([\n    'id' =\u003e 'ID_DA_TRANSAÇÃO' \n]);\n```\n\n### Retornando recebíveis de uma transação\n\n```php\n\u003c?php\n$transactionPayables = $pagarme-\u003etransactions()-\u003elistPayables([\n    'id' =\u003e 'ID_DA_TRANSAÇÃO'\n]);\n```\n\n### Retornando um recebível de uma transação\n\n```php\n\u003c?php\n$transactionPayable = $pagarme-\u003etransactions()-\u003egetPayable([\n    'transaction_id' =\u003e 'ID_DA_TRANSAÇÃO',\n    'payable_id' =\u003e 'ID_DO_PAYABLE'\n]);\n```\n\n### Retornando o histórico de operações de uma transação\n\n```php\n\u003c?php\n$transactionOperations = $pagarme-\u003etransactions()-\u003elistOperations([\n    'id' =\u003e 'ID_DA_TRANSAÇÃO',\n]);\n```\n\n### Notificando cliente sobre boleto a ser pago\n\n```php\n\u003c?php\n$transactionPaymentNotify = $pagarme-\u003etransactions()-\u003ecollectPayment([\n    'id' =\u003e 'ID_DA_TRANSAÇÃO',\n    'email' = \u003e 'cliente@email.com'\n]);\n```\n\n### Retornando eventos de uma transação\n\n```php\n\u003c?php\n$transactionEvents = $pagarme-\u003etransactions()-\u003eevents([\n    'id' =\u003e 4262049,\n]);\n```\n\n### Calculando pagamentos parcelados\n\nEssa rota não é obrigatória para uso. É apenas uma forma de calcular pagamentos parcelados com o Pagar.me.\n\nPara fins de explicação, utilizaremos os seguintes valores:\n\n`amount`: 1000,\n`free_installments`: 4,\n`max_installments`: 12,\n`interest_rate`: 3\n\nO parâmetro `free_installments` decide a quantidade de parcelas sem juros. Ou seja, se ele for preenchido com o valor `4`, as quatro primeiras parcelas não terão alteração em seu valor original.\n\nNessa rota, é calculado juros simples, efetuando o seguinte calculo:\n\nvalorTotal = valorDaTransacao * ( 1 + ( taxaDeJuros * numeroDeParcelas ) / 100 )\n\nEntão, utilizando os valores acima, na quinta parcela, a conta ficaria dessa maneira:\n\nvalorTotal = 1000 * (1 + (3 * 5) / 100)\n\nEntão, o valor a ser pago na quinta parcela seria de 15% da compra, totalizando 1150.\n\nVocê pode usar o código abaixo caso queira utilizar essa rota:\n\n```php\n\u003c?php\n$calculateInstallments = $pagarme-\u003etransactions()-\u003ecalculateInstallments([\n    'amount' =\u003e 'VALOR_DA_TRANSAÇÃO_EM_CENTAVOS',\n    'free_installments' =\u003e 'PARCELAS_SEM_JUROS',\n    'max_installments' =\u003e 'MÁXIMO_DE_PARCELAS',\n    'interest_rate' =\u003e 'TAXA_DE_JUROS_AO_MÊS'\n]);\n```\n\n### Testando pagamento de boletos\n\n```php\n\u003c?php\n$paidBoleto = $pagarme-\u003etransactions()-\u003esimulateStatus([\n    'id' =\u003e 'ID_DA_TRANSAÇÃO',\n    'status' =\u003e 'paid'\n]);\n```\n\n## Estornos\n\nÉ possível visualizar todos os estornos que ocorreram em sua conta, basta utilizar o código abaixo:\n\n```php\n\u003c?php\n$refunds = $pagarme-\u003erefunds()-\u003egetList();\n```\n\nSe preferir, você pode utilizar filtros para trazer apenas o estorno de uma transação em específico, por exemplo:\n\n```php\n\u003c?php\n$transactionRefunds = $pagarme-\u003erefunds()-\u003egetList([\n    'transaction_id' =\u003e 'ID_DA_TRANSAÇÃO_ESTORNADA'\n]);\n```\n\n## Chargebacks\n\nDa mesma forma que estornos, você pode visualizar todos os chargebacks que ocorreram em sua conta.\n\n```php\n\u003c?php\n$transactionChargebacks = $pagarme-\u003erefunds()-\u003egetList();\n```\n\n## Cartões\n\nSempre que você faz uma requisição através da nossa API, nós guardamos as informações do portador do cartão, para que, futuramente, você possa utilizá-las em novas cobranças, ou até mesmo implementar features como one-click-buy.\n\n### Criando cartões\n\n```php\n\u003c?php\n$card = $pagarme-\u003ecards()-\u003ecreate([\n    'holder_name' =\u003e 'Yoda',\n    'number' =\u003e '4242424242424242',\n    'expiration_date' =\u003e '1225',\n    'cvv' =\u003e '123'\n]);\n```\n\n### Retornando cartões\n\n```php\n\u003c?php\n$cards = $pagarme-\u003ecards()-\u003egetList();\n```\n\nSe necessário, você pode filtrar por algum dado específico do cartão, por exemplo, o código abaixo irá trazer todos os cartões da bandeira *visa*:\n\n```php\n\u003c?php\n$visaCards = $pagarme-\u003ecards()-\u003egetList([\n    'brand' =\u003e 'visa'\n]);\n```\n\n### Retornando um cartão\n\n```php\n\u003c?php\n$card = $pagarme-\u003ecards()-\u003eget([\n    'id' =\u003e 'ID_DO_CARTÃO'\n]);\n```\n\n## Planos\n\nRepresenta uma configuração de recorrência a qual um cliente consegue assinar.\nÉ a entidade que define o preço, nome e periodicidade da recorrência\n\n### Criando planos\n\n```php\n\u003c?php\n$plan = $pagarme-\u003eplans()-\u003ecreate([\n    'amount' =\u003e '15000',\n    'days' =\u003e '30',\n    'name' =\u003e 'The Pro Plan - Platinum - Best ever'\n]);\n```\n\n### Retornando planos\n\n```php\n\u003c?php\n$plans = $pagarme-\u003eplans()-\u003egetList();\n```\n\n### Retornando um plano\n\n```php\n\u003c?php\n$plan = $pagarme-\u003eplans()-\u003eget(['id' =\u003e '123456']);\n```\n\n### Atualizando um plano\n\n```php\n\u003c?php\n$updatedPlan = $pagarme-\u003eplans()-\u003eupdate([\n    'id' =\u003e '365403',\n    'name' =\u003e 'The Pro Plan - Susan',\n    'trial_days' =\u003e '7',\n]);\n```\n\n## Assinaturas\n\n### Criando assinaturas\n\n```php\n\u003c?php\n$substription = $pagarme-\u003esubscriptions()-\u003ecreate([\n    'plan_id' =\u003e 123456,\n    'payment_method' =\u003e 'credit_card',\n    'card_number' =\u003e '4111111111111111',\n    'card_holder_name' =\u003e 'UNIX TIME',\n    'card_expiration_date' =\u003e '0722',\n    'card_cvv' =\u003e '123',\n    'postback_url' =\u003e 'http://postbacj.url',\n    'customer' =\u003e [\n        'email' =\u003e 'time@unix.com',\n        'name' =\u003e 'Unix Time',\n        'document_number' =\u003e '75948706036',\n        'address' =\u003e [\n            'street' =\u003e 'Rua de Teste',\n            'street_number' =\u003e '100',\n            'complementary' =\u003e 'Apto 666',\n            'neighborhood' =\u003e 'Bairro de Teste',\n            'zipcode' =\u003e '11111111'\n        ],\n        'phone' =\u003e [\n            'ddd' =\u003e '01',\n            'number' =\u003e '923456780'\n        ],\n        'sex' =\u003e 'other',\n        'born_at' =\u003e '1970-01-01',\n    ],\n    'metadata' =\u003e [\n        'foo' =\u003e 'bar'\n    ]\n]);\n```\n\n**Criando assinaturas utilizando _card_id_**\n\n```php\n\u003c?php\n// Criando o cartão\n$card = $pagarme-\u003ecards()-\u003ecreate([\n    'holder_name' =\u003e 'Yoda',\n    'number' =\u003e '4242424242424242',\n    'expiration_date' =\u003e '1225',\n    'cvv' =\u003e '123'\n]);\n\n$substription = $pagarme-\u003esubscriptions()-\u003ecreate([\n    'plan_id' =\u003e 365403,\n    'card_id' =\u003e $card-\u003eid,\n    'payment_method' =\u003e 'credit_card',\n    'postback_url' =\u003e 'http://www.pudim.com.br',\n    'customer' =\u003e [\n        'email' =\u003e 'time@unix.com',\n        'name' =\u003e 'Unix Time',\n        'document_number' =\u003e '75948706036',\n        'address' =\u003e [\n            'street' =\u003e 'Rua de Teste',\n            'street_number' =\u003e '100',\n            'complementary' =\u003e 'Apto 666',\n            'neighborhood' =\u003e 'Bairro de Teste',\n            'zipcode' =\u003e '88370801'\n        ],\n        'phone' =\u003e [\n            'ddd' =\u003e '01',\n            'number' =\u003e '923456780'\n        ],\n        'sex' =\u003e 'other',\n        'born_at' =\u003e '1970-01-01',\n    ],\n    'metadata' =\u003e [\n        'foo' =\u003e 'bar'\n    ]\n]);\n\n```\n\n### Split com assinatura\n\n```php\n\u003c?php\n$substription = $pagarme-\u003esubscriptions()-\u003ecreate([\n    'plan_id' =\u003e 123456,\n    'card_id' =\u003e 'card_abc123456',\n    'payment_method' =\u003e 'credit_card',\n    'postback_url' =\u003e 'http://www.pudim.com.br',\n    'customer' =\u003e [\n        'email' =\u003e 'time@unix.com',\n        'name' =\u003e 'Unix Time',\n        'document_number' =\u003e '75948706036',\n        'address' =\u003e [\n            'street' =\u003e 'Rua de Teste',\n            'street_number' =\u003e '100',\n            'complementary' =\u003e 'Apto 666',\n            'neighborhood' =\u003e 'Bairro de Teste',\n            'zipcode' =\u003e '88370801'\n        ],\n        'phone' =\u003e [\n            'ddd' =\u003e '01',\n            'number' =\u003e '923456780'\n        ],\n        'sex' =\u003e 'other',\n        'born_at' =\u003e '1970-01-01',\n    ],\n    'amount' =\u003e 10000,\n    'split_rules' =\u003e [\n        [\n            'recipient_id' =\u003e 're_abc1234abc1234abc1234abc1',\n            'percentage' =\u003e 20,\n            'liable' =\u003e true,\n            'charge_processing_fee' =\u003e true,\n        ],\n        [\n            'recipient_id' =\u003e 're_abc1234abc1234abc1234abc1',\n            'percentage' =\u003e 80,\n            'liable' =\u003e true,\n            'charge_processing_fee' =\u003e true,\n        ]\n    ],\n    'metadata' =\u003e [\n        'foo' =\u003e 'bar'\n    ]\n]);\n```\n\n### Retornando uma assinatura\n\n```php\n\u003c?php\n$substription = $pagarme-\u003esubscriptions()-\u003eget([\n    'id' =\u003e 123456\n]);\n```\n\n### Retornando assinaturas\n\n```php\n\u003c?php\n$substription = $pagarme-\u003esubscriptions()-\u003egetList();\n```\n\nSe necessário, você pode aplicar filtros em sua busca. Por exemplo, se quiser trazer todas as assinatura de um certo plano, você pode utilizar o código abaixo:\n\n```php\n\u003c?php\n$planSubstriptions = $pagarme-\u003esubscriptions()-\u003egetList([\n    'plan_id' =\u003e 'ID_DO_PLANO'\n]);\n```\n\n### Atualizando uma assinatura\n\n```php\n\u003c?php\n$updatedSubscription = $pagarme-\u003esubscriptions()-\u003eupdate([\n    'id' =\u003e 1234,\n    'plan_id' =\u003e 4321,\n    'payment_method' =\u003e 'boleto'\n]);\n```\n\n### Cancelando uma assinatura\n\n```php\n\u003c?php\n$canceledSubscription = $pagarme-\u003esubscriptions()-\u003ecancel([\n    'id' =\u003e 12345\n]);\n```\n\n### Transações de assinatura\n```php\n\u003c?php\n$substriptionTransactions = $pagarme-\u003esubscriptions()-\u003etransactions([\n    'subscription_id' =\u003e 1245\n]);\n```\n\n### Pulando cobranças\n\n```php\n\u003c?php\n$settledCharges = $pagarme-\u003esubscriptions()-\u003esettleCharges([\n    'id' =\u003e 12345,\n    'charges' =\u003e 5\n]);\n```\n\n## Postbacks\n\nAo criar uma transação ou uma assinatura você tem a opção de passar o parâmetro postback_url na requisição. Essa é uma URL do seu sistema que irá então receber notificações a cada alteração de status dessas transações/assinaturas.\n\nPara obter informações sobre postbacks, 3 informações serão necessárias, sendo elas: `model`, `model_id` e `postback_id`.\n\n`model`: Se refere ao objeto que gerou aquele POSTback. Pode ser preenchido com o valor `transaction` ou `subscription`.\n\n`model_id`: Se refere ao ID do objeto que gerou ao POSTback, ou seja, é o ID da transação ou assinatura que você quer acessar os POSTbacks.\n\n`postback_id`: Se refere à notificação específica. Para cada mudança de status de uma assinatura ou transação, é gerado um POSTback. Cada POSTback pode ter várias tentativas de entregas, que podem ser identificadas pelo campo `deliveries`, e o ID dessas tentativas possui o prefixo `pd_`. O campo que deve ser enviado neste parâmetro é o ID do POSTback, que deve ser identificado pelo prefixo `po_`. \n\n### Retornando postbacks\n\n```php\n\u003c?php\n$postbacks = $pagarme-\u003epostbacks()-\u003egetList([\n    'model' =\u003e 'subscription',\n    'model_id' =\u003e 'ID_DA_ASSINATURA'\n]);\n```\n\n### Retornando um postback\n\n```php\n\u003c?php\n$postback = $pagarme-\u003epostbacks()-\u003eget([\n    'model' =\u003e 'transaction',\n    'model_id' =\u003e 'ID_DA_TRANSAÇÃO',\n    'postback_id' =\u003e 'po_cjlzhftd2006xg573fwelfg9y'\n]);\n\n```\n### Reenviando um postback\n\n```php\n\u003c?php\n$postbackRedeliver = $pagarme-\u003epostbacks()-\u003eredeliver([\n    'model' =\u003e 'subscription',\n    'model_id' =\u003e 'ID_DA_ASSINATURA',\n    'postback_id' =\u003e 'po_cjlzhftd2006xg573fwelfg9y'\n]);\n```\n\n### Validando uma requisição de postback\n\n```php\n\u003c?php\n$postbackPayload = file_get_contents('php://input');\n$signature = $_SERVER['HTTP_X_HUB_SIGNATURE'];\n$postbackIsValid = $pagarme-\u003epostbacks()-\u003evalidate($postbackPayload, $signature);\n```\n\nObservação: o código acima serve somente de exemplo para que o processo de validação funcione. Recomendamos que utilize ferramentas fornecidas por bibliotecas ou frameworks para recuperar estas informações de maneira mais adequada.\n\n## Saldo do recebedor principal\n\nPara saber o saldo de sua conta, você pode utilizar esse código:\n\n```php\n\u003c?php\n$balance = $pagarme-\u003ebalances()-\u003eget();\n```\n\n## Operações de saldo\n\nCom este objeto você pode acompanhar todas as movimentações financeiras ocorridas em sua conta Pagar.me.\n\n### Histórico das operações\n\n```php\n\u003c?php\n$balanceOperations = $pagarme-\u003ebalanceOperations()-\u003egetList();\n```\n\nSe necessário, você pode passar filtros como parâmetro, por exemplo:\n\n```php\n\u003c?php\n$balanceOperations = $pagarme-\u003ebalanceOperations()-\u003egetList([\n    'status' =\u003e 'available'\n]);\n```\n\n\n### Histórico de uma operação específica\n\n```php\n\u003c?php\n$balanceOperation = $pagarme-\u003ebalanceOperations()-\u003eget([\n    'id' =\u003e 'BALANCE_OPERATION_ID'\n]);\n```\n## Recebível\n\nObjeto contendo os dados de um recebível. O recebível (payable) é gerado automaticamente após uma transação ser paga. Para cada parcela de uma transação é gerado um recebível, que também pode ser dividido por recebedor (no caso de um split ter sido feito).\n\n### Retornando recebíveis\n\n```php\n\u003c?php\n$payables = $pagarme-\u003epayables()-\u003egetList();\n```\n\nSe necessário, você pode aplicar filtros na busca dos payables, por exemplo, você pode recuperar todos os payables de uma transação:\n\n```php\n\u003c?php\n$transactionPayables = $pagarme-\u003epayables()-\u003egetList([\n    'transaction_id' =\u003e 'ID_DA_TRANSAÇÃO'\n]);\n```\n\n### Retornando um recebível\n\n```php\n\u003c?php\n$payable = $pagarme-\u003epayables()-\u003eget([\n    'id' =\u003e 'ID_DO_PAYABLE'\n]);\n```\n\n## Transferências\nTransferências representam os saques de sua conta.\n\n### Criando uma transferência\n```php\n\u003c?php\n$transfer = $pagarme-\u003etransfers()-\u003ecreate([\n    'amount' =\u003e 1000,\n    'recipient_id' =\u003e 're_cjeptpdyg03u3cb6elj68p5ej'\n]);\n```\n\n### Retornando transferências\n\n```php\n\u003c?php\n$transfers = $pagarme-\u003etransfers()-\u003egetList();\n```\n\nSe necessário, você pode aplicar filtros em sua busca, por exemplo:\n\n```php\n\u003c?php\n$recipientTransfers = $pagarme-\u003etransfers()-\u003egetList([\n    'recipient_id' =\u003e 'ID_DO_RECEBEDOR'\n]);\n```\n\n### Retornando uma transferência\n\n```php\n\u003c?php\n$transfer = $pagarme-\u003etransfers()-\u003eget([\n    'id' =\u003e 'ID_DA_TRANSFERÊNCIA'\n]);\n```\n\n### Cancelando uma transferência\n\n```php\n\u003c?php\n$canceledTransfer = $pagarme-\u003etransfers()-\u003ecancel([\n    'id' =\u003e 'ID_DA_TRANSFERÊNCIA'\n]);\n```\n\n## Antecipações\n\nPara entender o que são as antecipações, você deve acessar esse [link](https://docs.pagar.me/docs/overview-antecipacao).\n\n### Criando uma antecipação\n\n```php\n\u003c?php\n$anticipation = $pagarme-\u003ebulkAnticipations()-\u003ecreate([\n    'recipient_id' =\u003e 're_cjeptpdyg03u3cb6elj68p5ej',\n    'payment_date' =\u003e '1536883200000',\n    'requested_amount' =\u003e '300000',\n    'timeframe' =\u003e 'start'\n]);\n```\n\n### Obtendo os limites de antecipação\n\n```php\n\u003c?php\n$anticipationLimits = $pagarme-\u003ebulkAnticipations()-\u003egetLimits([\n    'recipient_id' =\u003e 'ID_DO_RECEBEDOR',\n    'payment_date' =\u003e '1536883200000',\n    'timeframe' =\u003e 'start'\n]);\n```\n\n### Cancelando uma antecipação pending\n\n```php\n\u003c?php\n$canceledAnticipation = $pagarme-\u003ebulkAnticipations()-\u003ecancel([\n    'recipient_id' =\u003e 'ID_DO_RECEBEDOR',\n    'bulk_anticipation_id' =\u003e 'ID_DA_ANTECIPAÇÃO',\n]);\n```\n\n### Retornando antecipações\n\n```php\n\u003c?php\n$anticipations = $pagarme-\u003ebulkAnticipations()-\u003egetList([\n    'recipient_id' =\u003e 'ID_DO_RECEBEDOR'\n]);\n```\n\nSe necessário, você pode aplicar filtros nessa busca, por exemplo, pelo valor antecipado:\n\n```php\n\u003c?php\n$anticipations = $pagarme-\u003ebulkAnticipations()-\u003egetList([\n    'recipient_id' =\u003e 'ID_DO_RECEBEDOR',\n    'amount' =\u003e 'VALOR_ANTECIPADO'\n]);\n```\n\n## Contas bancárias\n\nContas bancárias identificam para onde será enviado o dinheiro de futuros pagamentos.\n\n### Criando uma conta bancária\n\n```php\n\u003c?php\n$bankAccount = $pagarme-\u003ebankAccounts()-\u003ecreate([\n    'bank_code' =\u003e '341',\n    'agencia' =\u003e '0932',\n    'agencia_dv' =\u003e '5',\n    'conta' =\u003e '58054',\n    'conta_dv' =\u003e '1',\n    'document_number' =\u003e '26268738888',\n    'legal_name' =\u003e 'API BANK ACCOUNT'\n]);\n```\n\n### Retornando uma conta bancária\n\n```php\n\u003c?php\n$bankAccount = $pagarme-\u003ebankAccounts()-\u003eget([\n    'id' =\u003e 'ID_DA_CONTA_BANCÁRIA'\n]);\n```\n\n### Retornando contas bancárias\n\n```php\n\u003c?php\n$bankAccounts = $pagarme-\u003ebankAccounts()-\u003egetList();\n```\n\nSe quiser, você pode aplicar filtros para a busca de contas bancárias, como por exemplo, filtrar pelo código do banco:\n\n```php\n\u003c?php\n$bankAccounts = $pagarme-\u003ebankAccounts()-\u003egetList([\n    'bank_code' =\u003e '341'\n]);\n```\n\n## Recebedores\n\nPara dividir uma transação entre várias entidades, é necessário ter um recebedor para cada uma dessas entidades. Recebedores contém informações da conta bancária para onde o dinheiro será enviado, e possuem outras informações para saber quanto pode ser antecipado por ele, ou quando o dinheiro de sua conta será sacado automaticamente.\n\n### Criando um recebedor\n\n```php\n\u003c?php\n$recipient = $pagarme-\u003erecipients()-\u003ecreate([\n    'anticipatable_volume_percentage' =\u003e '85', \n    'automatic_anticipation_enabled' =\u003e 'true', \n    'bank_account_id' =\u003e '17899179', \n    'transfer_day' =\u003e '5', \n    'transfer_enabled' =\u003e 'true', \n    'transfer_interval' =\u003e 'weekly'\n]);\n```\n\n### Retornando recebedores\n\n```php\n\u003c?php\n$recipients = $pagarme-\u003erecipients()-\u003egetList();\n```\n\nSe necessário, você pode aplicar filtros nessa busca. Por exemplo, se quiser retornar todos os recebedores, com transferência habilitada, você pode utilizar esse código:\n\n```php\n\u003c?php\n$transferEnabledRecipients = $pagarme-\u003erecipients()-\u003egetList([\n    'transfer_enabled' =\u003e true\n]);\n```\n\n### Retornando um recebedor\n\n```php\n\u003c?php\n$recipient = $pagarme-\u003erecipients()-\u003eget([\n    'id' =\u003e 'ID_DO_RECEBEDOR'\n]);\n\n```\n\n### Atualizando um recebedor\n\n```php\n\u003c?php\n$updatedRecipient = $pagarme-\u003erecipients()-\u003eupdate([\n    'id' =\u003e 'ID_DO_RECEBEDOR',\n    'anticipatable_volume_percentage' =\u003e 80,\n    'transfer_day' =\u003e 4\n]);\n```\n\n### Saldo de um recebedor\n\n```php\n\u003c?php\n$recipientBalance = $pagarme-\u003erecipients()-\u003egetBalance([\n    'recipient_id' =\u003e 'ID_DO_RECEBEDOR',\n]);\n```\n\n### Operações de saldo de um recebedor\n\n```php\n\u003c?php\n$recipientBalanceOperations = $pagarme-\u003erecipients()-\u003elistBalanceOperation([\n    'recipient_id' =\u003e 'ID_DO_RECEBEDOR'\n]);\n```\n\n### Operação de saldo específica de um recebedor\n\n```php\n\u003c?php\n$recipientBalanceOperation = $pagarme-\u003erecipients()-\u003egetBalanceOperation([\n    'recipient_id' =\u003e 'ID_DO_RECEBEDOR',\n    'balance_operation_id' =\u003e 'ID_DA_OPERAÇÃO'\n]);\n```\n\n## Clientes\n\nClientes representam os usuários de sua loja, ou negócio. Este objeto contém informações sobre eles, como nome, e-mail e telefone, além de outros campos.\n\n### Criando um cliente\n\n```php\n\u003c?php\n$customer = $pagarme-\u003ecustomers()-\u003ecreate([\n    'external_id' =\u003e '#123456789',\n    'name' =\u003e 'João das Neves',\n    'type' =\u003e 'individual',\n    'country' =\u003e 'br',\n    'email' =\u003e 'joaoneves@norte.com',\n    'documents' =\u003e [\n      [\n        'type' =\u003e 'cpf',\n        'number' =\u003e '11111111111'\n      ]\n    ],\n    'phone_numbers' =\u003e [\n      '+5511999999999',\n      '+5511888888888'\n    ],\n    'birthday' =\u003e '1985-01-01'\n]);\n```\n### Retornando clientes\n\n```php\n\u003c?php\n$customers = $pagarme-\u003ecustomers()-\u003egetList();\n```\n\n### Retornando um cliente\n\n```php\n\u003c?php\n$customer = $pagarme-\u003ecustomers()-\u003eget([\n    'id' =\u003e 'ID_DO_CLIENTE'\n]);\n```\n\n## Links de pagamento\n\n### Criando um link de pagamento\n\n```php\n\u003c?php\n$paymentLink = $pagarme-\u003epaymentLinks()-\u003ecreate([\n    'amount' =\u003e 10000,\n    'items' =\u003e [\n        [\n            'id' =\u003e '1',\n            'title' =\u003e \"Fighter's Sword\",\n            'unit_price' =\u003e 4000,\n            'quantity' =\u003e 1,\n            'tangible' =\u003e true,\n            'category' =\u003e 'weapon',\n            'venue' =\u003e 'A Link To The Past',\n            'date' =\u003e '1991-11-21'\n        ],\n        [\n            'id' =\u003e '2',\n            'title' =\u003e 'Kokiri Sword',\n            'unit_price' =\u003e 6000,\n            'quantity' =\u003e 1,\n            'tangible' =\u003e true,\n            'category' =\u003e 'weapon',\n            'venue' =\u003e \"Majora's Mask\",\n            'date' =\u003e '2000-04-27'\n        ],\n    ],\n    'payment_config' =\u003e [\n        'boleto' =\u003e [\n            'enabled' =\u003e true,\n            'expires_in' =\u003e 20\n        ],\n        'credit_card' =\u003e [\n            'enabled' =\u003e true,\n            'free_installments' =\u003e 4,\n            'interest_rate' =\u003e 25,\n            'max_installments' =\u003e 12\n        ],\n        'default_payment_method' =\u003e 'boleto'\n    ],\n    'max_orders' =\u003e 1,\n    'expires_in' =\u003e 60\n]);\n```\n\n### Retornando links de pagamento\n\n```php\n\u003c?php\n$paymentLinks = $pagarme-\u003epaymentLinks()-\u003egetList();\n```\n\n### Retornando um link de pagamento\n\n```php\n\u003c?php\n$paymentLink = $pagarme-\u003epaymentLinks()-\u003eget([\n    'id' =\u003e 'ID_DO_LINK_DE_PAGAMENTO'\n]);\n```\n\n### Cancelando um link de pagamento\n\n```php\n\u003c?php\n$canceledPaymentLink = $pagarme-\u003epaymentLinks()-\u003ecancel([\n    'id' =\u003e 'ID_DO_LINK_DE_PAGAMENTO'\n]);\n```\n\n## Buscas avançadas (Elasticsearch)\n\n### Realizando uma busca\n\n```php\n\u003c?php\n$search = $pagarme-\u003esearch()-\u003eget([                \n    \"type\" =\u003e \"transaction\",\n    \"query\" =\u003e [\n        \"query\" =\u003e [\n            \"terms\" =\u003e [\n                \"items.id\" =\u003e [8, 9] // Busca transações com itens de ID 8 e 9\n            ]\n        ]\n    ]\n]);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpagarme%2Fpagarme-php","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpagarme%2Fpagarme-php","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpagarme%2Fpagarme-php/lists"}