{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["tabs","tab"]},"type":"markdown"},"seo":{"title":"Top-ups","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"top-ups","__idx":0},"children":["Top-ups"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A top-up is the reverse of a ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/payouts"},"children":["payout"]},": it increases your PayPro balance instead of withdrawing from it. Top-ups can be created in multiple ways:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Through the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://app.paypro.nl/betalingen/saldo_opwaarderen/new"},"children":["PayPro Dashboard"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["With the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/reference/api/top-ups"},"children":["Top-ups API"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["We will now discuss how to create a Top-up with our ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/reference/api/top-ups"},"children":["Top-ups API"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"creating-a-top-up","__idx":1},"children":["Creating a Top-up"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A Top-up is a resource in our API. Create one by calling the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/reference/api/top-ups/createtopup"},"children":["Top-up create endpoint"]}," with an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency"]},". You can optionally supply a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pay_method"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ideal"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bancontact"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bank-transfer"]},") and a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["locale"]},":"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"PHP","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"php","header":{"controls":{"copy":{}}},"source":"$top_up = $paypro->topUps->create(\n  [\n    'amount' => 10000,\n    'currency' => 'EUR'\n  ]\n);\n","lang":"php"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Ruby","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"ruby","header":{"controls":{"copy":{}}},"source":"client = PayPro::Client.new('pp_...')\n\ntop_up = client.top_ups.create(\n  amount: 10000,\n  currency: 'EUR'\n)\n","lang":"ruby"},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A top-up has a unique ID, which can be useful as a payment reference when doing a manual bank transfer. Once the top-up is paid, your PayPro balance is automatically increased by its amount. You can also supply ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["metadata"]}," to store your own data alongside the top-up, which is returned when you fetch the top-up again."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listen-for-webhook-events","__idx":2},"children":["Listen for Webhook Events"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Just like payments, top-ups are paid asynchronously. To stay informed about status changes we recommend implementing our ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/reference/webhooks"},"children":["Webhooks"]},". You can subscribe to the following top-up events:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["topup.created"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["topup.started"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["topup.canceled"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["topup.paid"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["topup.failed"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["topup.expired"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more details on how to set up and manage webhooks, visit the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/reference/webhooks"},"children":["webhooks page"]},"."]}]},"headings":[{"value":"Top-ups","id":"top-ups","depth":1},{"value":"Creating a Top-up","id":"creating-a-top-up","depth":2},{"value":"Listen for Webhook Events","id":"listen-for-webhook-events","depth":2}],"frontmatter":{"seo":{"title":"Top-ups"}},"lastModified":"2026-08-07T15:00:20.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/top-ups","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}