# List stores Source: https://docs.dintero.com/api-reference/account-stores/aid_account_management_stores_get /mintlify-docs/openapi/spec-management-auth.yaml get /accounts/{aid}/stores Get details about the account stores scopes: - admin:accounts - read:accounts # Create store Source: https://docs.dintero.com/api-reference/account-stores/aid_account_management_stores_post /mintlify-docs/openapi/spec-management-auth.yaml post /accounts/{aid}/stores Create a store scopes: - admin:accounts - write:accounts # Update store configuration Source: https://docs.dintero.com/api-reference/account-stores/aid_account_management_stores_sid_configuration_patch /mintlify-docs/openapi/spec-management-auth.yaml patch /accounts/{aid}/stores/{store_id}/configuration Update store configuration scopes: - admin:accounts - write:accounts # Delete store Source: https://docs.dintero.com/api-reference/account-stores/aid_account_management_stores_sid_delete /mintlify-docs/openapi/spec-management-auth.yaml delete /accounts/{aid}/stores/{store_id} Delete single store scopes: - admin:accounts - write:accounts # Store details Source: https://docs.dintero.com/api-reference/account-stores/aid_account_management_stores_sid_get /mintlify-docs/openapi/spec-management-auth.yaml get /accounts/{aid}/stores/{store_id} Get store details scopes: - admin:accounts - read:accounts # Update store Source: https://docs.dintero.com/api-reference/account-stores/aid_account_management_stores_sid_put /mintlify-docs/openapi/spec-management-auth.yaml put /accounts/{aid}/stores/{store_id} Update store properties scopes: - admin:accounts - write:accounts # List terminals Source: https://docs.dintero.com/api-reference/account-terminals/aid_account_management_terminals_get /mintlify-docs/openapi/spec-management-auth.yaml get /accounts/{aid}/terminals List terminals for the account. Filter by store, payout destination, status, device model, or serial number. scopes: - admin:accounts - read:accounts # Create terminal Source: https://docs.dintero.com/api-reference/account-terminals/aid_account_management_terminals_post /mintlify-docs/openapi/spec-management-auth.yaml post /accounts/{aid}/terminals Register a physical payment terminal and associate it with a store. scopes: - admin:accounts - write:accounts # Delete terminal Source: https://docs.dintero.com/api-reference/account-terminals/aid_account_management_terminals_termid_delete /mintlify-docs/openapi/spec-management-auth.yaml delete /accounts/{aid}/terminals/{terminal_id} Remove a terminal from the account. scopes: - admin:accounts - write:accounts # Terminal details Source: https://docs.dintero.com/api-reference/account-terminals/aid_account_management_terminals_termid_get /mintlify-docs/openapi/spec-management-auth.yaml get /accounts/{aid}/terminals/{terminal_id} Get details for a single terminal. scopes: - admin:accounts - read:accounts # Search external postal place Source: https://docs.dintero.com/api-reference/addresses/aid_search_external_postal_place /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/search/external/postal_place/{country}/{postal_code} Get postal place by country and postal code. scopes: - public # Validate address Source: https://docs.dintero.com/api-reference/addresses/aid_search_external_validate_address /mintlify-docs/openapi/spec-customers.yaml post /accounts/{aid}/search/external/address/{country}/validate Validate the given address and return close matching alternative suggestions if the provided address was most likely wrong. scopes: - public # List payment approvals Source: https://docs.dintero.com/api-reference/approvals/aid_management_settings_approvals_payment_get /mintlify-docs/openapi/spec-management-auth.yaml get /accounts/{aid}/management/settings/approvals/payments scopes: - admin:accounts - read:accounts # New payment approval Source: https://docs.dintero.com/api-reference/approvals/aid_management_settings_approvals_payment_post /mintlify-docs/openapi/spec-management-auth.yaml post /accounts/{aid}/management/settings/approvals/payments Initiate an application for using Dintero payments . The application will contain a link to an URL where the signatory of the account will need to finish submission of the case contract and sign it. Dintero will perform a KYC, AML and bank ownership check before the application `case_status`will be updated to `ACTIVE`. Once the application is approved we will set up your account for using Dintero payments. Note that not all payment methods are available in all countries, and that for some payments methods some processing time must be expected before you can start accepting payments. scopes: - admin:accounts - write:accounts - write:accounts:/management/settings/approvals # List seller approvals Source: https://docs.dintero.com/api-reference/approvals/aid_management_settings_approvals_payout_destinations_get /mintlify-docs/openapi/spec-management-auth.yaml get /accounts/{aid}/management/settings/approvals/payout-destinations scopes: - admin:accounts - read:accounts # New seller approval Source: https://docs.dintero.com/api-reference/approvals/aid_management_settings_approvals_payout_destinations_post /mintlify-docs/openapi/spec-management-auth.yaml post /accounts/{aid}/management/settings/approvals/payout-destinations Initiate an application for a new seller for Dintero Payout with split-payment. The application will contain a link to an URL where the signatory of the seller will need to finish submission of the case contract and sign it. Dintero will perform a KYC, AML and bank ownership check on the seller before the application `case_status`will be updated to `ACTIVE`. Once the application is approved, the payout destination will be added automatically to the Dintero Payout service. scopes: - admin:accounts - write:accounts - write:accounts:/management/settings/approvals --- For testing purposes it is possible to auto-approve or decline a new seller by adding one of the following values to `payout_destination_description`: - "AUTO_APPROVE": Approves the case automatically, the case status will be set to `ACTIVE` - "AUTO_DECLINE": Declines the case automatically, the case status will be set to `DECLINED` - "AUTO_WAITING_FOR_SIGNATURE": Leaves the signature check for the case, the case status will be set to `WAITING_FOR_SIGNATURE` NOTE: This behavior is only available in test mode, i.e. with an `aid` prefixed with "T". # Get Token Source: https://docs.dintero.com/api-reference/authenticate/aid_auths_oauth_token_post /mintlify-docs/openapi/spec-payments-v2.yaml post /accounts/{oid}/auth/token Use this endpoint to directly request an access_token ### Client Access Token Use HTTP Basic authentication scheme for authenticating grant_type `client_credentials`, use client_id/client_secret as user/password. ### Code/Password Token Use HTTP Bearer authentication scheme for authenticating grant_type `authorization_code` or `password`, where the Bearer value must be a JWT toke with access to the token endpoint. ### Account User Token Use HTTP Bearer authentication scheme for authenticating grant_type `account_user_token`, where the Bearer value must be a account user JWT token. > Use ID token as Bearer toke if the user was authenticated > externally. The ID must include a `email` claim that > identifies the account user. ### Refresh Token Use HTTP Bearer authentication scheme for authenticating grant_type `refresh_token` where the Bearer value **must** be an Access Token for the clients that was used to create the Refresh Token. ### Multi-factor authentication (MFA) When a request is made to the endpoint to get an access token, normally you either get an error, or you get an access token. However, when the MFA is enabled, the endpoint may return a new error with `error.code: mfa_required`. When an `mfa_required` error is returned, the client must perform a `challenge`. This is done by sending a request to the [auth/mfa/challenge](/management-auth-api/challenge/aid_auth_mfa_challenge_post) endpoint To verify MFA using an OOB challenge, the client must make a request to this endpoint with `grant_type=mfa-oob`. Include the `oob_code` you received from the challenge response, as well as the `mfa_token` you received as part of mfa_required error. scopes: - admin:accounts - write:accounts - write:accounts:/auth/users - write:accounts:/auth/users/no-mfa # Delete campagn Source: https://docs.dintero.com/api-reference/campaigns/aid_discounts_campaigns_campaign_id_delete /mintlify-docs/openapi/spec-discounts.yaml delete /accounts/{aid}/discounts/campaigns/{campaign_id} Delete a campagn. Deleting a campagn does not affect its discount rules. i.e. active campagn rules will continue to be active after deleting the campagn scopes: - admin:discounts - write:discounts # Campaign details Source: https://docs.dintero.com/api-reference/campaigns/aid_discounts_campaigns_campaign_id_get /mintlify-docs/openapi/spec-discounts.yaml get /accounts/{aid}/discounts/campaigns/{campaign_id} Get more details about a campaign scopes: - admin:discounts - read:discounts # Update Campaign Source: https://docs.dintero.com/api-reference/campaigns/aid_discounts_campaigns_campaign_id_put /mintlify-docs/openapi/spec-discounts.yaml put /accounts/{aid}/discounts/campaigns/{campaign_id} Update campaign details. Undeletes a deleted campaign. scopes: - admin:discounts - write:discounts # Campaigns collection Source: https://docs.dintero.com/api-reference/campaigns/aid_discounts_campaigns_get /mintlify-docs/openapi/spec-discounts.yaml get /accounts/{aid}/discounts/campaigns List campaigns scopes: - admin:discounts - read:discounts # Create new campaign Source: https://docs.dintero.com/api-reference/campaigns/aid_discounts_campaigns_post /mintlify-docs/openapi/spec-discounts.yaml post /accounts/{aid}/discounts/campaigns Create a new campaign to group discount rules scopes: - admin:discounts - write:discounts # List card tokens Source: https://docs.dintero.com/api-reference/card-tokens/card_tokens_get /mintlify-docs/openapi/spec-payments-v2.yaml get /accounts/{aid}/payments/card-tokens Use query parameters to filter the search. To list all Transactions related to a Card Token, use [GET /v1/transactions](/api-reference/transactions/transactions_get) with query `?search={token_id}`. scopes: - admin:checkout # Delete card token Source: https://docs.dintero.com/api-reference/card-tokens/card_tokens_token_id_delete /mintlify-docs/openapi/spec-payments-v2.yaml delete /accounts/{aid}/payments/card-tokens/{token_id} scopes: - admin:checkout # Get card token Source: https://docs.dintero.com/api-reference/card-tokens/card_tokens_token_id_get /mintlify-docs/openapi/spec-payments-v2.yaml get /accounts/{aid}/payments/card-tokens/{token_id} scopes: - admin:checkout # Batch create cards Source: https://docs.dintero.com/api-reference/cards/aid_cards_batch_post /mintlify-docs/openapi/spec-wallets.yaml post /accounts/{aid}/wallets/cards/batch Batch create cards. The cards created from the batch operation will all have zero balance and status `inactive`. They all need to be activated before use. scopes: - admin:wallets - write:wallets # Activate card Source: https://docs.dintero.com/api-reference/cards/aid_cards_cardid_activate_post /mintlify-docs/openapi/spec-wallets.yaml post /accounts/{aid}/wallets/cards/{card_id}/activate Activate a card with status `inactive` scopes: - admin:wallets - write:wallets - write:wallets:/activate # Retrieve card by card ID Source: https://docs.dintero.com/api-reference/cards/aid_cards_cardid_get /mintlify-docs/openapi/spec-wallets.yaml get /accounts/{aid}/wallets/cards/{card_id} Get all details about a card scopes: - admin:wallets - read:wallets # Rotate Pin Source: https://docs.dintero.com/api-reference/cards/aid_cards_cardid_rotate_pin_post /mintlify-docs/openapi/spec-wallets.yaml post /accounts/{aid}/wallets/cards/{card_id}/rotate-pin Rotate or add new pin to card scopes: - admin:wallets - write:wallets # Create a token for the card Source: https://docs.dintero.com/api-reference/cards/aid_cards_cardid_token_post /mintlify-docs/openapi/spec-wallets.yaml post /accounts/{aid}/wallets/cards/{card_id}/tokens Create a temporary `token` (also referred as Card Code) for the card, an temporary alias that must be used when when creating a drawdown transaction The token can be stored in a barcode to allow use of virtuell card in purchase in POS or webstore scopes: - admin:wallets - write:wallets # Get cards Source: https://docs.dintero.com/api-reference/cards/aid_cards_get /mintlify-docs/openapi/spec-wallets.yaml get /accounts/{aid}/wallets/cards Get all cards for an account scopes: - admin:wallets - read:wallets # Create a card Source: https://docs.dintero.com/api-reference/cards/aid_cards_post /mintlify-docs/openapi/spec-wallets.yaml post /accounts/{aid}/wallets/cards Create a new card scopes: - admin:wallets - write:wallets # Retrieve card by Token Source: https://docs.dintero.com/api-reference/cards/aid_cards_token_post /mintlify-docs/openapi/spec-wallets.yaml post /accounts/{aid}/wallets/info Get details about a card, including the current balance and available funds. No details will be returned for expired tokens scopes: - admin:wallets - write:wallets - write:wallets:/info # Clients collection Source: https://docs.dintero.com/api-reference/clients/aid_auth_clients_get /mintlify-docs/openapi/spec-management-auth.yaml get /accounts/{oid}/auth/clients Retrieve a list of all client applications scopes: - admin:accounts - read:accounts # Create Client Source: https://docs.dintero.com/api-reference/clients/aid_auth_clients_post /mintlify-docs/openapi/spec-management-auth.yaml post /accounts/{oid}/auth/clients Creates a new client application. scopes: - admin:accounts - write:accounts # Delete Client Source: https://docs.dintero.com/api-reference/clients/aid_auths_clients_id_delete /mintlify-docs/openapi/spec-management-auth.yaml delete /accounts/{oid}/auth/clients/{id} Deletes a client and all its related assets scopes: - admin:accounts - write:accounts # Get Client Source: https://docs.dintero.com/api-reference/clients/aid_auths_clients_id_get /mintlify-docs/openapi/spec-management-auth.yaml get /accounts/{oid}/auth/clients/{id} Retrieves a client by its id. scopes: - admin:accounts - read:accounts # Update Client Source: https://docs.dintero.com/api-reference/clients/aid_auths_clients_id_patch /mintlify-docs/openapi/spec-management-auth.yaml patch /accounts/{oid}/auth/clients/{id} Update client details scopes: - admin:accounts - read:accounts # Rotate a client secret. Source: https://docs.dintero.com/api-reference/clients/aid_auths_clients_id_rotate_post /mintlify-docs/openapi/spec-management-auth.yaml post /accounts/{oid}/auth/clients/{id}/rotate-secret Rotate a client secret. scopes: - admin:accounts - write:accounts # Customer email/phone_number Status Source: https://docs.dintero.com/api-reference/communication/aid_customers_cid_verify_get /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/customers/users/{customer_id}/communication Get the status of customer email / phone_number communication scopes: - admin:customers - read:customers - user:customers # Verify Customer email/phone_number Source: https://docs.dintero.com/api-reference/communication/aid_customers_cid_verify_post /mintlify-docs/openapi/spec-customers.yaml post /accounts/{aid}/customers/users/{customer_id}/communication/{operation}/{field} Verify customer email/phone_number field. Consist of to steps: - send verification code to the customer (sms or email) - verify the email/phone_number by posting verification code sent to customer scopes: - admin:customers - write:customers - user:customers # Get departments Source: https://docs.dintero.com/api-reference/company/aid_company_departments_get /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/customers/company/departments List all departments register by company customers scopes: - admin:customers - read:customers - public:customers # Customer Receipts collection Source: https://docs.dintero.com/api-reference/customer-receipts/aid_receipts_customers_cid_get /mintlify-docs/openapi/spec-receipts.yaml get /accounts/{aid}/receipts/customers/{customer_id} Get the receipts for a customer scopes: - admin:receipts - read:receipts - user:receipts # Change customer_id Source: https://docs.dintero.com/api-reference/customer-receipts/aid_receipts_customers_cid_rid_change_customer_id_post /mintlify-docs/openapi/spec-receipts.yaml post /accounts/{aid}/receipts/customers/{customer_id}/{receipt_id}/change_customer_id Update customer_id for an receipt, i.e. move the receipt to a new customer > **warning**: The receipt will no longer be accessible > by the previous customer_id Following extra_info field will be added to the receipt when customer_id is changed using key - `dintero.receipts.change_customer_id.{timestamp}.{hash}` The content of the extra_info will be a JSON string containing: - created_at - created_by - old - new scopes: - admin:receipts # Customer receipt details Source: https://docs.dintero.com/api-reference/customer-receipts/aid_receipts_customers_cid_rid_get /mintlify-docs/openapi/spec-receipts.yaml get /accounts/{aid}/receipts/customers/{customer_id}/{receipt_id} Get a customer receipt scopes: - admin:receipts - read:receipts - user:receipts # Orders collection Source: https://docs.dintero.com/api-reference/customerorder/aid_customers_cid_orders_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/customers/{customer_id}/orders Retrieve a list of orders belonging to a customer user scopes: - user:shopping - admin:shopping - read:shopping # Get Order Source: https://docs.dintero.com/api-reference/customerorder/aid_customers_cid_orders_id_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/customers/{customer_id}/orders/{order_id} Retrieve Order details for an customer scopes: - user:shopping - admin:shopping - read:shopping # Get customer card details Source: https://docs.dintero.com/api-reference/customers/aid_customers_cid_card_cid_get /mintlify-docs/openapi/spec-wallets.yaml get /accounts/{aid}/wallets/customers/{customer_id}/cards/{card_id} Get all details about a customer card scopes: - admin:wallets - read:wallets - user:wallets # List customer cards Source: https://docs.dintero.com/api-reference/customers/aid_customers_cid_cards_get /mintlify-docs/openapi/spec-wallets.yaml get /accounts/{aid}/wallets/customers/{customer_id}/cards Get the cards active for a customer scopes: - admin:wallets - read:wallets - user:wallets # Complete a draft order Source: https://docs.dintero.com/api-reference/draft/aid_draft_orders_id_complete_put /mintlify-docs/openapi/spec-orders.yaml put /accounts/{aid}/shopping/draft_orders/{id}/complete Use this resource to transition the draft order into an Order. A draft with multiple sales locations will transition into one order per sales location. scopes: - admin:shopping - write:shopping # Get draft order Source: https://docs.dintero.com/api-reference/draft/aid_draft_orders_id_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/draft_orders/{id} Get draft order. scopes: - admin:shopping - read:shopping # Update draft order Source: https://docs.dintero.com/api-reference/draft/aid_draft_orders_id_put /mintlify-docs/openapi/spec-orders.yaml put /accounts/{aid}/shopping/draft_orders/{id} Updates a draft order. scopes: - admin:shopping - write:shopping # Create a draft order Source: https://docs.dintero.com/api-reference/draft/aid_draft_orders_post /mintlify-docs/openapi/spec-orders.yaml post /accounts/{aid}/shopping/draft_orders Use this resource to create orders in draft state. scopes: - admin:shopping - write:shopping # Remove item from draft Source: https://docs.dintero.com/api-reference/draftitems/aid_draft_orders_id_items_line_id_delete /mintlify-docs/openapi/spec-orders.yaml delete /accounts/{aid}/shopping/draft_orders/{id}/items/{line_id} Remove a item line from the draft scopes: - admin:shopping - write:shopping # Update item in draft Source: https://docs.dintero.com/api-reference/draftitems/aid_draft_orders_id_items_line_id_put /mintlify-docs/openapi/spec-orders.yaml put /accounts/{aid}/shopping/draft_orders/{id}/items/{line_id} Update item in draft scopes: - admin:shopping - write:shopping # Add item to draft Source: https://docs.dintero.com/api-reference/draftitems/aid_draft_orders_id_items_post /mintlify-docs/openapi/spec-orders.yaml post /accounts/{aid}/shopping/draft_orders/{id}/items Updates a draft with new item scopes: - admin:shopping - write:shopping # checkout_authorization Source: https://docs.dintero.com/api-reference/example-checkout-events/example_checkout_authorization_event /mintlify-docs/openapi/spec-webhooks.yaml post /examples/checkout_authorization Event is pushed to subscribers when a transaction was authorized or failed authorization > The deliveries match what is delivered to the session callback_url > with `report_error=true` set # checkout_token_* Source: https://docs.dintero.com/api-reference/example-checkout-events/example_checkout_token_event /mintlify-docs/openapi/spec-webhooks.yaml post /examples/checkout_token Event is pushed to subscribers when the checkout token is created, \ updated or deleted # checkout_transaction Source: https://docs.dintero.com/api-reference/example-checkout-events/example_checkout_transaction_event /mintlify-docs/openapi/spec-webhooks.yaml post /examples/checkout_transaction Event is pushed to subscribers when the checkout transaction is created or updated # approval_payout_destination_delete Source: https://docs.dintero.com/api-reference/example-management-auth-events/example_approval_payout_destination_update_delete /mintlify-docs/openapi/spec-webhooks.yaml post /examples/approval_payout_destination_delete Event is pushed to subscribers when the approval is archived # approval_payout_destination_update Source: https://docs.dintero.com/api-reference/example-management-auth-events/example_approval_payout_destination_update_event /mintlify-docs/openapi/spec-webhooks.yaml post /examples/approval_payout_destination_update Event is pushed to subscribers when the `case_status` of a seller approval changes # cdd_case_update Source: https://docs.dintero.com/api-reference/example-management-auth-events/example_cdd_case_update_event /mintlify-docs/openapi/spec-webhooks.yaml post /examples/cdd_case_update Event is pushed to subscribers when a CDD case changes status. Note that the event will only include one of `payout_destination_case` or `payment_case` never both # Discount codes Update Source: https://docs.dintero.com/api-reference/example-session-callbacks/example_discount_codes_callback_url /mintlify-docs/openapi/spec-payments.yaml post /examples/discount_code_callback_url This API endpoint on the merchant side allows Dintero to get shipping_options and order with discounts based on the provided session that had its `order.discount_codes` updated. # Session Callback Source: https://docs.dintero.com/api-reference/example-session-callbacks/example_session_post_callback_url /mintlify-docs/openapi/spec-payments.yaml post /examples/session_url_callback This API endpoint on the merchant side allows Dintero to notify the `session.url.callback_url` when the payment is completed > POST is only use if `callback_url` includes `method=POST` query parameter. > The `body` and `transaction_id` is optional if `report_error=true` # Address Update Source: https://docs.dintero.com/api-reference/example-session-callbacks/example_shipping_address_callback_url /mintlify-docs/openapi/spec-payments.yaml post /examples/shipping_address_callback_url This API endpoint on the merchant side allows Dintero to get shipping options based on the provided session after an address update # Generate report from reportparams Source: https://docs.dintero.com/api-reference/generate-insight-report/aid_insight_service_generate_report /mintlify-docs/openapi/spec-insight.yaml post /accounts/{aid}/insight/generate-report Create a report from the report params, this bypasses the normal schedule report setup and triggers report generation instantly The "from" and "to" parameters needs to be populated with values matching the provided schedule NB! For internal use only! **scopes**: - admin:insight - write:insight # Client grants collection Source: https://docs.dintero.com/api-reference/grants/aid_auths_client_grants_get /mintlify-docs/openapi/spec-management-auth.yaml get /accounts/{oid}/auth/client-grants Manage your Client Grants (also called Client Credentials Grants). Using Client Grants, your Client can request an access token using its credentials (a Client ID and a Client Secret). The access token then represents your Client during API calls. Use the Grant type to limit how the grant can be used when requesting an access token. A Grant with type `password` can only be used when requesting an access token with grant_type set to `password`. scopes: - admin:accounts - read:accounts # Delete client grant Source: https://docs.dintero.com/api-reference/grants/aid_auths_client_grants_id_delete /mintlify-docs/openapi/spec-management-auth.yaml delete /accounts/{oid}/auth/client-grants/{id} scopes: - admin:accounts - write:accounts # Create client grant Source: https://docs.dintero.com/api-reference/grants/aid_auths_client_grants_post /mintlify-docs/openapi/spec-management-auth.yaml post /accounts/{oid}/auth/client-grants scopes: - admin:accounts - write:accounts # List checkout kpis Source: https://docs.dintero.com/api-reference/kpi/api_insight_checkout_kpis_get /mintlify-docs/openapi/spec-insight.yaml get /accounts/{aid}/insight/kpi/checkout Get a list of kpis where the transactiosn used is in the aggregations are transactions from "event_created_at_gte", until now. However, transactions from the "current" interval are not included.\ E.g if week is provided as interval, then no transactions from the current week are included. This is true for day and month intervals aswell. Scopes: - read:insight - admin:insight **deprecated** 2025-05-20 # Checkout transaction event KPIs Source: https://docs.dintero.com/api-reference/kpi/api_insight_checkout_transactions_events_kpis_get /mintlify-docs/openapi/spec-insight.yaml get /accounts/{aid}/insight/kpi/checkout-transaction-events Get a list of KPIs where the result is the aggregation of the specified event type given provided interval Scopes: - read:insight - admin:insight # Checkout transaction status KPIs Source: https://docs.dintero.com/api-reference/kpi/api_insight_checkout_transactions_status_kpis_get /mintlify-docs/openapi/spec-insight.yaml get /accounts/{aid}/insight/kpi/checkout-transaction-status Get a list of KPIs where the result is the aggregation of transactions where that match provided status Scopes: - read:insight - admin:insight # Delete location Source: https://docs.dintero.com/api-reference/locations/aid_location_lid_delete /mintlify-docs/openapi/spec-customers.yaml delete /accounts/{aid}/locations/{lid} Delete single location scopes: - admin:locations - write:locations # Update Sales location Source: https://docs.dintero.com/api-reference/locations/aid_location_lid_put /mintlify-docs/openapi/spec-customers.yaml put /accounts/{aid}/locations/{lid} Update location properties scopes: - admin:locations - write:locations # Create new sales location Source: https://docs.dintero.com/api-reference/locations/aid_location_post /mintlify-docs/openapi/spec-customers.yaml post /accounts/{aid}/locations Create a sales location scopes: - admin:locations - write:locations # Locations collection Source: https://docs.dintero.com/api-reference/locations/aid_locations_get /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/locations Get all sales locations, the starting_after have to be set to location_id scopes: - admin:locations - read:locations # Location details Source: https://docs.dintero.com/api-reference/locations/aid_locations_lid_get /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/locations/{lid} Get single sales location scopes: - admin:locations - read:locations # Get Order Source: https://docs.dintero.com/api-reference/order/aid_orders_id_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/orders/{order_id} Retrieve Order details scopes: - admin:shopping - read:shopping # Put Order Source: https://docs.dintero.com/api-reference/order/aid_orders_id_put /mintlify-docs/openapi/spec-orders.yaml put /accounts/{aid}/shopping/orders/{order_id} Update an order scopes: - admin:shopping - read:shopping # Get Authorization details Source: https://docs.dintero.com/api-reference/orderauthorizations/aid_orders_id_authorization_id_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/orders/{order_id}/authorizations/{authorization_id} Retrieve details about a authorization scopes: - admin:shopping - read:shopping # Create an authorization Source: https://docs.dintero.com/api-reference/orderauthorizations/aid_orders_id_authorization_post /mintlify-docs/openapi/spec-orders.yaml post /accounts/{aid}/shopping/orders/{order_id}/authorizations Create a authorization for an order scopes: - admin:shopping - write:shopping > An authorization event will be added to the order # Get Cancellation details Source: https://docs.dintero.com/api-reference/ordercancellations/aid_orders_id_cancellation_id_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/orders/{order_id}/cancellations/{cancellation_id} Retrieve details about a cancellation scopes: - admin:shopping - read:shopping # Create an cancellation Source: https://docs.dintero.com/api-reference/ordercancellations/aid_orders_id_cancellation_post /mintlify-docs/openapi/spec-orders.yaml post /accounts/{aid}/shopping/orders/{order_id}/cancellations Create a cancellation for an order scopes: - admin:shopping - write:shopping > An cancellation event will be added to the order # Create a capture Source: https://docs.dintero.com/api-reference/ordercaptures/aid_orders_id_capture_post /mintlify-docs/openapi/spec-orders.yaml post /accounts/{aid}/shopping/orders/{order_id}/captures Create a capture for an order scopes: - admin:shopping - write:shopping > A capture event will be added to the order # Get Capture details Source: https://docs.dintero.com/api-reference/ordercaptures/aid_orders_id_captures_id_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/orders/{order_id}/captures/{capture_id} Retrieve details about a capture scopes: - admin:shopping - read:shopping # Delete an order comment Source: https://docs.dintero.com/api-reference/ordercomments/aid_orders_id_comments_comment_id_delete /mintlify-docs/openapi/spec-orders.yaml delete /accounts/{aid}/shopping/orders/{order_id}/comments/{comment_id} Delete an order comment scopes: - admin:shopping - write:shopping # Create an order comment Source: https://docs.dintero.com/api-reference/ordercomments/aid_orders_id_comments_post /mintlify-docs/openapi/spec-orders.yaml post /accounts/{aid}/shopping/orders/{order_id}/comments Create a new order comment scopes: - admin:shopping - write:shopping # Create an order event Source: https://docs.dintero.com/api-reference/orderevents/aid_orders_id_events_post /mintlify-docs/openapi/spec-orders.yaml post /accounts/{aid}/shopping/orders/{order_id}/events Create a new order event scopes: - admin:shopping - write:shopping - write:shopping:/orders/ANY/events # Draft orders collection Source: https://docs.dintero.com/api-reference/orderlist/aid_draft_orders_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/draft_orders Retrieve a list of draft orders scopes: - admin:shopping - read:shopping # Orders collection Source: https://docs.dintero.com/api-reference/orderlist/aid_orders_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/orders Retrieve a list of orders scopes: - admin:shopping - read:shopping # Get Authorization Collection Source: https://docs.dintero.com/api-reference/orderlist/aid_orders_id_authorizations_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/orders/{order_id}/authorizations Retrieve list of authorizations for an order scopes: - admin:shopping - read:shopping # Get Cancellation Collection Source: https://docs.dintero.com/api-reference/orderlist/aid_orders_id_cancellations_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/orders/{order_id}/cancellations Retrieve list of cancellations for an order scopes: - admin:shopping - read:shopping # Get Capture Collection Source: https://docs.dintero.com/api-reference/orderlist/aid_orders_id_captures_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/orders/{order_id}/captures Retrieve list of captures for an order scopes: - admin:shopping - read:shopping # Order events collection Source: https://docs.dintero.com/api-reference/orderlist/aid_orders_id_events_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/orders/{order_id}/events Retrieve a list of latest order events scopes: - admin:shopping - read:shopping - read:shopping:/orders/ANY/events # Get Refunds Collection Source: https://docs.dintero.com/api-reference/orderlist/aid_orders_id_refunds_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/orders/{order_id}/refunds Retrieve list of refunds for an order scopes: - admin:shopping - read:shopping # Get Session Collection Source: https://docs.dintero.com/api-reference/orderlist/aid_orders_id_sessions_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/orders/{order_id}/sessions Retrieve list of sessions for an order scopes: - admin:shopping - read:shopping # Get Refunds details Source: https://docs.dintero.com/api-reference/orderrefunds/aid_orders_id_refunds_id_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/orders/{order_id}/refunds/{refund_id} Retrieve specific refund scopes: - admin:shopping - read:shopping # Create a refund Source: https://docs.dintero.com/api-reference/orderrefunds/aid_orders_id_refunds_post /mintlify-docs/openapi/spec-orders.yaml post /accounts/{aid}/shopping/orders/{order_id}/refunds Create a refund for an order scopes: - admin:shopping - write:shopping > A refund event will be added to the order # Create a session Source: https://docs.dintero.com/api-reference/ordersessions/aid_orders_id_session_post /mintlify-docs/openapi/spec-orders.yaml post /accounts/{aid}/shopping/orders/{order_id}/sessions Initiate a payment session for the order. scopes: - admin:shopping - write:shopping > A session event will be added to the order # Get Session details Source: https://docs.dintero.com/api-reference/ordersessions/aid_orders_id_sessions_id_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/orders/{order_id}/sessions/{session_id} Retrieve details about a session scopes: - admin:shopping - read:shopping # Cancel Order Source: https://docs.dintero.com/api-reference/orderstatus/aid_orders_id_cancel_post /mintlify-docs/openapi/spec-orders.yaml post /accounts/{aid}/shopping/orders/{order_id}/cancel Cancel the Order scopes: - admin:shopping - write:shopping > A cancel event will be added to the order # Close order Source: https://docs.dintero.com/api-reference/orderstatus/aid_orders_id_close_post /mintlify-docs/openapi/spec-orders.yaml post /accounts/{aid}/shopping/orders/{order_id}/close Close the order scopes: - admin:shopping - write:shopping > A close event will be added to the order # Open order Source: https://docs.dintero.com/api-reference/orderstatus/aid_orders_id_open_post /mintlify-docs/openapi/spec-orders.yaml post /accounts/{aid}/shopping/orders/{order_id}/open Re-open a closed order scopes: - admin:shopping - write:shopping > A open event will be added to the order # Get organization subunits Source: https://docs.dintero.com/api-reference/organizations/aid_get_external_organization_subunits /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/search/external/organizations/{country}/{organization_number}/subunits scopes: - public Get an organization's registered subunits. Proxies queries to respective registers. Currently only Norway (`no`) organization numbers are supported. # Get addresses for organization number from external organization registry Source: https://docs.dintero.com/api-reference/organizations/aid_get_external_organizations /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/search/external/organizations/{country}/{organization_number} scopes: - public # Search external organization registry Source: https://docs.dintero.com/api-reference/organizations/aid_search_external_organizations_country /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/search/external/organizations/{country} Proxy queries to the Norwegian or Danish organization registry. Please note that the only supported countries currently are "no" (Norway) and "dk" (Denmark). scopes: - public # Change password Source: https://docs.dintero.com/api-reference/password/aid_customers_change_password /mintlify-docs/openapi/spec-customers.yaml post /accounts/{aid}/customers/change_password Specify the email address of the user whose password you would like to reset. If the call is successful, the user will receive an email prompting them to change their password. The caller must have scope `write:accounts:/auth/users` to perform a change password request. scopes: - write:accounts:/auth/users # Login with email/password Source: https://docs.dintero.com/api-reference/password/aid_customers_login_post /mintlify-docs/openapi/spec-customers.yaml post /accounts/{aid}/customers/login Login a customer user, the caller must have scope `write:accounts:/auth/users`. If MFA is enabled on account, use `write:accounts:/auth/users/no-mfa` to skip MFA. scopes: - write:accounts:/auth/users - write:accounts:/auth/users/no-mfa # MFA recovery Source: https://docs.dintero.com/api-reference/password/aid_customers_mfa_login_initiate_recovery_post /mintlify-docs/openapi/spec-customers.yaml post /accounts/{aid}/customers/mfa_login_recovery Initiate a Multi-Factor Authentication recovery login for a customer user that has forgotten/lost their `secret`. Specify the ident_type and the ident (email or phone_number) of the user. If the call is successful, the user will get an email with an one time recovery code that has to be submitted to the mfa_recovery endpoint. When a valid one time recovery has been posted the server response with a regular MFA challenge. Once authenticated the password or pin can be changed by updating the customer. scopes: - write:accounts:/auth/users # Login with MFA Source: https://docs.dintero.com/api-reference/password/aid_customers_mfa_login_post /mintlify-docs/openapi/spec-customers.yaml post /accounts/{aid}/customers/mfa_login Initiate a Multi-Factor Authentication for a customer user, the caller must have scope `write:accounts:/auth/users` to perform a login. Post the `ident_type`, along with the `ident` and `secret`. The server will return a challenge response specifying the `challenge_type` that will have to be completed to when getting an access token from the `POST /v1/accounts/{oid}/auth/token` endpoint. scopes: - write:accounts:/auth/users # Create and pay merchant initiated session Source: https://docs.dintero.com/api-reference/payment/checkout_session_pay_post /mintlify-docs/openapi/spec-payments-v2.yaml post /accounts/{aid}/payments/sessions/pay For merchant initiated payments, where the customer is not involved. Receives a session and pays it with the given card token. > Merchant is resposible for managing their retry policy for payments > that fails, and not retry when payment fails with `DO_NOT_RETRY` error. > > 200 response will be returned when request fails due to authorization error. Transaction > will have status `FAILED` and error information can be found at `events.error`. > > Insufficient error handling will cause cards to be blocked > https://docs.dintero.com/docs/checkout/tokenization#do-not-try-again--excessive-reattempts scopes: - admin:checkout - write:checkout # Initiate a checkout payment Source: https://docs.dintero.com/api-reference/payment/checkout_sid_pay_post /mintlify-docs/openapi/spec-payments-v2.yaml post /accounts/{aid}/payments/sessions/{session_id}/pay For Express Checkout sessions, the _`order.shipping_address`_ must be set on the session, and a _`order.items.shipping_option` item is required if the session has either an _`express.shipping_address_callback_url`_ or the session has at least one option in _`express.shipping_options`_. # List payout destinations Source: https://docs.dintero.com/api-reference/payout-destinations/aid_mgmnt_payout_destinations_get /mintlify-docs/openapi/spec-management-auth.yaml get /accounts/{oid}/payout-destinations Get list of payout destinations scopes: - admin:accounts - read:accounts # Get payout destination Source: https://docs.dintero.com/api-reference/payout-destinations/aid_mgmnt_payout_destinations_get_by_id /mintlify-docs/openapi/spec-management-auth.yaml get /accounts/{oid}/payout-destinations/{payout_destination_id} Get a payout destination by payout destination id scopes: - admin:accounts - read:accounts # Create payout destination Source: https://docs.dintero.com/api-reference/payout-destinations/aid_mgmnt_payout_destinations_post /mintlify-docs/openapi/spec-management-auth.yaml post /accounts/{oid}/payout-destinations Create a payout destination for an account scopes: - admin:accounts - write:accounts - write:accounts:/management/settings/approvals # Update payout destination Source: https://docs.dintero.com/api-reference/payout-destinations/oid_mgmnt_payout_destinations_by_id_patch /mintlify-docs/openapi/spec-management-auth.yaml patch /accounts/{oid}/payout-destinations/{payout_destination_id} Update a payout destination. Currently only allows update of `payout_interval_type`. scopes: - admin:accounts - write:accounts # On-demand payout Source: https://docs.dintero.com/api-reference/payout-destinations/oid_mgmnt_payout_destinations_payouts_post /mintlify-docs/openapi/spec-management-auth.yaml post /accounts/{oid}/payout-destinations/{payout_destination_id}/payouts Create a payout for the given payout destination by consolidating all pending funds from any payout interval account (week, month) into the daily payout account. The funds will then be included in the next daily payout run. This is useful when you want existing pending payouts to be disbursed without waiting for the original schedule, or when you want to manually trigger a payout outside the normal interval. scopes: - write:accounts:/on-demand-payouts # Create new Receipts Source: https://docs.dintero.com/api-reference/receipts/aid_receipts_post /mintlify-docs/openapi/spec-receipts.yaml post /accounts/{aid}/receipts Post receipts scopes: - admin:receipts - write:receipts # Get receipt by token Source: https://docs.dintero.com/api-reference/receipts/aid_receipts_receipt_token_get /mintlify-docs/openapi/spec-receipts.yaml get /accounts/{aid}/receipts/receipt-token Get receipt from token. The token must be a signed JWT token containing the `customer_id` and `receipt_id` to fetch. scopes: - admin:receipts - read:receipts - user:receipts - public:receipts # Claim receipt by token Source: https://docs.dintero.com/api-reference/receipts/aid_receipts_receipt_token_post /mintlify-docs/openapi/spec-receipts.yaml post /accounts/{aid}/receipts/receipt-token Update `customer_id` on receipt identified by token. The token will be invalid after the claim. scopes: - admin:receipts - write:receipts - user:receipts # Receipt search Source: https://docs.dintero.com/api-reference/receipts/aid_receipts_rid_get /mintlify-docs/openapi/spec-receipts.yaml get /accounts/{aid}/receipts/search Get receipts matching receipt_id (POS id) scopes: - admin:receipts - read:receipts # Update receipt Source: https://docs.dintero.com/api-reference/receipts/aid_receipts_update_put /mintlify-docs/openapi/spec-receipts.yaml put /accounts/{aid}/receipts/all/{receipt_id} Update existing anonymous receipt. ### Limitation - update of customer_id is only allowed if the current customer_id is null. - update of discounts is only allowed if current discounts value is null or empty scopes: - admin:receipts - read:receipts # Create new insight report configuration Source: https://docs.dintero.com/api-reference/report-configuration/aid_report_configuration_post /mintlify-docs/openapi/spec-insight.yaml post /accounts/{aid}/insight/reports/configuration Create a new report configuration scopes: - write:insight - admin:insight # Delete insight report configuration Source: https://docs.dintero.com/api-reference/report-configuration/aid_reports_configuration_delete /mintlify-docs/openapi/spec-insight.yaml delete /accounts/{aid}/insight/reports/configuration/{id} Delete insight report configuration. scopes: - write:insight - admin:insight # List insight configurations Source: https://docs.dintero.com/api-reference/report-configuration/aid_reports_configuration_get /mintlify-docs/openapi/spec-insight.yaml get /accounts/{aid}/insight/reports/configuration List all insight report configurations for the account. scopes: - read:insight - admin:insight # Update insight report configuration Source: https://docs.dintero.com/api-reference/report-configuration/aid_reports_configuration_put /mintlify-docs/openapi/spec-insight.yaml put /accounts/{aid}/insight/reports/configuration/{id} Update insight report configuration. Scopes: - write:insight - admin:insight # List report metadata Source: https://docs.dintero.com/api-reference/reports/api_reports_metadata_list_get /mintlify-docs/openapi/spec-reports.yaml get /accounts/{aid}/reports/metadata Get list of report metadata for the account Scopes: - read:reports - admin:reports # Automation collection Source: https://docs.dintero.com/api-reference/rules-automations/aid_automations_rules_get /mintlify-docs/openapi/spec-discounts.yaml get /accounts/{aid}/automations/rules Get available automations for the account scopes: - admin:automations - read:automations # Create new automation Source: https://docs.dintero.com/api-reference/rules-automations/aid_automations_rules_post /mintlify-docs/openapi/spec-discounts.yaml post /accounts/{aid}/automations/rules Create a discount automation to apply on events received. A automation can be used to automate the task of giving discount to customers. The customer found in the event will receive the discount. ### Welcome discount: give discount to new user { "requirement": { "events": ["customer_add"], "automation_from": "2018-05-07T08:54:31Z", "automation_to": "2018-06-07T08:54:31Z" }, "actions": [ { "type": "discount", "id": "cae3e485-0e15-4afa-bc66-472f843efb84" } ] } ### Purchase discount: give discount on first purchase at store { "name": "purchase at store sc029", "requirement": { "events": ["receipt_add"], "automation_from": "2018-05-07T08:54:31Z", "automation_to": "2018-06-07T08:54:31Z", "filters": { "$.store.id": ["sc029"] } }, "actions": [ { "type": "discount", "id": "cae3e485-0e15-4afa-bc66-472f843efb84" } ], "limitation": { "automation_repeat": 1 } } scopes: - admin:automations - write:automations # Delete automation Source: https://docs.dintero.com/api-reference/rules-automations/aid_automations_rules_rid_delete /mintlify-docs/openapi/spec-discounts.yaml delete /accounts/{aid}/automations/rules/{arid} Delete an automation rule. scopes: - admin:automations - write:automations # Automation details Source: https://docs.dintero.com/api-reference/rules-automations/aid_automations_rules_rid_get /mintlify-docs/openapi/spec-discounts.yaml get /accounts/{aid}/automations/rules/{arid} Get details about an automations scopes: - admin:automations - read:automations # Delete customer discount ref Source: https://docs.dintero.com/api-reference/rules-customers/aid_discounts_customer_cid_delete_ref_id /mintlify-docs/openapi/spec-discounts.yaml delete /accounts/{aid}/discounts/customers/{customer_id}/refs/{ref_id} Delete a customer discount ref. The discount will no longer be available on purchase ([Post receipt for discount](/discounts-api/use-discounts/aid_discounts_available_for_receipt_post)) scopes: - admin:discounts - write:discounts # Customer discounts collection Source: https://docs.dintero.com/api-reference/rules-customers/aid_discounts_customer_cid_get /mintlify-docs/openapi/spec-discounts.yaml get /accounts/{aid}/discounts/customers/{customer_id}/rules Get all discounts available for a customer, result will exclude expired and inactive discounts Expired discounts are: - discount used up (customer has allready used it) and there was a limitation on the discount that prevents more use. - discount requirement purchase periode is in the past - discount that has been deleted Inactive discounts are: - discount with `active` property set to false. Use value of `ref_id` as parameter value of `starting_after` scopes: - admin:discounts - read:discounts - user:discounts # Get customer discount ref Source: https://docs.dintero.com/api-reference/rules-customers/aid_discounts_customer_cid_get_ref_id /mintlify-docs/openapi/spec-discounts.yaml get /accounts/{aid}/discounts/customers/{customer_id}/refs/{ref_id} Get a customer discount ref. scopes: - admin:discounts - read:discounts # Update customer discount ref Source: https://docs.dintero.com/api-reference/rules-customers/aid_discounts_customer_cid_post_ref_id /mintlify-docs/openapi/spec-discounts.yaml post /accounts/{aid}/discounts/customers/{customer_id}/refs/{ref_id} Add stamps and usage to a discount ref. scopes: - admin:discounts - write:discounts # Remove customers Source: https://docs.dintero.com/api-reference/rules-customers/aid_discounts_did_customers_delete /mintlify-docs/openapi/spec-discounts.yaml delete /accounts/{aid}/discounts/rules/{did}/customers Remove Discount from one or more customers scopes: - admin:discounts - write:discounts # Get discount customers (refs) Source: https://docs.dintero.com/api-reference/rules-customers/aid_discounts_did_customers_get /mintlify-docs/openapi/spec-discounts.yaml get /accounts/{aid}/discounts/rules/{did}/customers Get list of customers refs for a discount. A ref is an instant of discount given to a customer or `all customers`. See [Add customers](/discounts-api/rules-customers/aid_discounts_did_customers_post) scopes: - admin:discounts - read:discounts # Add customers Source: https://docs.dintero.com/api-reference/rules-customers/aid_discounts_did_customers_post /mintlify-docs/openapi/spec-discounts.yaml post /accounts/{aid}/discounts/rules/{did}/customers Give the Discount to one or more customers scopes: - admin:discounts - write:discounts # Get discount ref usages Source: https://docs.dintero.com/api-reference/rules-customers/aid_discounts_did_usages_get /mintlify-docs/openapi/spec-discounts.yaml get /accounts/{aid}/discounts/rules/{did}/usages Get list of discount refs usages. scopes: - admin:discounts - read:discounts # Delete discount Source: https://docs.dintero.com/api-reference/rules/aid_discounts_did_delete /mintlify-docs/openapi/spec-discounts.yaml delete /accounts/{aid}/discounts/rules/{did} Delete a discount - Customer that has previously received the discount will not be able to use it on purchases. - rules automations belonging to the discount will be deleted scopes: - admin:discounts - write:discounts # Discount details Source: https://docs.dintero.com/api-reference/rules/aid_discounts_did_get /mintlify-docs/openapi/spec-discounts.yaml get /accounts/{aid}/discounts/rules/{did} Get more details about a discount, includes statistics about the discount scopes: - admin:discounts - read:discounts # Update Discount Source: https://docs.dintero.com/api-reference/rules/aid_discounts_did_put /mintlify-docs/openapi/spec-discounts.yaml put /accounts/{aid}/discounts/rules/{did} Update discount details. **Caution**: Update of non-meta properties, properties that changes requirement or limitation can create conflict with the usage history of the discount. Example is to change requirement.item.items, such change would mean that purchases before the change would not be correcly rewarded given the new version of the discount. We recomment to limit the update of a discount to meta only properties if the discount has previously been used in a purchase. Update on requirement `purchase_to` is only supported when the new value that is after current value. Update of requirement `purchase_from` and `reward` is not supported. Update `discount.active` to toggle if an discount is active and available for purchase. Update `discount.private` to toggle if an discount is included in public discount collection if given to all customers scopes: - admin:discounts - write:discounts # Discount collection Source: https://docs.dintero.com/api-reference/rules/aid_discounts_get /mintlify-docs/openapi/spec-discounts.yaml get /accounts/{aid}/discounts/rules List discounts available for the account scopes: - admin:discounts - read:discounts # Create new discount Source: https://docs.dintero.com/api-reference/rules/aid_discounts_post /mintlify-docs/openapi/spec-discounts.yaml post /accounts/{aid}/discounts/rules Create a new discount for an account. A new discount will be **unavailable** for purchases until the discount is given to one or more customer. Discount can be given to a customer by either adding a automation to the discount that will grant the discount to the customer from events received or by adding customers to the discount. See [Discount Examples](#section/Discount-Examples) scopes: - admin:discounts - write:discounts # Public Discount collection Source: https://docs.dintero.com/api-reference/rules/aid_discounts_public_get /mintlify-docs/openapi/spec-discounts.yaml get /accounts/{aid}/discounts/public/rules Get all discounts available for any customer given current date, result will exclude expired and inactive discounts Use value of `ref_id` as parameter value of `starting_after` scopes: - admin:discounts - read:discounts - public:discounts # Search for discount rules Source: https://docs.dintero.com/api-reference/rules/aid_discounts_rules_search_post /mintlify-docs/openapi/spec-discounts.yaml post /accounts/{aid}/discounts/search/rules Search for active discounts given current date matching queries scopes: - admin:discounts - read:discounts # Customer segmentation Source: https://docs.dintero.com/api-reference/segment/aid_receipts_customer_segment_post /mintlify-docs/openapi/spec-receipts.yaml post /accounts/{aid}/receipts/customer_segment Segment customer by receipt data scopes: - admin:receipts - read:receipts # Payment token session Source: https://docs.dintero.com/api-reference/session/checkout_payment_token_session_post /mintlify-docs/openapi/spec-payments-v2.yaml post /accounts/{aid}/payments/sessions/payment-token This endpoint lets you create payment and recurrence tokens without reserving or charging any amount. The URL returned by this endpoint opens a web site where the customer can enter their payment details, e.g. card information. The payment details will be validated and a transaction with a payment/recurrence token will be created on success containing the payment token created from the customer payment details. - [GET /v1/transactions/{id}?includes=card.payment_token](/api-reference/transactions/transactions_id_get) - [GET /v1/transactions/{id}?includes=card.recurrence_token](/api-reference/transactions/transactions_id_get) scopes: - admin:checkout - write:checkout # Cancel session Source: https://docs.dintero.com/api-reference/session/checkout_session_cancel_post /mintlify-docs/openapi/spec-payments-v2.yaml post /accounts/{aid}/payments/sessions/{session_id}/cancel Cancel a session The session transaction will be voided in case where it is initialized or authorized. Cancel is not allowed in case where the current transaction state is not initialized or authorized. scopes: - admin:checkout - write:checkout # Get checkout session details Source: https://docs.dintero.com/api-reference/session/checkout_session_get /mintlify-docs/openapi/spec-payments-v2.yaml get /accounts/{aid}/payments/sessions/{session_id} scopes: - admin:checkout - read:checkout # Create checkout session from profile Source: https://docs.dintero.com/api-reference/session/checkout_session_profile_post /mintlify-docs/openapi/spec-payments-v2.yaml post /accounts/{aid}/payments/sessions-profile Create a corresponding Checkout Session for an order placed in your system using predefined session profile #### Session with Instabank Note that `items` is a required property when creating a session with Instabank configured. scopes: - admin:checkout - write:checkout # Update checkout session details Source: https://docs.dintero.com/api-reference/session/checkout_session_put /mintlify-docs/openapi/spec-payments-v2.yaml put /accounts/{aid}/payments/sessions/{session_id} Session must be locked for paying before updating. **Requirements**: - `order.shipping_option` must be included in `express_shipping_options` if both are set. - `order.amount` must be equal to the sum of `order.items` and `order.shipping_option` scopes: - admin:checkout - read:checkout # Customers settings Source: https://docs.dintero.com/api-reference/settings/aid_customers_atributes_get /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/customers/settings Get customers settings scopes: - admin:customers - read:customers - public:customers # Update settings Source: https://docs.dintero.com/api-reference/settings/aid_customers_atributes_put /mintlify-docs/openapi/spec-customers.yaml put /accounts/{aid}/customers/settings Update customers settings scopes: - admin:customers - write:customers # Generate a test settlement report Source: https://docs.dintero.com/api-reference/settlements/aid_settlement_generate_test_report /mintlify-docs/openapi/spec-billing.yaml post /accounts/{aid}/settlements/reports/generate-test-report Generate a test settlement report. Only available in test. *scopes*: - admin:billing - admin:reports # List settlements Source: https://docs.dintero.com/api-reference/settlements/aid_settlements_list /mintlify-docs/openapi/spec-billing.yaml get /accounts/{aid}/settlements List settlements *scopes*: - admin:billing - read:billing - admin:reports - read:reports - admin:settlements - read:settlements # Download attachment Source: https://docs.dintero.com/api-reference/settlements/settlement_attachment_download /mintlify-docs/openapi/spec-billing.yaml get /accounts/{aid}/settlements/{settlementid}/attachments/{attachmentid} Download a settlement attachment *scopes*: - admin:billing - read:billing - admin:reports - read:reports - admin:settlements - read:settlements # Create settlement report configurations Source: https://docs.dintero.com/api-reference/settlementsconfiguration/aid_settlement_report_config_create /mintlify-docs/openapi/spec-billing.yaml post /accounts/{aid}/settlements/reports/configuration Create settlement report configurations *scopes*: - admin:billing - admin:reports - admin:settlements - write:settlements # Delete settlement report configuration Source: https://docs.dintero.com/api-reference/settlementsconfiguration/aid_settlement_report_config_delete /mintlify-docs/openapi/spec-billing.yaml delete /accounts/{aid}/settlements/reports/configuration/{id} Delete settlement report configuration *scopes*: - admin:billing - write:billing - admin:settlements - write:settlements # Get settlement report configuration Source: https://docs.dintero.com/api-reference/settlementsconfiguration/aid_settlement_report_config_details /mintlify-docs/openapi/spec-billing.yaml get /accounts/{aid}/settlements/reports/configuration/{id} Get settlement report configuration *scopes*: - admin:billing - read:billing - admin:reports - read:reports - admin:settlements - read:settlements # List settlement report configurations Source: https://docs.dintero.com/api-reference/settlementsconfiguration/aid_settlement_report_config_list /mintlify-docs/openapi/spec-billing.yaml get /accounts/{aid}/settlements/reports/configuration List settlement report configurations *scopes*: - admin:billing - read:billing - admin:reports - read:reports - admin:settlements - read:settlements # Update settlement report configuration Source: https://docs.dintero.com/api-reference/settlementsconfiguration/aid_settlement_report_config_update /mintlify-docs/openapi/spec-billing.yaml put /accounts/{aid}/settlements/reports/configuration/{id} Update settlement report configuration *scopes*: - admin:billing - write:billing - admin:settlements - write:settlements # Orders collection Source: https://docs.dintero.com/api-reference/storeorder/aid_stores_sid_orders_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/stores/{store_id}/orders Retrieve a list of orders belonging to a store scopes: - admin:shopping - read:shopping # Get Order Source: https://docs.dintero.com/api-reference/storeorder/aid_stores_sid_orders_id_get /mintlify-docs/openapi/spec-orders.yaml get /accounts/{aid}/shopping/stores/{store_id}/orders/{order_id} Retrieve Order details belonging to a store scopes: - admin:shopping - read:shopping # Tag collection Source: https://docs.dintero.com/api-reference/tags/aid_customers_cid_tags_get /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/customers/users/{customer_id}/tags Get tags for a customer scopes: - admin:customers - read:customers - user:customers # Update Customer Tags Source: https://docs.dintero.com/api-reference/tags/aid_customers_cid_tags_put /mintlify-docs/openapi/spec-customers.yaml put /accounts/{aid}/customers/users/{customer_id}/tags Update Customer Tags scopes: - admin:customers - write:customers - user:customers # Tags collection Source: https://docs.dintero.com/api-reference/tags/aid_customers_tags_get /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/customers/tags Get all customer tags (also known as groups). scopes: - admin:customers - read:customers # Create new Tag Source: https://docs.dintero.com/api-reference/tags/aid_customers_tags_post /mintlify-docs/openapi/spec-customers.yaml post /accounts/{aid}/customers/tags Create a tag scopes: - admin:customers - write:customers # Delete Tag Source: https://docs.dintero.com/api-reference/tags/aid_customers_tags_tid_delete /mintlify-docs/openapi/spec-customers.yaml delete /accounts/{aid}/customers/tags/{tag_id} Delete a tag. A deleted tag is removed from customer tags scopes: - admin:customers - write:customers # List terminal operation results Source: https://docs.dintero.com/api-reference/terminals/admin_terminals_operations_get /mintlify-docs/openapi/spec-payments-v2.yaml get /accounts/{aid}/payments/admin/terminals/operations List terminal operations. Supports filtering by terminal_id and operation_id. scopes: - admin:checkout - read:checkout:/admin/terminals # Post terminal operation Source: https://docs.dintero.com/api-reference/terminals/admin_terminals_operations_post /mintlify-docs/openapi/spec-payments-v2.yaml post /accounts/{aid}/payments/admin/terminals/operations Send a command to a payment terminal. The response is returned immediately after the command is dispatched to the terminal. The terminal's response is processed asynchronously. scopes: - admin:checkout - write:checkout:/admin/terminals # Terms collection Source: https://docs.dintero.com/api-reference/terms/aid_customers_terms_get /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/customers/terms Get all customer terms and conditions scopes: - admin:customers - read:customers - public:customers # Create new Terms Source: https://docs.dintero.com/api-reference/terms/aid_customers_terms_post /mintlify-docs/openapi/spec-customers.yaml post /accounts/{aid}/customers/terms Create customer terms and conditions scopes: - admin:customers - write:customers # Delete Term Source: https://docs.dintero.com/api-reference/terms/aid_customers_terms_tid_delete /mintlify-docs/openapi/spec-customers.yaml delete /accounts/{aid}/customers/terms/{tid} Delete the customer term scopes: - admin:customers - write:customers # Terms details Source: https://docs.dintero.com/api-reference/terms/aid_customers_terms_tid_post /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/customers/terms/{tid} Get single terms and conditions scopes: - admin:customers - read:customers - public:customers # Token collections Source: https://docs.dintero.com/api-reference/tokens/aid_customers_cid_tokens_get /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/customers/users/{customer_id}/tokens Get all tokens for a Customer scopes: - admin:customers - read:customers - user:customers # Create new Token Source: https://docs.dintero.com/api-reference/tokens/aid_customers_cid_tokens_post /mintlify-docs/openapi/spec-customers.yaml post /accounts/{aid}/customers/users/{customer_id}/tokens Create a new customer token scopes: - admin:customers - write:customers - user:customers # Delete customer token Source: https://docs.dintero.com/api-reference/tokens/aid_customers_cid_tokens_tid_delete /mintlify-docs/openapi/spec-customers.yaml delete /accounts/{aid}/customers/users/{customer_id}/tokens/{tid} Delete Token scopes: - admin:customers - write:customers - user:customers # Delete token events Source: https://docs.dintero.com/api-reference/tokens/aid_customers_tokens_events_delete /mintlify-docs/openapi/spec-customers.yaml delete /accounts/{aid}/customers/tokens/events Delete the connection between token (type/value) and list of events. Include an event in the request to store the reason for the request scopes: - admin:customers - write:customers # Get token events Source: https://docs.dintero.com/api-reference/tokens/aid_customers_tokens_events_get /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/customers/tokens/events Get the token events scopes: - admin:customers - read:customers # Find / Add token events Source: https://docs.dintero.com/api-reference/tokens/aid_customers_tokens_events_post /mintlify-docs/openapi/spec-customers.yaml post /accounts/{aid}/customers/tokens/events Find details about a token, inclusive details about any customer the token belongs to and any token events recorded Include event in the request to update the status of the token scopes: - admin:customers - write:customers # Capture pending transaction Source: https://docs.dintero.com/api-reference/transactions/aid_cards_cardid_transactions_capture_post /mintlify-docs/openapi/spec-wallets.yaml post /accounts/{aid}/wallets/transactions/{transaction_id}/capture Capture a pending Transaction, thereby collection the amount withheld by the pending transaction. Option to specify an amount that should be captured. Defaults to capture the full transaction. When the amount specified is less than the reserved/pending, the remaining amount will still be reserved/pending and can be captured later. scopes: - admin:wallets - write:wallets - write:wallets:/transactions # List card transactions Source: https://docs.dintero.com/api-reference/transactions/aid_cards_cardid_transactions_tid_get /mintlify-docs/openapi/spec-wallets.yaml get /accounts/{aid}/wallets/cards/{card_id}/transactions Retrieve a list of Card's Transaction based on card id scopes: - admin:wallets - read:wallets # Void pending transaction Source: https://docs.dintero.com/api-reference/transactions/aid_cards_cardid_transactions_void_post /mintlify-docs/openapi/spec-wallets.yaml post /accounts/{aid}/wallets/transactions/{transaction_id}/void Void a pending Transaction by unlocking the amount withheld by the pending transaction scopes: - admin:wallets - write:wallets - write:wallets:/transactions # Create transaction Source: https://docs.dintero.com/api-reference/transactions/aid_cards_transactions_post /mintlify-docs/openapi/spec-wallets.yaml post /accounts/{aid}/wallets/transactions Create a transaction against a Card using `token` or `card_id`. If the Transactions is created as pending, the value will be locked until it is either captured or voided. Transaction ID must be used when capturing or voiding a transaction. > Using **`card_id`** or creating a **`fund`** transaction requires > authorization scope `admin:wallets` or `write:wallets` scopes: - admin:wallets - write:wallets - write:wallets:/transactions # Update transaction authorization Source: https://docs.dintero.com/api-reference/transactions/transaction_tid_extend_authorization_post /mintlify-docs/openapi/spec-payments-v2.yaml post /accounts/{aid}/payments/transactions/{id}/authorization This endpoint is used to update an existing authorization: **Use cases:** 1. **Extend authorization (Klarna)** - Provider: `klarna` - Purpose: Extend the lifetime of an existing authorization. - Required fields: - `reason` (string): The reason for the extension. - `reference` (string): A reference specified by the merchant to identify the transaction. 2. **Update order amount (Klarna)** - Provider: `klarna` - Purpose: Update the authorized amount for an existing Klarna order. - Required fields: - `amount` (number): The new amount to authorize. - `items` (array): List of transaction items. Sum of item amounts must equal the updated transaction amount. - `description` (string): Optional description of the order. - `reason` (string): Optional reason for the update. - `reference` (string): Optional merchant reference to identify the transaction. 3. **Update pre-authorization (Dintero PSP)** - Provider: `dintero_psp` - Purpose: Update the pre-authorized amount and/or finalize the authorization. - Required fields: - `amount` (number): The new amount to authorize. - If `final_authorization=false`, the new amount **must be greater than** the previous pre-authorized amount. - If `final_authorization=true`, the amount **may be increased, reduced, or unchanged**. - `final_authorization` (boolean): Indicates whether this is the final authorization step. - `true`: Finalizes the authorization and locks the transaction for further updates. - `false`: Keeps the pre-authorization open for future updates. - `reference` (string): Optional merchant reference to identify the transaction. - `items` (array): Optional list of transaction items to update. If the transaction already has items, this field is required. When present, sum of item amounts must equal the updated transaction amount. 4. **Authorize external transaction (Dintero External)** - Provider: `dintero` - Purpose: Authorize a transaction currently on hold. - If `amount` or `items` are provided, the API will validate if the details are consistent with the order in the transaction. --- **Notes:** - For Klarna: - If `amount` is **not provided**: Extend authorization flow is used (use case 1). Only `reason` and `reference` are relevant. - If `amount` **is provided**: Update order amount flow is used (use case 2). `amount` is required; `items` and `description` are optional. - For pre-authorization: Only `amount`, `final_authorization`, and `reference` are relevant. # List all transactions Source: https://docs.dintero.com/api-reference/transactions/transactions_get /mintlify-docs/openapi/spec-payments-v2.yaml get /accounts/{aid}/payments/transactions scopes: - admin:checkout - read:checkout # Capture a transaction Source: https://docs.dintero.com/api-reference/transactions/transactions_id_capture_post /mintlify-docs/openapi/spec-payments-v2.yaml post /accounts/{aid}/payments/transactions/{id}/capture Captures a transaction that was created with the Checkout endpoint with a `capture_now` value of `false`. #### Capture Instabank transaction Note that `items` is required when capturing a transaction with `payment_product=instabank`. The items must include the lines to Capture, with `line_id`, `quantity` and `amount`. scopes: - admin:checkout - write:checkout # Get a transaction Source: https://docs.dintero.com/api-reference/transactions/transactions_id_get /mintlify-docs/openapi/spec-payments-v2.yaml get /accounts/{aid}/payments/transactions/{id} scopes: - admin:checkout - read:checkout # Update a transaction Source: https://docs.dintero.com/api-reference/transactions/transactions_id_put /mintlify-docs/openapi/spec-payments-v2.yaml put /accounts/{aid}/payments/transactions/{id} scopes: - admin:checkout - write:checkout # Refund transaction Source: https://docs.dintero.com/api-reference/transactions/transactions_id_refund_post /mintlify-docs/openapi/spec-payments-v2.yaml post /accounts/{aid}/payments/transactions/{id}/refund Once a transaction has been successfully captured, a refund operation is available. Like other operations, refund can be partial or total #### Refund Instabank transaction Note that `items` is required when refunding a transaction with `payment_product=instabank`. The items must include the lines to Refund, with `line_id`, `quantity` and `amount`. #### Refund `seitatech.in_person` transaction `terminal_id` is required when refunding a `seitatech.in_person` transaction. The cardholder must be present to approve the refund on a terminal active on the same `payout_destination_id` as the original transaction. scopes: - admin:checkout - write:checkout # Void transaction Source: https://docs.dintero.com/api-reference/transactions/transactions_id_void_post /mintlify-docs/openapi/spec-payments-v2.yaml post /accounts/{aid}/payments/transactions/{id}/void At any moment before capture of a transaction, it is possible to cancel an authorization. This operation is called voiding and can be performed by doing a POST to this endpoint #### Void on part capture Void after a part capture will cancel the difference between the capture amount and the authorization amount. Void on part capture is only supported on following types: - `payex.creditcard` - `payex.mobilepay` - `payex.vipps` - `payex.applepay` - `payex.clicktopay` - `payex.googlepay` - `vipps` - `klarna.klarna` - `klarna.billie` scopes: - admin:checkout - write:checkout # Delete claim Source: https://docs.dintero.com/api-reference/use-discounts/aid_discounts_available_for_receipt_delete_claim /mintlify-docs/openapi/spec-discounts.yaml delete /accounts/{aid}/discounts/available_for_receipt/claims/{claim_id} Release claim on discounts, revert previously claimed discount and make them available for future purchase scopes: - admin:discounts - write:discounts - write:discounts:/available_for_receipt # Get claim Source: https://docs.dintero.com/api-reference/use-discounts/aid_discounts_available_for_receipt_get_claim /mintlify-docs/openapi/spec-discounts.yaml get /accounts/{aid}/discounts/available_for_receipt/claims/{claim_id} Get details about a claim scopes: - admin:discounts - read:discounts - read:discounts:/available_for_receipt # Claim collections Source: https://docs.dintero.com/api-reference/use-discounts/aid_discounts_available_for_receipt_get_claims /mintlify-docs/openapi/spec-discounts.yaml get /accounts/{aid}/discounts/available_for_receipt/claims Get all claims, limited by parameters. The result will match all parameters with `AND` scopes: - admin:discounts - read:discounts - read:discounts:/available_for_receipt # Post receipt for discount Source: https://docs.dintero.com/api-reference/use-discounts/aid_discounts_available_for_receipt_post /mintlify-docs/openapi/spec-discounts.yaml post /accounts/{aid}/discounts/available_for_receipt Find discounts available for the receipt ### Active discounts - `customer_id` will be used to find active discounts for the purchase. - `customer.token` will be used to resolve `customer_id` if no `customer_id` is provided. - No discounts will be given if the token does not resolve to any customer_id. - A receipt with no `customer_id` and no `customer.token` will only be applicable for active discounts given to **`/`** ([see](/discounts-api/rules-customers/aid_discounts_did_customers_post)) ### Requirement of the receipt - all items must have `eligible_for_discount` set to enable for discount - all items must have a positive `gross_amount` to qualify for discount - a `net` base discount reward requires the receipt to include existing discounts as discount_lines (on item) in order to calculate net A receipt that qualified for discount will have the `is_change` property set to true. Any items that has received a discount will be flagged by `is_change` and have one or more new entries to its discount_lines. The receipt `discounts` list will be populated with all discounts the receipt is qualified to receive scopes: - admin:discounts - write:discounts - write:discounts:/available_for_receipt # Claim discounts Source: https://docs.dintero.com/api-reference/use-discounts/aid_discounts_available_for_receipt_post_claim /mintlify-docs/openapi/spec-discounts.yaml post /accounts/{aid}/discounts/available_for_receipt/claims Claim discount rewards, checks will be done to ensure that all discount limitation are uphold Note, only the following discount limitation will affect the success of a claim - discount_reward_usage - discount_repeat_usage scopes: - admin:discounts - write:discounts - write:discounts:/available_for_receipt # Post event Source: https://docs.dintero.com/api-reference/use-discounts/aid_discounts_events_post /mintlify-docs/openapi/spec-discounts.yaml post /accounts/{aid}/discounts/events Send an Event to the service. - rules automations will receive the event and give its discount to the customer found in the event - Token received will be stored to support resolving customer from token when handling discounts available for receipt scopes: - admin:discounts - write:discounts - write:discounts:/events # Change customer_id Source: https://docs.dintero.com/api-reference/users/aid_customers_cid_change_customer_id_post /mintlify-docs/openapi/spec-customers.yaml post /accounts/{aid}/customers/users/{customer_id}/change_customer_id Update customer_id for an customer **warning**: Any external resources "owned" by the user, i.e receipts, discounts etc. will not be updated with the new customer_id. A new metadata property `dintero_change_customer_id_{timestamp}.{hash}` will be added everytime the customer_id is changed Following data will be included in the metadata property - created_at - created_by - old - new scopes: - admin:customers - admin:accounts # Delete customer Source: https://docs.dintero.com/api-reference/users/aid_customers_cid_delete /mintlify-docs/openapi/spec-customers.yaml delete /accounts/{aid}/customers/users/{customer_id} Delete single customer scopes: - admin:customers - write:customers - user:customers # Customer details Source: https://docs.dintero.com/api-reference/users/aid_customers_cid_get /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/customers/users/{customer_id} Customer details scopes: - admin:customers - read:customers - user:customers - user:customers:/customer/details # Update Customer Source: https://docs.dintero.com/api-reference/users/aid_customers_cid_put /mintlify-docs/openapi/spec-customers.yaml put /accounts/{aid}/customers/users/{customer_id} Update customer properties, properties not included in the body will remain unchanged. scopes: - admin:customers - write:customers - user:customers # Customer collection Source: https://docs.dintero.com/api-reference/users/aid_customers_get /mintlify-docs/openapi/spec-customers.yaml get /accounts/{aid}/customers/users Get all customers, limited by parameters. The result will match all parameters with `AND`. Search is done by prefix match, and `+` in phone_number/email must be URL encoded, (+4799999999 => %2B4799999999) Users with type `contact` are by default excluded from the result, use `type=contact` or `type=any` to include contact users The response from a request that match contact users will include the users that are linked from the contact scopes: - admin:customers - read:customers # User exist Source: https://docs.dintero.com/api-reference/users/aid_customers_head /mintlify-docs/openapi/spec-customers.yaml head /accounts/{aid}/customers/users Check if there is users that match the parameters. The result will match all parameters with `AND`. This endpoint must be enabled from [PUT /customers/settings](/customers-api/settings/aid_customers_atributes_put) scopes: - admin:customers - read:customers - public:customers # Create new Customer Source: https://docs.dintero.com/api-reference/users/aid_customers_post /mintlify-docs/openapi/spec-customers.yaml post /accounts/{aid}/customers/users Create a new customer, `customer_id`, `email` and `phone_number` must be unique if specified. scopes: - admin:customers - write:customers - create:customers:/users # List seller balances Source: https://docs.dintero.com/api-reference/v2-config-payout-destinations/v2_aid_payout_destination_balance_get /mintlify-docs/openapi/spec-payout.yaml get /v2/accounts/{aid}/payout/payout-destinations/{payout_destination_id}/balances Get seller balance per currency # List seller transfers Source: https://docs.dintero.com/api-reference/v2-config-payout-destinations/v2_aid_payout_destination_transfers_get /mintlify-docs/openapi/spec-payout.yaml get /v2/accounts/{aid}/payout/payout-destinations/{payout_destination_id}/transfers Get list of transfers for a seller # Handling payment Source: https://docs.dintero.com/docs/checkout/after-payment Handle Dintero Checkout transactions after payment with return_url and callback_url, transaction statuses, and idempotent post-payment processing. When the payment is completed, a **transaction** is created with info about the payment method used, card details, and success status. `order.shipping_option` from the session will be moved to an item in the transaction. The session will contain a `transaction_id` referencing the transaction. There will only be one transaction for any one session. ## Transaction statuses The possible states the transaction can be in after completion are: * **AUTHORIZED** - successful payment * **ON\_HOLD** - further controls are necessary, will change to **AUTHORIZED** or **FAILED** later * **CAPTURED** - auto-capture is turned on, and the money was withdrawn from the customer's account. auto-capture could have been turned on in the payment profile, or at the payment provider. Might also be captured if someone was really, really fast at capturing it manually. * **FAILED** - payment failed * **DECLINED** - customer declined the payment while it was processing ## Getting notified about the transaction status The website should implement `url.return_url` and `url.callback_url`. The integration must handle parallel execution of both `return_url` and `callback_url` handlers. `return_url` can be used for marking the order as paid and showing a success page to the customer, but we can never guarantee that the customer will actually be redirected there. The customer might have connection issues, navigate to another website before being redirected, or turn off their device. ### callback\_url The callback\_url will be invoked when a payment is complete and the transaction has been authorized. Unlike return\_url the callback\_url is **machine-to-machine** which means delivery is guaranteed. The `callback_url` must be publicly available and be a HTTPS URL. Once the payment is complete the callback\_url is invoked as a **`GET`** request to notify the system that the payment has been approved. It's possible to customize the behaviour of the callback by setting different query parameters on the callback\_url. For example, if you want to receive callbacks on errors, set the query parameter `report_error=true`. See `url.callback_url` in [the API docs](/api-reference/session/checkout_session_profile_post) for more customization options. A successful delivery to an HTTPS callback\_url sometimes requires more than one attempt. This can be the case, for example, if the server hosting the callback\_url is down for maintenance or is experiencing heavy traffic. Dintero attempts a retry only after a failed delivery attempt, the following situations are considered as failed delivery * HTTP status code 100 to 101 and 500 to 599 (inclusive) (HTTP status code 400 to 499 is considered as permanent failure) * A request timeout (10 seconds) * Any connection error such as connection timeout, bad certificate, etc Failed deliveries will be retried 20 times. > The service receiving the request for the `callback_url` **must verify** the > request by checking the status of the transaction\_id before the order payment > status is updated. The following query parameters will be included in the callback request | query | type | required | | ------------------- | ------ | -------- | | transaction\_id | string | true | | session\_id | string | true | | merchant\_reference | string | true | | time | string | true | ### return\_url Once payment is complete or canceled the user is redirected to the return\_url via a **`GET`** request. The following query parameters will be included in the return\_url request | query | type | required | | ------------------- | ------ | -------- | | transaction\_id | string | false | | error | string | false | | merchant\_reference | string | false | * If a transaction was completed successfully, a transaction\_id will be appended to the return\_url * If the user decides to cancel the payment, an error with value `cancelled` will be appended to the return\_url * See \[the full list of return\_url errors] > Building logic relying on the order of return\_url is not recommended. > It is not guaranteed that they will be invoked, since the user might interfere with it. > There could be various reasons for the urls not to be invoked like computer > closing the browser, entering a new page, etc. See more details about callback\_url and return\_url in [the API docs](/api-reference/session/checkout_session_profile_post). #### return\_url for non website users If you do not have a custom return\_url you can use the default return\_url used by our own Digital Terminal: ``` https://checkout.dintero.com/result/ ``` ## Redirect / Callback with transaction status ON\_HOLD A transaction can in some cases end up in an `ON_HOLD` status when the redirect/callback is done. Transactions with this status require additional async controls before the transaction can be **AUTHORIZED**. Transactions with status `ON_HOLD` should be handled as payment pending and you can expect an additional callback when the transaction changes status from `ON_HOLD`. > It is recommended that callback is supported to receive the additional > update when the transaction changes status from `ON_HOLD` to **AUTHORIZED** > or **FAILED**. > The alternative is to poll the transaction every hour until it changes > status from `ON_HOLD`. #### Errors | error | Description | | ------------- | ----------------------------------------------------------------------------------------------- | | cancelled | Customer cancelled the checkout payment | | authorization | Customer failed to authorize the payment | | failed | The transaction has been rejected by us, or an error has occurred during transaction processing | | capture | The transaction capture operation failed during auto-capture | ## Auto refunds When paying with Vipps or Swish, if the customer has already gotten the payment in the app, if the session is cancelled there is a small window where the customer can still complete the payment in the app. If the session was configured with auto-capture and the customer completed the payment after the session was cancelled, Dintero will automatically issue a refund. Auto refunds can be identified by the `created_by` field on the refund event being set to `dintero/auto-refund`. ## Updating transaction with merchant\_reference\_2 If the order has any new references that needs to be available on the transaction, it can be updated. To do this, see [here](/api-reference/transactions/transactions_id_put). # Dintero Hosted Checkout Source: https://docs.dintero.com/docs/checkout/apple-pay/apple-pay-hosted-checkout Enable Apple Pay in Dintero Hosted Checkout, including domain verification for embedded checkout and using pop-out or redirect flows on unverified domains. The easiest way to use Apple Pay is by using the Dintero checkout solution, where we handle the entire payment flow for you. If you are already using Dintero checkout, you just need to enable Apple Pay. Note that if you use the [embedded checkout](/docs/checkout/embedVredirect#checkout-embedded) flow you need to verify your own domain before you can use Apple Pay. If you are not able to verify the domain you can still accept payments via Apple Pay by using the [redirect](/docs/checkout/embedVredirect#checkout-redirect) payment flows. ### Getting Started To use Apple Pay as a payment method, you must comply with Apple Pay's Acceptable Use Guidelines and accept their terms of service. You also need to set up a Dintero account. #### Enable Apple Pay on Your Dintero Account During your onboarding you will be able to select Apple Pay as a payment method. If it's not enabled, you can go to settings and payment methods. From there, you can enable Apple Pay as a payment method for your account. If you use payment profiles, ensure that Apple Pay is added to the relevant profiles. #### Authentication Methods Apple Pay transactions are authenticated on the user's device using biometric authentication (Face ID, Touch ID) or a device passcode. This authentication is a core security feature of Apple Pay and provides a high level of security. Dintero's hosted checkout solution handles this authentication process seamlessly on behalf of the merchant. Since Apple Pay transactions are already authenticated on the device, they benefit from "liability shift," which means the merchant is protected from fraudulent chargebacks. This security feature eliminates the need for an additional 3-D Secure authentication step, creating a faster and more streamlined checkout experience. Dintero's hosted checkout handles this process automatically. #### Embedding the checkout on your own domain Embedding Apple Pay is only supported with `dintero_psp.applepay`. If you are using Apple Pay via Worldline (`bambora.applepay` in the API), embedding is not supported. However, *pop-out* or *redirect* flows are available. Domain verification is only needed if you use the [embedded the checkout on your own website](/docs/checkout/embedVredirect#checkout-embedded). If you use *pop-out* or *redirect* then domain verification is not required. To verify that a website is authorized to process Apple Pay on the web for a specific merchant, Apple requires a domain association file to be hosted on the merchant's domain. This file is placed in the standardized .well-known directory. Use [this file](https://checkout.dintero.com/.well-known/apple-developer-merchantid-domain-association) for Apple Pay domain verification. * Serve the file from `https://yourdomain.com/.well-known/apple-developer-merchantid-domain-association` * The recommended MIME type is `text/plain; charset=utf-8`. > Note: The file has no extension (e.g., .txt or .json), which can sometimes cause issues with certain web server configurations. If your server struggles to serve a file without an extension, you may need to add a specific MIME type or a URL rewrite rule. When the file is served from your domain contact [integration@dintero.com](mailto:integration@dintero.com) and we will update your account with support for your custom domain. Apple Pay on embedded checkout requires [`@dintero/checkout-web-sdk`](https://github.com/Dintero/Dintero.Checkout.Web.SDK) version `0.9.0` or later (latest recommended). Earlier versions will not load Apple Pay even on a verified domain. If your checkout page is itself embedded inside another iframe, also watch for `sdk_not_top_level=true` on the checkout iframe `src` - Apple Pay is suppressed in that case even with an up-to-date SDK. #### One click Apple pay in Checkout Express For [Checkout Express sessions](https://docs.dintero.com/docs/checkout/express) we support a one click Apple Pay checkout flow where the customer can pay by clicking an Apple Pay button that is shown above the customer data form. When the customer clicks this button the session is updated with customer details from Apple Pay and the customer selects a shipping option in the Apple Pay UI. Since Apple Pay's express features behaves a bit differently from the default Checkout Express flow this requires an opt in property in the payment session configuration, the `allow_express_wallet_payment` must be set to `true`. Apple Pay can still be used for payment in Express Checkout when this flag is not set. Apple Pay will then be shown next to the other payment options after the customer has entered their address details manually. ##### *One click* Apple Pay requirements for your shipping address callback endpoint Your endpoint must support returning shipping options when the `session.order.shipping_address` in the request body from Dintero’s systems contains only `country` and `postal_code`. See also full documentation for [the shipping address callback endpoint](/docs/checkout/shipping-address-callback). ### Testing #### Sandbox Environment You can test Apple Pay in a sandbox environment to simulate payments without charging any real cards. Dintero provides a test mode that allows you to trigger a test Apple Pay payment sheet, so you can confirm that the integration works as expected. #### Production Testing When you are ready to test in production, you can enable Apple Pay for your production environment. These payments will actually charge the card, so you should test with a small amount and be prepared to cancel or refund the transaction after testing. To avoid exposing Apple Pay to customers while testing, you can use [a payment profile](https://docs.dintero.com/docs/checkout/payment-profiles) that includes Apple Pay, and only use this profile for your testing purposes. ### Further reading * [The official Apple Pay documentation for domain verification](https://developer.apple.com/documentation/applepaywebmerchantregistrationapi/preparing-merchant-domains-for-verification). # Native app integration Source: https://docs.dintero.com/docs/checkout/apple-pay/apple-pay-native-app Integrate Apple Pay in your iOS app using PassKit and Dintero PSP for full control over the in-app payment sheet and merchant onboarding. Native app integration provides you with complete control over the Apple Pay user experience within your iOS application. While Dintero handles the payment processing, you implement the Apple Pay user interface directly using Apple's frameworks (like PassKit), providing a seamless and highly customized experience for your customers. Native app integration with Apple Pay is supported only via `dintero_psp.applepay`. If you are using Worldline (`bambora.applepay` in the API), native app integration is not available. ### Prerequisites #### Apple Pay Merchant Onboarding Before you can implement Apple Pay in your app, you must complete Apple's merchant onboarding process through your Apple Developer Account. This process involves several key steps: * Create a Merchant Identifier: This is a unique identifier that registers your business with Apple as a merchant capable of accepting payments. A single merchant identifier can be used for multiple apps and websites. * Create a Payment Processing Certificate: This certificate is associated with your merchant ID and is used to encrypt payment data. Contact [integration@dintero.com](mailto:integration@dintero.com) and request a Certificate Signing Request (CSR) from Dintero and use the CSR to create this certificate with Apple. After the certificate has been created you have to download the certificate and get in touch with [integration@dintero.com](mailto:integration@dintero.com) for instructions on how to send us your certificate. * Enable Apple Pay in Xcode: You need to enable the Apple Pay capability within your Xcode project settings and link it to the merchant identifier you created. Note: This process requires an active Apple Developer Program account and can take some time, so it's best to plan accordingly. For Apple Pay integration, you must create and use **two separate merchant identifiers** and **two separate Apple Pay Payment Processing Certificates**—one set for your test (sandbox) environment and one set for your production environment. Each certificate must be created using the corresponding merchant identifier and environment selection in the Apple Developer portal. #### Enable Apple Pay on Your Dintero Account During your onboarding you will be able to select Apple Pay as a payment method. If it's not enabled, you can go to settings and payment methods. From there, you can enable Apple Pay as a payment method for your account. If you use payment profiles, ensure that Apple Pay is added to the relevant profiles. ### Integration with Dintero The native payment flow with Apple Pay and Dintero is a collaborative process between your app and Dintero's API. The general flow is as follows: 1. The user taps the Apple Pay button in your app to begin the checkout process. 2. Your app requests a payment session from Dintero's API. 3. Your app fetches payment operations for the session. 4. Your app uses the PassKit framework to present the Apple Pay payment sheet to the user. 5. After the user authenticates the payment with Face ID, Touch ID, or their passcode, Apple Pay returns an encrypted PKPaymentToken. 6. Your app sends the encrypted payment token to Dintero using the endpoint returned in step 3. 7. Your app initiates the checkout Payment using the `transaction_id` returned in step 6 and Dintero creates an authorized transaction ```mermaid theme={null} sequenceDiagram actor C as Customer participant A as Your app participant AP as Apple Pay participant DC as Dintero Checkout participant DPS as Dintero PSP Service C->>A: 1. User starts payment (taps Apple Pay button) A->>DC: 2. Request Payment Session (to Dintero API) DC-->>A: Payment Session ID / Response A->>DC: 3. Fetch Payment operation for session DC-->>A: Payment operations for apple pay A->>AP: 4. Request Payment Data (Presents Apple Pay sheet via PassKit) AP-->>C: Presents Apple Pay Sheet C->>AP: Authenticates payment (Face ID/Touch ID) AP-->>A: 5. Returns Encrypted Payment Data (PKPaymentToken) Note over A: Token is encrypted A->>DPS: 6. Post Payment Data to Dintero PSP DPS->>DPS: Decrypts token and communicates with Card Network DPS-->>A: PSP result A->>DC: 7. Initiating checkout payment with PSP result DC-->>A: Payment Session Result Note over A: Update UI/Complete checkout ``` This integration gives you full control over the user experience while leveraging Dintero's secure and reliable payment processing backend. > Note that only the Visa and Mastercard payment networks are supported. #### Creating an Apple Pay payment session (step 2) Example payment session request body, note that the return\_url must match the app url namespace and that `initial_recipient=merchant` must be set if the link in the session payment response should be followed. ```json theme={null} { "url": { "return_url": "yourapp://redirect?initial_recipient=merchant", "callback_url": "https://your-backend-callback-handler.com/endpoint" }, "order": { "amount": 20100, "currency": "NOK", "merchant_reference": "", "items": [ { "id": "", "line_id": "", "description": "Item to be paid for", "amount": 20100, "quantity": 1, "vat_amount": 4020, "vat": 25 } ] }, "configuration": { "channel": "in_app", "dintero_psp": { "applepay": { "enabled": true } } }, "expires_at": "2099-12-31T23:23:59.999Z" } ``` #### Fetching payment operations for the session (step 3) The payment operations describe how to post payment data from Apple Pay to Dintero. For a native app integration only the operation with `rel` set to `submit-dintero-psp-applepay` is used. Example request (note, there is no body or content type in this POST request): ``` POST https://checkout.dintero.com/v1/view/{session_id}/payments/dintero_psp.applepay ``` Example response body: ```json theme={null} { "operations": [ { "href": "https://payments.psp.dintero.com/apple-pay/v1/{account_id}/payments/{payment_id}/transactions?access_token={access_token}", "method": "POST", "rel": "submit-dintero-psp-applepay", "content_type": "application/json", "supported_networks": [ "VISA", "MASTERCARD" ], "merchant_country": "NO" }, { "href": "https://payments.psp.dintero.com/apple-pay/v1/{account_id}/payments/{payment_id}/validate-merchant?access_token={access_token}", "method": "POST", "rel": "validate-dintero-psp-applepay-merchant", "content_type": "application/json" } ] } ``` #### Posting payment data from Apple Pay (step 6) Post the encrypted payment data from Apple Pay to Dintero. For this you use the `submit-dintero-psp-applepay` payment operation. Extract the `access_token` query parameter from the operation `href` and post the payment data. Please remove the `access_token` query param from the URL before posting payment data. Ensure you send the `payment_data` as a JSON string. ##### Transforming the Apple Pay payment token The `PKPaymentToken` from Apple Pay cannot be sent directly — it must be transformed into the following JSON structure before being stringified as `payment_data`: ```json theme={null} { "payment": { "token": { "paymentData": { "data": "", "signature": "", "header": { "publicKeyHash": "", "ephemeralPublicKey": "", "transactionId": "" }, "version": "" // eg. "EC_v1" }, "paymentMethod": { "displayName": // "Visa 1234", "network": "token.paymentMethod.network?.rawValue" // "Visa", "type": "token.paymentMethod.type.stringValue" // "debit" }, "transactionIdentifier": "" } } } ``` The fields map from `PKPayment` as follows: | JSON field | Source | | --------------------------- | ------------------------------------------------------------------------------- | | `paymentData` | Decode `PKPaymentToken.paymentData` (raw `Data`) as JSON | | `paymentMethod.displayName` | `PKPaymentToken.paymentMethod.displayName` | | `paymentMethod.network` | `PKPaymentToken.paymentMethod.network.rawValue` (e.g. `"Visa"`, `"MasterCard"`) | | `paymentMethod.type` | `PKPaymentToken.paymentMethod.type` as string (e.g. `"debit"`, `"credit"`) | | `transactionIdentifier` | `PKPaymentToken.transactionIdentifier` | See the [reference implementation](https://github.com/Dintero/dintero-ios-native-example) for a complete Swift example of this transformation. Example request ``` POST https://payments.psp.dintero.com/apple-pay/v1/{account_id}/payments/{payment_id}/transactions Authorization: {access_token} Content-Type: application/json Body: { "payment_data": "{JSON stringified object with the structure described above}", "reference": "{unique id}" } ``` Example response body ```json theme={null} { "payment_id": "{payment_id}", "transaction_id": "{transaction_id}", "type": "APPLE_PAY_AUTHENTICATION" } ``` #### Initiating checkout payment (step 7) Initiating the checkout payment using the `transaction_id` returned when posting the payment data. ``` POST https://api.dintero.com/v1/accounts/{account_id}/payments/sessions/{session_id}/pay Content-Type: application/json Body: { "payment_product_type": "dintero_psp.applepay", "psp_transaction_id": "{transaction_id}" } ``` After posting to the initiate checkout payment endpoint the payment session is completed and has created an authorized transaction. The payment response will contain a `return_url` but there is no need to follow or call it. ### Best Practices Make sure you follow the following best practices. * Never log or store Apple Pay tokens * Implement proper error handling to avoid exposing sensitive information * Validate all payment responses on your server ### Example application See [https://github.com/Dintero/dintero-ios-native-example](https://github.com/Dintero/dintero-ios-native-example) for an example application on how to accept Apple Pay payments. ### Further reading * [Apple Pay Developer Documentation](https://developer.apple.com/documentation/PassKit/apple-pay) * [Apple Pay Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/apple-pay) * [Apple Pay Marketing Guidelines](https://developer.apple.com/apple-pay/marketing/) * [Apple Pay Merchant Integration Guide ](https://developer.apple.com/apple-pay/Apple-Pay-Merchant-Integration-Guide.pdf) # Overview Source: https://docs.dintero.com/docs/checkout/apple-pay/apple-pay-overview Compare Apple Pay integration options with Dintero, including hosted checkout, embedded checkout with domain verification, and native iOS app integration. [Hosted Checkout]: /docs/checkout/apple-pay/apple-pay-hosted-checkout [Hosted Checkout Domain Verification]: /docs/checkout/apple-pay/apple-pay-hosted-checkout#embedding-the-checkout-on-your-own-domain [Native App Integration]: /docs/checkout/apple-pay/apple-pay-native-app Apple Pay™ is a digital wallet and mobile payment service that enables users to make secure and contactless payments with their Apple devices, such as iPhones, Apple Watches, and iPads. It tokenizes a user's card information, providing a secure and private way to pay for goods and services in stores, within apps, and on the web. ### Integration Options with Dintero There are primarily two ways to support Apple Pay in your payment flow: hosted checkout or native app integration. #### 1. Hosted Checkout If you are using our hosted checkout solution, you can add Apple Pay without any direct integration with Apple Pay's APIs. Simply enable Apple Pay in your Dintero settings, and we will handle the rest, including the payment sheet display and transaction processing. If you want to embed the checkout on your own domain the domain needs to be verified. See the [Hosted Checkout Domain Verification] instructions. #### 2. Native App Integration For merchants who require a more customized and integrated payment experience, such as in a native mobile or web application, you can integrate with Apple Pay yourself. This gives you full control over the user interface and payment flow, while still leveraging Dintero as your payment gateway. ### Apple Pay Feature Support by PSP Provider Dintero supports Apple Pay payments through both our own PSP and via Worldline. The table below shows which integration types are supported by each provider. | PSP | Native | Hosted | Hosted Embedded | | --------- | :----: | :----: | :-------------: | | Dintero | ✅ | ✅ | ✅ | | Worldline | ❌ | ✅ | ❌ | ### Liability Apple Pay processes payments through the customer's underlying card (credit, debit, or prepaid). This means: * **Chargeback risk**: Transactions are subject to card network chargeback rules. Customers can dispute charges through their card issuer (e.g., fraud disputes, items not received), following the same process and liability rules as regular card payments. * **Strong authentication**: Payments are authenticated using device biometrics (Face ID, Touch ID) or device passcode. This satisfies Strong Customer Authentication (SCA) requirements and reduces the risk of fraudulent use compared to manual card entry. * **Funds guarantee**: Apple Pay transactions go through a standard card authorization flow. An `AUTHORIZED` transaction means funds have been reserved at the card network level, and a `CAPTURED` transaction means funds are on their way to settlement. * **ECI**: Merchants can inspect the `card.eci` field on an authorized transaction before capturing to determine the authentication level and resulting liability. A value of `05` (Visa) or `02` (Mastercard) indicates full SCA with liability shift to the issuer. `06`/`01` indicates authentication was attempted. `07`/`00` indicates no authentication was performed and the merchant bears fraud liability. ### Next Steps Explore Native App Integration for native iOS and web implementation. * Learn about [Hosted Checkout] for a simple, managed integration * Explore [Native App Integration] for native iOS implementation # Create an API client Source: https://docs.dintero.com/docs/checkout/checkout-client Step-by-step guide for creating a Dintero API client in Backoffice and saving the client_id and client_secret credentials safely. To start using the Dintero Checkout on your website, you need to create an API Client through the **Dintero Backoffice**. ### Step by step-guide First, log into **[Backoffice](https://backoffice.dintero.com)**, then follow this interactive slide-show: 1. Click on **settings**. 2. Under API & Integrations click on **API clients**. 3. Click on **Create new API client**. 4. Click on **Checkout client**. 5. Write the **URL** of your website. 6. Click on **Create new API client**. 7. Remember to **Save the credentials**, the **Client Secret** can not be shown again. 8. Click **OK**. 9. The Client is now **Created**.