### New Bank Account Object with Verification URL Source: https://guides.onlinepaymentplatform.com/ Example JSON response for a newly created bank account, including its UID, status, and a verification URL that the merchant must use to complete the setup. ```JSON { "uid": "{{bank_account_uid}}", "object": "bank_account", "created": 1554200096, "updated": 1554200096, "verified": null "verification_url": "https://onlinebetaalplatform.nl/nl/ {{partner_name}}/merchants/{{merchant_uid}}/verificatie/ bankgegevens/{{bank_account_uid}}/7a8d3c308b0739ef96320720017d070533912548", "status": "new", ... } ``` -------------------------------- ### File Upload Response Example Source: https://guides.onlinepaymentplatform.com/ Example response after successfully creating a file link, containing essential details for the subsequent file upload. ```json { "uid": "{{file_uid}}", "created": "1606003200", "updated": "1606003200", "expired": "1606004100", "merchant_uid": "{{merchant_uid}}", "object_uid": "{{contact_uid}}", "purpose": "representative_passport", "token": "{{token}}", "url": "https://files-sandbox.onlinebetaalplatform.nl/v1/uploads/{{file_uid}}" } ``` -------------------------------- ### Example Mandate Creation Response Source: https://guides.onlinepaymentplatform.com/ This is an example of the JSON response received after successfully creating a mandate. It includes the mandate UID, status, and URLs for redirection. ```json { "livemode": false, "uid": "{{mandate_uid}}", "object": "mandate", "token": null, "created": 1625492691, "updated": 1625492691, "start": null, "end": null, "completed": null, "expired": 1625494491, "revoked": null, "amount": 100, "repeats": null, "interval": null, "description": null, "return_url": "https://platform.example.com/return/", "redirect_url": "https://sandbox.onlinebetaalplatform.nl/nl/6bfa1c3e1d1d/machtiging/verificatie-betaling/start/{{mandate_uid}}", "notify_url": "https://platform.example.com/notify/", "has_checkout": true, "skip_confirmation": false, "mandate_flow": "direct", "mandate_repeat": "subscription", "mandate_type": "consumer", "mandate_method": "payment", "payment_method": null, "status": "created", "customer": {}, "order": {}, "metadata": [], "statuses": [] } ``` -------------------------------- ### Example Transaction Response Source: https://guides.onlinepaymentplatform.com/ This is an example of the response received after creating a transaction. It includes the transaction UID and status, which should be saved. ```JSON { "livemode": false, "uid": "{{transaction_uid}}", "object": "transaction", "created": 1625233235, "updated": 1625233235, "completed": null, "merchant_uid": "{{merchant_uid}}", "profile_uid": "{{profile_uid}}", "has_checkout": false, "payment_method": "sepa", "payment_flow": "direct", "payment_details": { "provider_bank_account_name": "Online Payments Foundation", "provider_bank_account_iban": "NL96INGB0674534352", "provider_bank_account_bic": "INGBNL2A", "reference": "QBF5ND", "expired": 1625349599 }, "amount": 250, "return_url": "https://platform.example.com/return/", "redirect_url": "https://sandbox.onlinebetaalplatform.nl/nl/6bfa1c3e1d1d/transactie/start/{{transaction_uid}}", "notify_url": "https://platform.example.com/notify/", "status": "created", ... } ``` -------------------------------- ### Example Merchant Creation Response Source: https://guides.onlinepaymentplatform.com/ This is an example response when a merchant is created. It includes the merchant's unique identifier (UID), status, and compliance details. Store the Merchant UID for future transactions. ```json { "uid": "{{merchant_uid}}", "object": "merchant", "created": 1604661043, "updated": 1604661043, "status": "pending", "compliance": { "level": 400, "status": "unverified", "overview_url": "https://sandbox.onlinebetaalplatform.nl/en/{{partner_slug}}/{{merchant_uid}}/{{hash}}/overview", "requirements": [ { "type": "bank_account.required", "status": "unverified", "object_type": "bank_account", "object_uid": null, "object_url": "https://api-sandbox.onlinebetaalplatform.nl/v1/merchants/{{merchant_uid}}/bank_accounts", "object_redirect_url": null }, { "type": "contact.verification.required", "status": "unverified", "object_type": "contact", "object_uid": "{{contact_uid}}", "object_url": "https://api-sandbox.sandbox.onlinebetaalplatform.nl/v1/merchants/{{merchant_uid}}/contacts/con_e9e5e1b7bd23", "object_redirect_url": "https://sandbox.onlinebetaalplatform.nl/en/{{partner_slug}}/merchants/{{merchant_uid}}/verifications/contact-details/{{contact_uid}}/{{hash}}" } ] }, "type": "business", "coc_nr": "12345678", ... } ``` -------------------------------- ### Example Current Settlement Response Source: https://guides.onlinepaymentplatform.com/ This is an example of the JSON response when retrieving a merchant's current settlement, showing details like transaction counts, volumes, and payable amounts. ```json { "object": "list", "url": "/v1/merchants/{{merchant_uid}}/settlements", "has_more": false, "total_item_count": 1, "items_per_page": 10, "current_page": 1, "last_page": 1, "data": [ { "uid": "{{settlement_uid}}", "object": "settlement", "created": 1606307019, "updated": 1606307020, "status": "current", "paid": null, "period_start": 1606258800, "period_end": 1606345199, "total_number_of_transactions": 2, "number_of_transactions": 1, "number_of_refunds": 1, "number_of_withdrawals": 0, "number_of_mandates": 0, "number_of_internal_transfers": 0, "number_of_multi_transactions": 0, "total_volume": 80, "transaction_volume": 100, "refund_volume": -20, "withdrawal_volume": 0, "mandate_volume": 0, "internal_transfer_volume": 0, "multi_transaction_volume": 0, "total_transaction_costs": 0, "transaction_costs": 0, "refund_costs": 0, "withdrawal_costs": 0, "mandate_costs": 0, "internal_transfer_costs": 0, "multi_transaction_costs": 0, "total_order_fees": 0, "total_refund_fees": 0, "total_gateway_fees": 0, "total_amount": 80, "amount_paid": 0, "amount_payable": 80, "payout_type": "collective", "po_number": null, "specifications": [ { "uid": "{{specification_uid}}", "object": "specification", "created": 1606307019, "updated": 1606307020, "source": {}, "status": "current", "paid": null, "period_start": 1606258800, "period_end": 1606345199, "total_number_of_transactions": 2, "number_of_transactions": 1, "number_of_refunds": 1, "number_of_withdrawals": 0, "number_of_mandates": 0, "number_of_internal_transfers": 0, "number_of_multi_transactions": 0, "total_volume": 80, "transaction_volume": 100, "refund_volume": -20, "withdrawal_volume": 0, "mandate_volume": 0, "internal_transfer_volume": 0, "multi_transaction_volume": 0, "total_transaction_costs": 0, "transaction_costs": 0, "refund_costs": 0, "withdrawal_costs": 0, "mandate_costs": 0, "internal_transfer_costs": 0, "multi_transaction_costs": 0, "total_order_fees": 0, "total_refund_fees": 0, "total_gateway_fees": 0, "total_amount": 80, "amount_paid": 0, "amount_payable": 80, "po_number": null } ] } ] } ``` -------------------------------- ### Settlement Response Example Source: https://guides.onlinepaymentplatform.com/ An example of the settlement data response. This JSON structure provides detailed financial information, including transaction counts, volumes, costs, and the amount payable. ```json { "object": "list", "url": "/v1/settlements", "has_more": false, "total_item_count": 1, "items_per_page": 10, "current_page": 1, "last_page": 1, "data": [ { "uid": "{{settlement_uid}}", "object": "settlement", "created": 1606307019, "updated": 1606307020, "status": "current", "paid": null, "period_start": 1606258800, "period_end": 1606345199, "total_number_of_transactions": 72, "number_of_transactions": 47, "number_of_refunds": 3, "number_of_withdrawals": 0, "number_of_mandates": 20, "number_of_internal_transfers": 0, "number_of_multi_transactions": 2, "total_volume": 685188, "transaction_volume": 686218, "refund_volume": -1030, "withdrawal_volume": 0, "mandate_volume": 0, "internal_transfer_volume": 0, "multi_transaction_volume": 0, "total_transaction_costs": -4285, "transaction_costs": -435, "refund_costs": 0, "withdrawal_costs": 0, "mandate_costs": -3850, "internal_transfer_costs": 0, "multi_transaction_costs": 0, "total_order_fees": 0, "total_refund_fees": 0, "total_gateway_fees": 0, "total_amount": 80, "amount_paid": 0, "amount_payable": -4442, "payout_type": "collective", "po_number": null, "specifications": [ { "uid": "set_8751fc4fb25f", "object": "specification", "created": 1606386063, "updated": 1606386064, "source": {}, "status": "current", "paid": null, "period_start": 1604358000, "period_end": 1606777199, "total_number_of_transactions": 35, "number_of_transactions": 12, "number_of_refunds": 1, "number_of_withdrawals": 0, "number_of_mandates": 20, "number_of_internal_transfers": 0, "number_of_multi_transactions": 2, "total_volume": 33078, "transaction_volume": 34078, "refund_volume": -1000, "withdrawal_volume": 0, "mandate_volume": 0, "internal_transfer_volume": 0, "multi_transaction_volume": 0, "total_transaction_costs": -3910, "transaction_costs": -60, "refund_costs": 0, "withdrawal_costs": 0, "mandate_costs": -3850, "internal_transfer_costs": 0, "multi_transaction_costs": 0, "total_order_fees": 398, "total_refund_fees": -100, "total_gateway_fees": -650 } ] } ] } ``` -------------------------------- ### Refund Creation Response Source: https://guides.onlinepaymentplatform.com/ This is an example of the response received after successfully creating a refund. It contains the refund UID and status. ```json { "livemode": false, "uid": "{{refund_uid}}", "object": "refund", "created": 1623160335, "updated": 1623160335, "paid": null, "amount": 6750, "status": "created", "message": "as agreed", "internal_reason": "not satisfied", "fees": {}, "payout_description": "Invoice 2021012 not satisfied" } ``` -------------------------------- ### Create a Single Transaction Source: https://guides.onlinepaymentplatform.com/ Use this example to create a single transaction. Ensure you replace placeholder values like {{merchant_uid}} with your actual credentials. ```HTTP POST https://api-sandbox.onlinebetaalplatform.nl/v1/transactions { "merchant_uid": "{{merchant_uid}}", "products": [ { "name": "WakeUp Light", "price": 250, "quantity": 1 } ], "return_url": "https://platform.example.com/return/", "notify_url": "https://platform.example.com/notify/", "total_price": 250, "checkout": false, "payment_method": "sepa", "metadata": { "external_id": "2015486" } } ``` -------------------------------- ### Merchant Compliance Requirements Example Source: https://guides.onlinepaymentplatform.com/ This JSON structure shows an example of a merchant's compliance requirements, including a 'coc_extract.required' status and a redirect URL for verification. ```json { "uid": "{{merchant_uid}}", "object": "merchant", ... "compliance": { "level": 400, "status": "unverified", "requirements": [ { "type": "coc_extract.required", "status": "unverified", "object_type": null, "object_uid": null, "object_url": null, "object_redirect_url": "https://sandbox.onlinebetaalplatform.nl/en/{{partner_name}}/merchants/{{merchant_uid}}/verifications/coc-extract/feabfd98b2a9d246a6e33742f92af061059b9f81" } ] }, ... } ``` -------------------------------- ### Merchant Compliance Object Example Source: https://guides.onlinepaymentplatform.com/ This JSON object shows the structure of a merchant's compliance details, including the overview_url. ```json { "uid": "{{merchant_uid}}", "object": "merchant", ... "compliance": { "level": 200, "status": "unverified", "overview_url": "https://sandbox.onlinebetaalplatform.nl/en/{{partner_slug}}/{{merchant_uid}}/15c0bdb17283475ec5f274cad0a2a0245dda11ff/overview", "requirements": [ ... ] }, ... } ``` -------------------------------- ### Source of Funds Requirement Example Source: https://guides.onlinepaymentplatform.com/ This JSON snippet shows an example of a 'source_of_funds.required' compliance requirement within a merchant object. It includes details like status, object type, and redirect URL. ```json { "...": "...", "requirements": [ { "type": "source_of_funds.required", "status": "unverified", "object_type": "source_of_fund", "object_uid": "{{sof_uid}}", "object_url": null, "object_redirect_url": "https://sandbox.onlinebetaalplatform.nl/nl/testindividual/merchants/{{merchant_uid}}/verificaties/bron-van-de-middelen/{{sof_uid}}/5fa9a435b8b66267aaddb2db48dfe9a74b7e544f" } ] } ``` -------------------------------- ### Retrieve All Settlements Source: https://guides.onlinepaymentplatform.com/ Fetches all settlements, optionally expanding specifications and ordering by period. Use this to get an overview of past settlements. ```bash GET https://api-sandbox.onlinebetaalplatform.nl/v1/settlements?expand[]=specifications&order[]=-period ``` -------------------------------- ### Create SEPA Transaction Source: https://guides.onlinepaymentplatform.com/ This example shows the minimal required fields to create a SEPA transaction. Ensure `payment_method` is set to `sepa` and provide valid `notify_url` and `return_url`. ```json { "merchant_uid": "{{merchant_uid}}", "products": [ { "sku": "example-sku", "quantity": 1, "price": 1000 } ], "total_price": 1000, "return_url": "https://example.com/return", "notify_url": "https://example.com/notify", "payment_method": "sepa" } ``` -------------------------------- ### Settlement Specification Rows Response Example Source: https://guides.onlinepaymentplatform.com/ This JSON response details the settlement specification rows, including event type, reference, and fees. It shows examples for 'transaction' and 'refund' types. ```json { "object": "list", "url": "/v1/merchants/{{merchant_uid}}/settlements/{{settlement_uid}}/specifications/{{specification_uid}}/rows", "has_more": false, "total_item_count": 2, "items_per_page": 10, "current_page": 1, "last_page": 1, "data": [ { "object": "settlement_row", "created": 1606306677, "updated": 1606306677, "date": 1606306674, "type": "transaction", "reference": "{{transaction_uid}}", "volume": 100, "fees": { "total_merchant_fee": 50, "total_partner_fee": 40, ... }, "amount": 100, "amount_paid": 0, "amount_payable": 100 }, { "object": "settlement_row", "created": 1606307020, "updated": 1606307020, "date": 1606307016, "type": "refund", "reference": "{{refund_uid}}", "volume": -20, "fees": { "total_merchant_fee": 0, "total_partner_fee": 100, ... }, "amount": -20, "amount_paid": 0, "amount_payable": -20 } ] } ``` -------------------------------- ### iDIN Identification URL Example Source: https://guides.onlinepaymentplatform.com/ This URL demonstrates how to redirect a merchant for iDIN identification, including verification type and issuer parameters. ```url https://onlinebetaalplatform.nl/nl/{{partner}}/merchants/{{merchant_uid}}/ verificatie/contactgegevens /{{contact_uid}}/{{hash}}?verification_type=idin&issuer=INGBNL2A ``` -------------------------------- ### File Upload Link Response Source: https://guides.onlinepaymentplatform.com/ Example response after creating a file upload link, containing the file UID, expiration, and upload URL. ```json { "uid": "{{file_uid}}", "created": "1606003200", "updated": "1606003200", "expired": "1606004100", "merchant_uid": "{{merchant_uid}}", "object_uid": "{{merchant_uid}}", "purpose": "source_of_fund_savings", "token": "{{token}}", "url": "https://files-sandbox.onlinebetaalplatform.nl/v1/uploads/{{file_uid}}" } ``` -------------------------------- ### Create Business Merchant Request Source: https://guides.onlinepaymentplatform.com/ Example POST request to create a new business merchant. Requires fields like 'coc_nr', 'type', 'country', 'emailaddress', 'phone', and 'notify_url'. ```http POST https://api-sandbox.onlinebetaalplatform.nl/v1/merchants { "type": "business", "coc_nr": "12345678", "country": "nld", "emailaddress": "email@domain.com", "phone": "0612345678", "notify_url": "https://platform.com/notify" } ``` -------------------------------- ### Create Mandate Transaction Request Source: https://guides.onlinepaymentplatform.com/ This example shows the required fields to create a mandate transaction. Ensure you provide a unique reference to avoid duplicate transactions. ```http POST https://api-sandbox.onlinebetaalplatform.nl/v1/mandates/{{mandate_uid}}/transactions { "merchant_uid": "{{merchant_uid}}", "reference": "ABC1234", "token": "{{mandate_token}}", "total_price": 2525, "notify_url": "https://platform.example.com/notify/" } ``` -------------------------------- ### Create Mandate Transaction Response Source: https://guides.onlinepaymentplatform.com/ This is an example response after successfully creating a mandate transaction. The initial status is 'created', and a transaction UID is provided. ```json { "livemode": false, "uid": "{{transaction_uid}}", "object": "transaction", "created": 1625572951, "updated": 1625572951, "completed": null, "merchant_uid": "{{merchant_uid}}", "profile_uid": "{{profile_uid}}", "has_checkout": false, "payment_method": "mandate", "payment_flow": "direct", "payment_details": { "reference": "ABC1234", "code": null, "message": null }, "amount": 2525, "return_url": "https://platform.example.com/return/", "redirect_url": null, "notify_url": "https://platform.com/notify/", "status": "created", "metadata": [], "statuses": [], "order": [], "escrow": {}, "fees": {}, "refunds": {} } ``` -------------------------------- ### Create SEPA Payment Reference Request Source: https://guides.onlinepaymentplatform.com/ Example POST request to create a SEPA payment reference. Requires merchant UID, a unique code, and a notification URL for status updates. ```http POST https://api-sandbox.onlinebetaalplatform.nl/v1/payment_references { "merchant_uid": "{{merchant_uid}}", "code": "TEST0001", "notify_url": "https://platform.example.com/notify/" } ``` -------------------------------- ### Merchant Compliance Requirements Source: https://guides.onlinepaymentplatform.com/ Example JSON structure showing merchant compliance requirements, including contact phone number verification status and redirect URL. ```json "uid": "{{merchant_uid}}", "object": "merchant", ... "compliance": { "level": 100, "status": "unverified", "overview_url": "https://sandbox.onlinebetaalplatform.nl/en/{{partner_slug}}/{{merchant_uid}}/feabfd98b2a9d246a6e33742f92af061059b9f81/overview", "requirements": [ { "type": "contact.phonenumber.required", "status": "unverified", "object_type": "contact_phonenumber", "object_uid": null, "object_url": null, "object_redirect_url": "https://sandbox.onlinebetaalplatform.nl/en/{{partner_slug}}/merchants/{{merchant_uid}}/verifications/phonenumber-form/{{contact_uid}}/feabfd98b2a9d246a6e33742f92af061059b9f81" }] ... ``` -------------------------------- ### Merchant Compliance Object Example Source: https://guides.onlinepaymentplatform.com/ This JSON object represents the compliance details of a merchant, including their current level, status, and outstanding requirements. It is retrieved using the GET /v1/merchants/{{merchant_uid}} API call. ```json { "uid": "{{merchant_uid}}", "object": "merchant", ... "compliance": { "level": 200, "status": "unverified", "requirements": [ { "type": "bank_account.verification.required", "status": "unverified", "object_uid": {{bank_account_uid}}, "object_type": "bank_account", "object_url": "https://api-sandbox.onlinebetaalplatform.nl/v1/merchants/", "object_redirect_url": https://sandbox.onlinebetaalplatform.nl/... } ] }, ... } ``` -------------------------------- ### Create SEPA Payment Reference Response Source: https://guides.onlinepaymentplatform.com/ Example response after successfully creating a SEPA payment reference. Includes the reference's UID, code, notification URL, and bank details for the provider. ```json { "uid": "{{payment_reference_uid}}", "object": "payment_reference", "created": 1624371329, "updated": 1624371329, "code": "TEST0001", "notify_url": "https://platform.example.com/notify/", "payment_details": { "provider_bank_account_name": "Online Payments Foundation", "provider_bank_account_iban": "NL96INGB0674534352", "provider_bank_account_bic": "INGBNL2A" } } ``` -------------------------------- ### Create Single Transaction with Escrow Source: https://guides.onlinepaymentplatform.com/ Use this example to create a single transaction with escrow enabled. Ensure the `escrow: true` and `escrow_period` fields are correctly set. This request is made to the sandbox API endpoint. ```HTTP POST https://api-sandbox.onlinebetaalplatform.nl/v1/transactions { "merchant_uid": "{{merchant_uid}}", "products": [ { "name": "WakeUp Light", "price": 250, "quantity": 1 } ], "return_url": "https://platform.example.com/return/", "notify_url": "https://platform.example.com/notify/", "total_price": 250, "checkout": false, "escrow: true", "escrow_period: 14", "metadata": { "external_id": "2015486" } } ``` -------------------------------- ### Example Bank Account Creation Response Source: https://guides.onlinepaymentplatform.com/ This response is received after creating a bank account for a merchant. It contains a verification URL that the merchant must use to complete the verification process. The compliance requirement for bank accounts will be updated upon verification. ```json { "uid": "{{bank_account_uid}}", "object": "bank_account", "created": 1554200096, "updated": 1554200096, "verified": null, "verification_url": "https://onlinebetaalplatform.nl/nl/ {{partner_name}}/merchants/{{merchant_uid}}/verificatie/ bankgegevens/{{bank_account_uid}}/7a8d3c308b0739ef96320720017d070533912548", "status": "new", "account": { "account_iban": null }, "bank": { "bic": null }, "reference": null, "return_url": "https://platform.example.com/return", "notify_url": "https://platform.example.com/notify", "is_default": true } ``` -------------------------------- ### Upload File using File Link Source: https://guides.onlinepaymentplatform.com/ Upload the actual file using a POST request to the provided file UID URL. Include the token in the 'x-opp-files-token' header and the file in the 'file' parameter. ```bash POST https://files-sandbox.onlinebetaalplatform.nl/v1/uploads/{{file_uid}} Headers { "x-opp-files-token": "{{token}}" } Parameters { "file": "{{file}}" } ``` -------------------------------- ### Get Refunds for Transaction Source: https://guides.onlinepaymentplatform.com/ Retrieves all refunds associated with a specific transaction. ```APIDOC ## GET /v1/transactions/{{transaction_uid}}/refunds ### Description Retrieves a list of all refunds that are linked to a specific transaction. ### Method GET ### Endpoint /v1/transactions/{{transaction_uid}}/refunds ### Parameters #### Path Parameters - **transaction_uid** (string) - Required - The unique identifier for the transaction. ### Response #### Success Response (200) - Returns a list of refund objects associated with the specified transaction. ``` -------------------------------- ### Merchant Compliance Requirements Source: https://guides.onlinepaymentplatform.com/ Example of merchant compliance status showing the 'contact.phonenumber.required' requirement. ```json "uid": "{{merchant_uid}}", "object": "merchant", ... "compliance": { "level": 400, "status": "unverified", "overview_url": "https://sandbox.onlinebetaalplatform.nl/en/{{partner_slug}}/{{merchant_uid}}/feabfd98b2a9d246a6e33742f92af061059b9f81/overview", "requirements": [ { "type": "contact.phonenumber.required", "status": "unverified", "object_type": "contact_phonenumber", "object_uid": null, "object_url": null, "object_redirect_url": "https://sandbox.onlinebetaalplatform.nl/en/{{partner_slug}}/merchants/{{merchant_uid}}/verifications/phonenumber-form/{{contact_uid}}/feabfd98b2a9d246a6e33742f92af061059b9f81" }] ... ``` -------------------------------- ### UBO Compliance Requirement Source: https://guides.onlinepaymentplatform.com/ Example of merchant compliance status showing the 'ubo.required' compliance requirement. ```json { "uid": "{{merchant_uid}}", "object": "merchant", ... "compliance": { "level": 400, "status": "unverified", "requirements": [ { "type": "ubo.required", "status": "unverified", "object_uid": null, "object_type": "null", "object_url": "https://api-sandbox.onlinebetaalplatform.nl/v1/merchants/...", "object_redirect_url": https://sandbox.onlinebetaalplatform.nl/... } ] }, ... } ``` -------------------------------- ### Get All Settlements Source: https://guides.onlinepaymentplatform.com/ Retrieves a list of all settlements. It can be expanded to include specifications and ordered by the settlement period. ```APIDOC ## GET /v1/settlements ### Description Retrieves a list of all settlements, optionally expanding to include specifications and ordering by period. ### Method GET ### Endpoint https://api-sandbox.onlinebetaalplatform.nl/v1/settlements ### Query Parameters - **expand** (string) - Optional - Use `specifications` to include settlement specifications. - **order** (string) - Optional - Use `-period` to order by the most recent settlement period. ``` -------------------------------- ### Create Mandate Request Source: https://guides.onlinepaymentplatform.com/ Example POST request to create a mandate using the payment method. Ensure all required fields like merchant_uid, mandate_method, mandate_type, mandate_repeat, products, total_price, return_url, and notify_url are included. ```http POST https://api-sandbox.onlinebetaalplatform.nl/v1/mandates { "merchant_uid": "{{merchant_uid}}", "mandate_method": "payment", "mandate_type": "consumer", "mandate_repeat": "subscription", "mandate_amount": 100, "products": [ { "name": "Test product", "price": 2525, "quantity": 1 } ], "total_price": 2525, "return_url": "https://platform.example.com/return/", "notify_url": "https://platform.example.com/notify/" } ``` -------------------------------- ### File Link Creation Response Source: https://guides.onlinepaymentplatform.com/ This is the response received after successfully creating a file link, containing details like the file UID and token. ```json { "uid": "{{file_uid}}", "created": "1606003200", "updated": "1606003200", "expired": "1606004100", "merchant_uid": "{{merchant_uid}}", "object_uid": "{{contact_uid}}", "purpose": "representative_passport", "token": "{{token}}", "url": "https://files-sandbox.onlinebetaalplatform.nl/v1/uploads/{{file_uid}}" } ``` -------------------------------- ### Transaction Status Change Notification Source: https://guides.onlinepaymentplatform.com/ This is an example of a notification received when a transaction's status changes, such as after a refund is processed. ```json { "uid": "{{notification_uid}}", "type": "transaction.status.changed", "created": 1621944238, "object_uid": "{{transaction_uid}}", "object_type": "transaction", "object_url": "https://api-sandbox.onlinebetaalplatform.nl/v1/transactions/{{transaction_uid}}", "verification_hash": "f81fed5c48918d81aac3aaa07ac34c99e126685ff7e77b9fedca244c50255091" } ``` -------------------------------- ### Create File Upload Link Source: https://guides.onlinepaymentplatform.com/ Send a POST request to initiate a file upload. Specify the file's purpose and the associated merchant or object UID. ```http POST https://files-sandbox.onlinebetaalplatform.nl/v1/uploads { "purpose": "organization_structure", "merchant_uid": "{{merchant_uid}}", "object_uid": "{{merchant_uid}}" } ``` -------------------------------- ### Get Merchant Transactions Source: https://guides.onlinepaymentplatform.com/ Retrieves a list of transactions for a specific merchant, with options to filter by status and date range. ```APIDOC ## GET /v1/merchants/{{merchant_uid}}/transactions ### Description Retrieves a list of transactions for a specified merchant. Allows filtering by transaction status and completion date. ### Method GET ### Endpoint /v1/merchants/{{merchant_uid}}/transactions ### Parameters #### Path Parameters - **merchant_uid** (string) - Required - The unique identifier for the merchant. #### Query Parameters - **filter[0][name]** (string) - Required - The name of the filter field, e.g., "status" or "date_completed". - **filter[0][operand]** (string) - Required - The operand for the filter, e.g., "in" or "between". - **filter[0][value]** (string) - Required - The value(s) for the filter, e.g., "completed,reserved" or a date range. - **filter[1][name]** (string) - Optional - The name of a second filter field. - **filter[1][operand]** (string) - Optional - The operand for the second filter. - **filter[1][value]** (string) - Optional - The value(s) for the second filter. ### Response #### Success Response (200) - Returns a list of transaction objects for the specified merchant, filtered according to the provided parameters. ### Request Example ``` GET https://api-sandbox.onlinebetaalplatform.nl/v1/merchants/{{merchant_uid}}/transactions?filter[0][name]=status&filter[0][operand]=in&filter[0][value]=completed,reserved ``` ### Request Example with Date Filter ``` GET https://api-sandbox.onlinebetaalplatform.nl/v1/merchants/{{merchant_uid}}/transactions?filter[0][name]=status&filter[0][operand]=in&filter[0][value]=completed,reserved&filter[1][name]=date_completed&filter[1][operand]=between&filter[1][value]=2020-11-01 00:00:00, 2020-11-30 23:59:59 ``` ``` -------------------------------- ### Get Transactions by Refund UID Source: https://guides.onlinepaymentplatform.com/ Retrieves transaction details when a refund does not match a transaction in the same specification, using the refund UID. ```APIDOC ## GET /v1/transactions ### Description Retrieves transaction details, specifically useful for finding the transaction associated with a refund UID when the refund does not match a transaction within the same specification. ### Method GET ### Endpoint https://api-sandbox.onlinebetaalplatform.nl/v1/transactions ### Query Parameters - **filter[refund_uid]** (string) - Required - The UID of the refund to find the associated transaction. ``` -------------------------------- ### Get Merchant Transactions by Status Source: https://guides.onlinepaymentplatform.com/ Retrieve all transactions for a merchant that have a 'completed' or 'reserved' status. This filter can be expanded to include other statuses. ```http GET https://api-sandbox.onlinebetaalplatform.nl/v1/merchants/{{merchant_uid}}/transactions?filter[0][name]=status&filter[0][operand]=in&filter[0][value]=completed,reserved ``` -------------------------------- ### Merchant Profile with Bank Account Information Source: https://guides.onlinepaymentplatform.com/ Example JSON response showing the structure of a merchant profile, including nested bank account details like masked IBAN and account name. ```JSON { "livemode": true, "uid": "{{merchant_uid}}", "object": "merchant", ... "profiles": [ { "uid": "{{profile_uid}}", "object": "profile", "created": 1602071644, "updated": 1602071769, ... }, "bank_account": { "uid": "{{bank_account_uid}}", "object": "bank_account", ... "status": "approved", "account": { "account_iban": "NL12***********123", "account_name": "John Tester" }, "bank": { "bic": "{{BIC}}" }, ... }, ... } ], ... } ``` -------------------------------- ### Create Refund Request Source: https://guides.onlinepaymentplatform.com/ Use this POST request to initiate a refund for a specific transaction. Include the refund amount and a description. ```http POST https://api-sandbox.onlinebetaalplatform.nl/v1/transactions/{{transaction_uid}}/refunds { "amount": 6750, "payout_description": "Invoice 2021012 not satisfied" } ``` -------------------------------- ### Merchant Compliance Requirements Source: https://guides.onlinepaymentplatform.com/ Example JSON structure showing merchant compliance details, including the 'source_of_funds.required' type and its associated redirect URL. ```json { "uid": "{{merchant_uid}}", "object": "merchant", ... "compliance": { "level": 200, "status": "unverified", "overview_url": "https://sandbox.onlinebetaalplatform.nl/en/{{partner_slug}}/{{merchant_uid}}/15c0bdb17283475ec5f274cad0a2a0245dda11ff/overview", "requirements": [ { "type": "source_of_funds.required", "status": "unverified", "object_type": "source_of_fund", "object_uid": "{{sof_uid}}", "object_url": null, "object_redirect_url": "https://sandbox.onlinebetaalplatform.nl/en/{{partner_slug}}/merchants/{{merchant_uid}}/verifications/source-of-funds/{{sof_uid}}/5fa9a435b8b66267aaddb2db48dfe9a74b7e544f" } ] }, ... } ``` -------------------------------- ### Get Settlement Specification Rows Source: https://guides.onlinepaymentplatform.com/ Retrieves an overview of every event within a specific settlement specification, identified by settlement and specification UIDs. ```APIDOC ## GET /v1/settlements/{{settlement_uid}}/specifications/{{specificiation_uid}}/rows ### Description Retrieves a list of all settlement specification rows for a given settlement and specification UID. This includes details about each event within the specification. ### Method GET ### Endpoint https://api-sandbox.onlinebetaalplatform.nl/v1/settlements/{{settlement_uid}}/specifications/{{specificiation_uid}}/rows ### Response #### Success Response (200) - **data** (array) - Contains a list of settlement row objects. - **type** (string) - The type of the event (e.g., `transaction`, `refund`, `chargeback`, `mandate`). - **reference** (string) - The object UID (e.g., the transaction_uid). - **fees** (object) - Contains fee information. - **total_partner_fee** (integer) - The fee paid by the partner to OPP. ``` -------------------------------- ### Seamless Bank Integration URL for iDEAL Source: https://guides.onlinepaymentplatform.com/ This URL demonstrates how to initiate a seamless bank verification for iDEAL payments by appending payment_method and issuer parameters to the base verification URL. This bypasses the standard OPP verification screen. ```url https://onlinebetaalplatform.nl/nl/{{partner}}/merchants/{{merchant_uid}}/verificatie/bankgegevens/{{bank_account_uid}}/{{hash}}?payment_method=ideal&issuer=INGBNL2A ``` -------------------------------- ### Retrieve Settlement Specification Rows Source: https://guides.onlinepaymentplatform.com/ Use this API call to get an overview of all events within a settlement specification, identified by settlement_uid and specification_uid. ```http GET https://api-sandbox.onlinebetaalplatform.nl/v1/merchants/{{merchant_uid}}/settlements/{{settlement_uid}}/specifications/{{specificiation_uid}}/rows ``` -------------------------------- ### Create File Link Source: https://guides.onlinepaymentplatform.com/ Initiates a file upload process by creating a one-time file link. This is the first step in using the Files API to send documents for KYC verification. ```APIDOC ## POST /v1/uploads ### Description Creates a one-time file link for uploading documents. Specify the purpose and the UID for the object the file is associated with. ### Method POST ### Endpoint https://files-sandbox.onlinebetaalplatform.nl/v1/uploads ### Parameters #### Request Body - **purpose** (string) - Required - The purpose of the file, e.g., 'bank_account_bank_statement'. - **merchant_uid** (string) - Required - The UID of the merchant for whom the file is uploaded. - **object_uid** (string) - Required - The UID of the object the file is associated with (e.g., bank account UID). ### Response #### Success Response (200) - **uid** (string) - The unique identifier for the uploaded file. - **created** (string) - Timestamp when the file link was created. - **updated** (string) - Timestamp when the file link was last updated. - **expired** (string) - Timestamp when the file link expires. - **merchant_uid** (string) - The UID of the merchant. - **object_uid** (string) - The UID of the associated object. - **purpose** (string) - The purpose of the file. - **token** (string) - A token required for uploading the file. - **url** (string) - The URL for uploading the file. ### Response Example { "uid": "{{file_uid}}", "created": "1606003200", "updated": "1606003200", "expired": "1606004100", "merchant_uid": "{{merchant_uid}}", "object_uid": "{{bank_account_uid}}", "purpose": "bank_account_bank_statement", "token": "{{token}}", "url": "https://files-sandbox.onlinebetaalplatform.nl/v1/uploads/{{file_uid}}" } ``` -------------------------------- ### Get All Merchant Settlements Source: https://guides.onlinepaymentplatform.com/ Retrieves a list of all previous settlements for a merchant, ordered by period. This call allows for reviewing historical settlement data. ```APIDOC ## GET /v1/merchants/{{merchant_uid}}/settlements ### Description Retrieves a list of all past settlements for a given merchant, ordered by the settlement period in descending order. This endpoint is useful for accessing historical financial data. ### Method GET ### Endpoint /v1/merchants/{{merchant_uid}}/settlements ### Query Parameters - **expand[]** (string) - Optional - Expands related objects. Use 'specifications' to include detailed specification data for each settlement. - **order[]** (string) - Optional - Specifies the order for sorting results. Use '-period' to sort by settlement period in descending order. ### Response #### Success Response (200) Returns a list of settlement objects, each containing details such as `uid`, `period_start`, `period_end`, `total_number_of_transactions`, and `amount_payable`. The list is ordered by `period` in descending order. ### Response Example ```json { "object": "list", "url": "/v1/merchants/{{merchant_uid}}/settlements", "has_more": true, "data": [ { "uid": "{{settlement_uid_latest}}", "object": "settlement", "period_start": 1606258800, "period_end": 1606345199, "total_number_of_transactions": 2, "amount_payable": 80, "specifications": [ { "uid": "{{specification_uid}}", "object": "specification", "amount_payable": 80 } ] }, { "uid": "{{settlement_uid_previous}}", "object": "settlement", "period_start": 1605656400, "period_end": 1605742799, "total_number_of_transactions": 5, "amount_payable": 150, "specifications": [ { "uid": "{{specification_uid_prev}}", "object": "specification", "amount_payable": 150 } ] } ] } ``` ```