{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Reefpay Docs","description":"Reefpay is the groundbreaking payment gateway that lets you integrate with the future of payments.","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":"sandbox-vs-production-environments","__idx":0},"children":["Sandbox vs. production environments"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"environment-comparison","__idx":1},"children":["Environment comparison"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":""},"children":[]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Sandbox"},"children":["Sandbox"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Production"},"children":["Production"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Base URL"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.sandbox.paradisegateway.net"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.paradisegateway.net"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Real payments"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Yes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Real funds"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Yes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Test card numbers"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Required"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Real card numbers only"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Processor connections"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Simulated"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Live processors"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Rate limits"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Same as production"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Standard limits"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sandbox-environment","__idx":2},"children":["Sandbox environment"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The sandbox environment simulates the full ","Reefpay"," API without connecting to live processor networks. Transactions are processed against the processor's sandbox environment and no real funds move."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"when-to-use-the-sandbox","__idx":3},"children":["When to use the sandbox"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["During initial integration and development"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For automated testing and continuous integration pipelines"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["When testing new transaction types or payment flows"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For training and demonstrations"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"sandbox-credentials","__idx":4},"children":["Sandbox credentials"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the same API keys as production."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"test-card-numbers","__idx":5},"children":["Test card numbers"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the following test card numbers in the sandbox environment. These numbers pass Luhn validation but are not real card numbers."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"cards-that-return-approved-responses","__idx":6},"children":["Cards that return approved responses"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Brand"},"children":["Brand"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Card number"},"children":["Card number"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Expiry"},"children":["Expiry"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"CVV"},"children":["CVV"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Visa"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["4111111111111234"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Any future date"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Any 3 digits"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Mastercard"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["5500000000000004"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Any future date"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Any 3 digits"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["American Express"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["340000000000009"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Any future date"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Any 4 digits"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Discover"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["6011000000000004"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Any future date"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Any 3 digits"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"cards-that-simulate-declined-responses","__idx":7},"children":["Cards that simulate declined responses"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Card number"},"children":["Card number"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Simulated response"},"children":["Simulated response"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["4000000000000002"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Declined — insufficient funds"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["4000000000000010"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Declined — do not honor"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["4000000000000028"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Declined — expired card"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["4000000000000036"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Declined — lost/stolen"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"test-bank-accounts","__idx":8},"children":["Test bank accounts"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the following test bank account numbers in the sandbox for ACH transactions."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Routing number"},"children":["Routing number"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Account number"},"children":["Account number"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Account type"},"children":["Account type"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Simulated response"},"children":["Simulated response"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["021000021"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1234567890"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Checking"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Approved"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["021000021"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0000000001"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Checking"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["NSF return"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["021000021"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0000000002"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Savings"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Account closed return"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"switching-to-production","__idx":9},"children":["Switching to production"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you are ready to process real payments, update your integration to point to the production environment."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"checklist","__idx":10},"children":["Checklist"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Replace the sandbox base URL with the production base URL."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Retrieve production API keys using your production account credentials."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Replace test card numbers and bank accounts with real payment data."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify that your error handling, retry logic, and logging work correctly."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Confirm that you are not logging raw card numbers, CVV values, or bank account numbers."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Run a small live transaction to verify end-to-end connectivity."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"key-differences-in-behavior","__idx":11},"children":["Key differences in behavior"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"transaction-settlement","__idx":12},"children":["Transaction settlement"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sandbox"]},": Transactions simulate settlement but do not move funds. Batch operations behave the same as production for testing purposes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Production"]},": Transactions settle to the merchant's bank account according to the configured batch schedule."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"processor-responses","__idx":13},"children":["Processor responses"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sandbox"]},": Responses are simulated based on the test card or bank account number used. Response codes and messages match the production format."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Production"]},": Responses come from live processor networks (TSYS, Vericheck) and reflect actual issuer decisions."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"webhooks","__idx":14},"children":["Webhooks"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sandbox"]},": Webhook events fire the same as production, allowing you to test your webhook endpoint and signature verification."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Production"]},": Webhook events reflect real transaction activity."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"further-reading","__idx":15},"children":["Further reading"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/get-started/quickstart"},"children":["Quickstart"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/get-started/integration-best-practices"},"children":["About best practices for integration"]}]}]}]},"headings":[{"value":"Sandbox vs. production environments","id":"sandbox-vs-production-environments","depth":1},{"value":"Environment comparison","id":"environment-comparison","depth":2},{"value":"Sandbox environment","id":"sandbox-environment","depth":2},{"value":"When to use the sandbox","id":"when-to-use-the-sandbox","depth":3},{"value":"Sandbox credentials","id":"sandbox-credentials","depth":3},{"value":"Test card numbers","id":"test-card-numbers","depth":2},{"value":"Cards that return approved responses","id":"cards-that-return-approved-responses","depth":3},{"value":"Cards that simulate declined responses","id":"cards-that-simulate-declined-responses","depth":3},{"value":"Test bank accounts","id":"test-bank-accounts","depth":2},{"value":"Switching to production","id":"switching-to-production","depth":2},{"value":"Checklist","id":"checklist","depth":3},{"value":"Key differences in behavior","id":"key-differences-in-behavior","depth":2},{"value":"Transaction settlement","id":"transaction-settlement","depth":3},{"value":"Processor responses","id":"processor-responses","depth":3},{"value":"Webhooks","id":"webhooks","depth":3},{"value":"Further reading","id":"further-reading","depth":2}],"frontmatter":{"title":"Sandbox vs. production environments","shortTitle":"Sandbox vs production","intro":"{% $env.PUBLIC_BRAND_NAME %} provides separate sandbox and production environments. Use the sandbox for development and testing without processing real payments.","type":"reference","seo":{"title":""}},"lastModified":"2026-06-05T02:46:44.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/get-started/sandbox-vs-production","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}