ProcessOut Invoices API

The Invoices API from ProcessOut — 6 operation(s) for invoices.

OpenAPI Specification

processout-invoices-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: ProcessOut Balances Invoices API
  version: 1.0.3
  description: ProcessOut is a payments technical layer that standardizes merchant connections to 100+ payment providers (PSPs/APMs), with a PCI DSS card vault, tokenization for recurring payments, dynamic/no-code checkout, ML-based smart routing, analytics and transaction reconciliation. Authentication is HTTP Basic using a project ID (username) and secret API key (password). This OpenAPI 3.1 description was assembled by API Evangelist from the per-operation OpenAPI fragments ProcessOut publishes in each ReadMe API-reference page.
  contact:
    email: help@processout.com
    url: https://docs.processout.com
servers:
- url: https://api.processout.com
  description: Production
security:
- sec0: []
tags:
- name: Invoices
paths:
  /invoices/{invoice_id}/authorize:
    post:
      summary: Authorizing an invoice
      description: ''
      operationId: authorizing-an-invoice
      parameters:
      - name: invoice_id
        in: path
        description: The invoice ID generated by ProcessOut during the invoice creation
        schema:
          type: string
        required: true
      - name: Idempotency-Key
        in: header
        description: Unique key to your request that will be used for idempotency
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                source:
                  type: string
                  description: Source used to authorization the payment. Can be a card, a token or a gateway request.
                save_source:
                  type: boolean
                  description: Optional if you want us to save the payment source (card or APM) by creating a customer token during the authorisation
                initial_scheme_transaction_id:
                  type: string
                  description: Override the scheme ID
                incremental:
                  type: boolean
                  description: Request a pre-authorization that can be incremented at a later stage
                  default: false
                preferred_scheme:
                  type: string
                  description: 'Scheme the customer would prefer to process transaction on. Ex: `carte bancaire`. If there is already a default set on the card object, then you can override it using this field. Please use `none` if you wish to override it back to empty for this request. <br>_Only supported on compatible payment providers_.'
                external_three_d_s:
                  type: object
                  description: Allow you to pass 3DS data obtained from an external provider outside of ProcessOut. Please contact your CSM to ensure the PSPs you are routing towards support this functionality.
                  properties:
                    xid:
                      type: string
                      description: Base64 encoded XID - Transaction identifier resulting from authentication processing.
                    trans_status:
                      type: string
                      description: AResTransStatus (fingerprint) or CResTransStatus (challenge) from the 3DS response
                    eci:
                      type: string
                      description: Electronic Commerce Indicator
                    cavv:
                      type: string
                      description: Cardholder Authentication Verification Value (CAVV), Authentication Verification Value (AVV) or Universal Cardholder Authentication Field (UCAF). Must be in Base64 encoded format.
                    ds_trans_id:
                      type: string
                      description: Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction.
                    version:
                      type: string
                      description: 3DS version used e.g. 2.2.0
                    authentication_flow:
                      type: string
                      description: 'Denotes the flow which 3DS took. Frictionless meaning no challenge taken place from the customer''s point of view. Accepted values: `FRICTIONLESS` or `CHALLENGE`'
                      enum:
                      - '"FRICTIONLESS"'
                      - '"CHALLENGE"'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"success\": true,\n    \"transaction\": {\n        \"id\": \"tr_7FPylQ0EOrLpcYw3E6OhdCEVnRCdFqoZ\",\n        \"project_id\": \"proj_IFCgGTmyClrgTOzsschN1y7GJttHVQ7S\",\n        \"customer_id\": \"cust_MFW0Z4jtoXLfADjPKlVRl5LxWkCTUgRw\",\n        \"routing_tags\": [\"route-1\", \"route-2\"],\n        \"fraud_service_results\": null,\n        \"operations\": [\n            {\n                \"id\": \"tr_op_ufSmIq7kU3bB6bVoiislmqeMNmxquzpX\",\n                \"transaction_id\": \"tr_7FPylQ0EOrLpcYw3E6OhdCEVnRCdFqoZ\",\n                \"authenticated_transaction_id\": \"8284686045\",\n                \"authorization_code\": null,\n                \"gateway_configuration_id\": \"gway_conf_c23e011db34f4bac44e051840dfa3783\",\n                \"card_id\": \"card_TVeLAxjOaiHzru3m7T1o0ZLUg6cXIQe8\",\n                \"amount\": \"29\",\n                \"amount_local\": \"31.8321371\",\n                \"currency\": \"EUR\",\n                \"is_attempt\": false,\n                \"has_failed\": false,\n                \"is_accountable\": false,\n                \"type\": \"request\",\n                \"metadata\": {\n                    \"is_sale\": \"false\"\n                },\n                \"error_code\": null,\n                \"error_message\": null,\n                \"payment_type\": \"card\",\n                \"eci\": null,\n                \"is_on_us\": null,\n                \"arn\": null,\n                \"scheme_id\": \"8284686045\",\n                \"initial_scheme_transaction_id\": \"\",\n                \"gateway_operation_id\": \"\",\n                \"gateway_data\": {\n                    \"token\": \"test-valid\"\n                },\n                \"chargeback_reason\": null,\n                \"created_at\": \"2023-04-21T20:24:43.342363262Z\",\n                \"merchant_advice_code\": null,\n                \"merchant_advice_reason\": null,\n                \"recommendation_code\": null,\n                \"recommendation_reason\": null,\n                \"challenge_indicator\": \"no-preference\",\n                \"sca_exemption_reason\": \"\"\n            },\n            {\n                \"id\": \"tr_op_FVJD7TG7tBrldTEoSRNr0uA48XQgskVZ\",\n                \"transaction_id\": \"tr_7FPylQ0EOrLpcYw3E6OhdCEVnRCdFqoZ\",\n                \"authenticated_transaction_id\": \"8284686045\",\n                \"authorization_code\": null,\n                \"gateway_configuration_id\": \"gway_conf_c23e011db34f4bac44e051840dfa3783\",\n                \"card_id\": \"card_TVeLAxjOaiHzru3m7T1o0ZLUg6cXIQe8\",\n                \"amount\": \"29\",\n                \"amount_local\": \"31.8321371\",\n                \"currency\": \"EUR\",\n                \"is_attempt\": true,\n                \"has_failed\": false,\n                \"is_accountable\": false,\n                \"type\": \"authorization\",\n                \"metadata\": {\n                    \"is_sale\": \"false\"\n                },\n                \"error_code\": null,\n                \"error_message\": null,\n                \"payment_type\": \"card\",\n                \"acquirer_name\": null,\n                \"eci\": null,\n                \"merchant_account_id\": null,\n                \"is_on_us\": null,\n                \"arn\": null,\n                \"scheme_id\": \"8284686045\",\n                \"initial_scheme_transaction_id\": \"\",\n                \"gateway_operation_id\": \"test-valid-17580cef700c691a\",\n                \"gateway_data\": {\n                    \"token\": \"test-valid\"\n                },\n                \"chargeback_reason\": null,\n                \"created_at\": \"2023-04-21T20:24:43.342417133Z\",\n                \"merchant_advice_code\": null,\n                \"merchant_advice_reason\": null,\n                \"recommendation_code\": null,\n                \"recommendation_reason\": null,\n                \"challenge_indicator\": \"no-preference\",\n                \"sca_exemption_reason\": \"\"\n            },\n            {\n                \"id\": \"tr_op_fLlh7plcTzPelsHiVRoTf6qaURfZLDTm\",\n                \"transaction_id\": \"tr_7FPylQ0EOrLpcYw3E6OhdCEVnRCdFqoZ\",\n                \"authenticated_transaction_id\": \"8284686045\",\n                \"authorization_code\": null,\n                \"gateway_configuration_id\": \"gway_conf_c23e011db34f4bac44e051840dfa3783\",\n                \"card_id\": \"card_TVeLAxjOaiHzru3m7T1o0ZLUg6cXIQe8\",\n                \"amount\": \"29\",\n                \"amount_local\": \"31.8321371\",\n                \"currency\": \"EUR\",\n                \"is_attempt\": false,\n                \"has_failed\": false,\n                \"is_accountable\": false,\n                \"type\": \"authorization\",\n                \"metadata\": {\n                    \"is_sale\": \"false\"\n                },\n                \"error_code\": null,\n                \"error_message\": null,\n                \"payment_type\": \"card\",\n                \"acquirer_name\": null,\n                \"eci\": null,\n                \"merchant_account_id\": null,\n                \"is_on_us\": null,\n                \"arn\": null,\n                \"scheme_id\": \"8284686045\",\n                \"initial_scheme_transaction_id\": \"\",\n                \"gateway_operation_id\": \"test-valid-17580cef700c691a\",\n                \"gateway_data\": {\n                    \"token\": \"test-valid\"\n                },\n                \"chargeback_reason\": null,\n                \"created_at\": \"2023-04-21T20:24:43.342463204Z\",\n                \"merchant_advice_code\": null,\n                \"merchant_advice_reason\": null,\n                \"recommendation_code\": null,\n                \"recommendation_reason\": null,\n                \"challenge_indicator\": \"no-preference\",\n                \"sca_exemption_reason\": \"\"\n            }\n        ],\n        \"name\": \"Amazing Product\",\n        \"currency\": \"EUR\",\n        \"metadata\": {\n            \"fruit\": \"banana\"\n        },\n        \"sandbox\": true,\n        \"created_at\": \"2023-04-21T20:24:37.850357Z\",\n        \"invoice_id\": \"iv_RRW65C1I2jAGiFuwhEtW5UGU1tMkBRBS\",\n        \"gateway_name\": \"sandbox\",\n        \"status\": \"authorized\",\n        \"gateway_configuration_id\": \"gway_conf_c23e011db34f4bac44e051840dfa3783\",\n        \"card_id\": \"card_TVeLAxjOaiHzru3m7T1o0ZLUg6cXIQe8\",\n        \"error_code\": null,\n        \"error_message\": null,\n        \"payment_type\": \"card\",\n        \"eci\": null,\n        \"cvc_check\": \"passed\",\n        \"avs_check\": \"passed\",\n        \"card_checks\": {\n            \"cvc_check\": \"passed\",\n            \"cvc_check_reason\": null,\n            \"avs_check\": \"passed\",\n            \"avs_postal_check\": \"passed\",\n            \"avs_postal_check_reason\": null,\n            \"avs_street_check\": \"passed\",\n            \"avs_street_check_reason\": null,\n            \"avs_name_check\": \"passed\",\n            \"avs_name_check_reason\": null\n        },\n        \"amount\": \"29\",\n        \"amount_local\": \"31.8321371\",\n        \"authorized_amount\": \"29\",\n        \"authorized_amount_local\": \"31.8321371\",\n        \"captured_amount\": \"0\",\n        \"captured_amount_local\": \"0\",\n        \"available_amount\": \"0\",\n        \"available_amount_local\": \"0\",\n        \"incremented_amount\": \"0\",\n        \"incremented_amount_local\": \"0\",\n        \"refunded_amount\": \"0\",\n        \"refunded_amount_local\": \"0\",\n        \"authorized_at\": \"2023-04-21T20:24:43.342463204Z\",\n        \"captured_at\": null,\n        \"refunded_at\": null,\n        \"voided_at\": null,\n        \"chargedback_at\": null,\n        \"received_fraud_notification\": false,\n        \"received_retrieval_request\": false,\n        \"acquirer_name\": null,\n        \"attempts_count\": 1,\n        \"authorized\": true,\n        \"captured\": false,\n        \"refunded\": false,\n        \"voided\": false,\n        \"chargedback\": false,\n        \"merchant_advice_code\": null,\n        \"merchant_advice_reason\": null,\n        \"recommendation_code\": null,\n        \"recommendation_reason\": null,\n        \"scheme_id\": \"8284686045\",\n        \"initial_scheme_transaction_id\": null,\n        \"sca\": {\n            \"scope\": \"out-of-scope\",\n            \"out_of_scope_reason\": \"mit\",\n            \"inscope_compliance\": \"not-applicable\",\n            \"challenge_result\": \"honoured\",\n            \"exemption_result\": \"no-exemption-reason-set\"\n        },\n        \"refunds\": null,\n        \"duplicate_distance_seconds\": null\n    }\n}"
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                    default: true
                  transaction:
                    type: object
                    properties:
                      id:
                        type: string
                        example: tr_7FPylQ0EOrLpcYw3E6OhdCEVnRCdFqoZ
                      project_id:
                        type: string
                        example: proj_IFCgGTmyClrgTOzsschN1y7GJttHVQ7S
                      customer_id:
                        type: string
                        example: cust_MFW0Z4jtoXLfADjPKlVRl5LxWkCTUgRw
                      routing_tags:
                        type: array
                        items:
                          type: string
                          example: route-1
                      fraud_service_results: {}
                      operations:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              example: tr_op_ufSmIq7kU3bB6bVoiislmqeMNmxquzpX
                            transaction_id:
                              type: string
                              example: tr_7FPylQ0EOrLpcYw3E6OhdCEVnRCdFqoZ
                            authenticated_transaction_id:
                              type: string
                              example: '8284686045'
                            authorization_code: {}
                            gateway_configuration_id:
                              type: string
                              example: gway_conf_c23e011db34f4bac44e051840dfa3783
                            card_id:
                              type: string
                              example: card_TVeLAxjOaiHzru3m7T1o0ZLUg6cXIQe8
                            amount:
                              type: string
                              example: '29'
                            amount_local:
                              type: string
                              example: '31.8321371'
                            currency:
                              type: string
                              example: EUR
                            is_attempt:
                              type: boolean
                              example: false
                              default: true
                            has_failed:
                              type: boolean
                              example: false
                              default: true
                            is_accountable:
                              type: boolean
                              example: false
                              default: true
                            type:
                              type: string
                              example: request
                            metadata:
                              type: object
                              properties:
                                is_sale:
                                  type: string
                                  example: 'false'
                            error_code: {}
                            error_message: {}
                            payment_type:
                              type: string
                              example: card
                            eci: {}
                            is_on_us: {}
                            arn: {}
                            scheme_id:
                              type: string
                              example: '8284686045'
                            initial_scheme_transaction_id:
                              type: string
                              example: ''
                            gateway_operation_id:
                              type: string
                              example: ''
                            gateway_data:
                              type: object
                              properties:
                                token:
                                  type: string
                                  example: test-valid
                            chargeback_reason: {}
                            created_at:
                              type: string
                              example: '2023-04-21T20:24:43.342363262Z'
                            merchant_advice_code: {}
                            merchant_advice_reason: {}
                            recommendation_code: {}
                            recommendation_reason: {}
                            challenge_indicator:
                              type: string
                              example: no-preference
                            sca_exemption_reason:
                              type: string
                              example: ''
                      name:
                        type: string
                        example: Amazing Product
                      currency:
                        type: string
                        example: EUR
                      metadata:
                        type: object
                        properties:
                          fruit:
                            type: string
                            example: banana
                      sandbox:
                        type: boolean
                        example: true
                        default: true
                      created_at:
                        type: string
                        example: '2023-04-21T20:24:37.850357Z'
                      invoice_id:
                        type: string
                        example: iv_RRW65C1I2jAGiFuwhEtW5UGU1tMkBRBS
                      gateway_name:
                        type: string
                        example: sandbox
                      status:
                        type: string
                        example: authorized
                      gateway_configuration_id:
                        type: string
                        example: gway_conf_c23e011db34f4bac44e051840dfa3783
                      card_id:
                        type: string
                        example: card_TVeLAxjOaiHzru3m7T1o0ZLUg6cXIQe8
                      error_code: {}
                      error_message: {}
                      payment_type:
                        type: string
                        example: card
                      eci: {}
                      cvc_check:
                        type: string
                        example: passed
                      avs_check:
                        type: string
                        example: passed
                      card_checks:
                        type: object
                        properties:
                          cvc_check:
                            type: string
                            example: passed
                          cvc_check_reason: {}
                          avs_check:
                            type: string
                            example: passed
                          avs_postal_check:
                            type: string
                            example: passed
                          avs_postal_check_reason: {}
                          avs_street_check:
                            type: string
                            example: passed
                          avs_street_check_reason: {}
                          avs_name_check:
                            type: string
                            example: passed
                          avs_name_check_reason: {}
                      amount:
                        type: string
                        example: '29'
                      amount_local:
                        type: string
                        example: '31.8321371'
                      authorized_amount:
                        type: string
                        example: '29'
                      authorized_amount_local:
                        type: string
                        example: '31.8321371'
                      captured_amount:
                        type: string
                        example: '0'
                      captured_amount_local:
                        type: string
                        example: '0'
                      available_amount:
                        type: string
                        example: '0'
                      available_amount_local:
                        type: string
                        example: '0'
                      incremented_amount:
                        type: string
                        example: '0'
                      incremented_amount_local:
                        type: string
                        example: '0'
                      refunded_amount:
                        type: string
                        example: '0'
                      refunded_amount_local:
                        type: string
                        example: '0'
                      authorized_at:
                        type: string
                        example: '2023-04-21T20:24:43.342463204Z'
                      captured_at: {}
                      refunded_at: {}
                      voided_at: {}
                      chargedback_at: {}
                      received_fraud_notification:
                        type: boolean
                        example: false
                        default: true
                      received_retrieval_request:
                        type: boolean
                        example: false
                        default: true
                      acquirer_name: {}
                      attempts_count:
                        type: integer
                        example: 1
                        default: 0
                      authorized:
                        type: boolean
                        example: true
                        default: true
                      captured:
                        type: boolean
                        example: false
                        default: true
                      refunded:
                        type: boolean
                        example: false
                        default: true
                      voided:
                        type: boolean
                        example: false
                        default: true
                      chargedback:
                        type: boolean
                        example: false
                        default: true
                      merchant_advice_code: {}
                      merchant_advice_reason: {}
                      recommendation_code: {}
                      recommendation_reason: {}
                      scheme_id:
                        type: string
                        example: '8284686045'
                      initial_scheme_transaction_id: {}
                      sca:
                        type: object
                        properties:
                          scope:
                            type: string
                            example: out-of-scope
                          out_of_scope_reason:
                            type: string
                            example: mit
                          inscope_compliance:
                            type: string
                            example: not-applicable
                          challenge_result:
                            type: string
                            example: honoured
                          exemption_result:
                            type: string
                            example: no-exemption-reason-set
                      refunds: {}
                      duplicate_distance_seconds: {}
        '401':
          description: '401'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"success\": false,\n    \"message\": \"Could not read your project ID. Please make sure to use Basic HTTP authentication using your project ID as the username. If you have any questions, feel free to ask for help at help@processout.com!\",\n    \"error_type\": \"request.authentication.invalid\"\n}"
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                    default: true
                  message:
                    type: string
                    example: Could not read your project ID. Please make sure to use Basic HTTP authentication using your project ID as the username. If you have any questions, feel free to ask for help at help@processout.com!
                  error_type:
                    type: string
                    example: request.authentication.invalid
        '404':
          description: '404'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"error_type\": \"resource.invoice.not-found\",\n    \"message\": \"The invoice could not be found.\",\n    \"success\": false\n}"
              schema:
                type: object
                properties:
                  error_type:
                    type: string
                    example: resource.invoice.not-found
                  message:
                    type: string
                    example: The invoice could not be found.
                  success:
                    type: boolean
                    example: false
                    default: true
        '410':
          description: '410'
          content:
            application/json:
              examples:
                Transaction error:
                  value: "{\n    \"error_type\": \"card.do-not-honor\",\n    \"message\": \"The bank has returned a do-not-honor error\",\n    \"success\": false\n}"
              schema:
                type: object
                properties:
                  error_type:
                    type: string
                    example: card.do-not-honor
                  message:
                    type: string
                    example: The bank has returned a do-not-honor error
                  success:
                    type: boolean
                    example: false
                    default: true
        4XX:
          description: 4XX
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"error_type\": \"*Error code*\",\n    \"message\": \"*Error message*\",\n    \"success\": false\n}"
              schema:
                type: object
                properties:
                  error_type:
                    type: string
                    example: '*Error code*'
                  message:
                    type: string
                    example: '*Error message*'
                  success:
                    type: boolean
                    example: false
                    default: true
      x-readme:
        code-samples:
        - language: node
          code: "var ProcessOut = require(\"processout\");\nvar client = new ProcessOut(\n    \"test-proj_gAO1Uu0ysZJvDuUpOGPkUBeE3pGalk3x\",\n    \"key_sandbox_mah31RDFqcDxmaS7MvhDbJfDJvjtsFTB\");\n\n// The source could also be a token tok_fKK4btSG7wd13ZZaevzhMcuNbpjcu1Zy\ninvoice.authorize(\"card_1jSEVrx7oaRta1KEdxoMWbiGkK2MijrZ\", {\n    // optional if you want us to auto capture for you\n    \"auto_capture_at\": \"2022-10-02T15:00:00Z\"\n}).then(\n    function(transaction) {\n        // The invoice was authorized and returned a transaction\n\n    }, function(err) {\n        // The invoice could not be authorized\n    });"
          name: node.js
        - language: python
          code: "import processout\nclient = processout.ProcessOut(\n    \"test-proj_gAO1Uu0ysZJvDuUpOGPkUBeE3pGalk3x\", \n    \"key_sandbox_mah31RDFqcDxmaS7MvhDbJfDJvjtsFTB\")\n\n# The source could also be a token tok_fKK4btSG7wd13ZZaevzhMcuNbpjcu1Zy\ntransaction = invoice.authorize(\"card_1jSEVrx7oaRta1KEdxoMWbiGkK2MijrZ\", {\n    # optional if you want us to auto capture for you\n    \"auto_capture_at\": \"2022-10-02T15:00:00Z\"\n})"
        - language: ruby
          code: "require \"processout\"\nclient = ProcessOut::Client.new(\n    \"test-proj_gAO1Uu0ysZJvDuUpOGPkUBeE3pGalk3x\", \n    \"key_sandbox_mah31RDFqcDxmaS7MvhDbJfDJvjtsFTB\")\n\n# The source could also be a token tok_fKK4btSG7wd13ZZaevzhMcuNbpjcu1Zy\ntransaction = invoice.authorize(\"card_1jSEVrx7oaRta1KEdxoMWbiGkK2MijrZ\", (\n    # optional if you want us to auto capture for you\n    auto_capture_at: \"2022-10-02T15:00:00Z\"\n))"
        - language: php
          code: "<?php\n$client = new \\ProcessOut\\ProcessOut(\n    \"test-proj_gAO1Uu0ysZJvDuUpOGPkUBeE3pGalk3x\", \n    \"key_sandbox_mah31RDFqcDxmaS7MvhDbJfDJvjtsFTB\");\n\n// The source could also be a token tok_fKK4btSG7wd13ZZaevzhMcuNbpjcu1Zy\n$transaction = $invoice->authorize(\"card_1jSEVrx7oaRta1KEdxoMWbiGkK2MijrZ\", array(\n    // optional if you want us to auto capture for you\n    \"auto_capture_at\" => \"2022-10-02T15:00:00Z\"\n));"
        - language: go
          code: "import \"github.com/processout/processout-go\"\n\nvar client = processout.New(\n    \"test-proj_gAO1Uu0ysZJvDuUpOGPkUBeE3pGalk3x\", \n    \"key_sandbox_mah31RDFqcDxmaS7MvhDbJfDJvjtsFTB\",\n)\n\n// The source could also be a token tok_fKK4btSG7wd13ZZaevzhMcuNbpjcu1Zy\ntr, _ := iv.Authorize(\"card_1jSEVrx7oaRta1KEdxoMWbiGkK2MijrZ\", InvoiceAuthorizeParameters{\n    AutoCaptureAt: \"2022-10-02T15:00:00Z\",\n})"
        samples-languages:
        - node
        - python
        - ruby
        - php
        - go
      tags:
      - Invoices
  /invoices/{invoice_id}/capture:
    post:
      summary: Capture an invoice
      description: ''
      operationId: capture-an-invoice
      parameters:
      - name: Idempotency-Key
        in: header
        description: Unique key to your request that will be used for idempotency
        schema:
          type: string
      - name: invoice_id
        in: path
        description: The invoice ID generated by ProcessOut during the invoice creation
        schema:
          type: string
        required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                source:
                  type: string
                  description: Source used to capture the payment. Can be a card, a token or a gateway request.
                invoice_detail_ids:
                  type: array
                  description: Array of invoice details created with the invoice to capture.<br>_Only supported on compatible payment providers_
                  items:
                    type: string
                capture_amount:
                  type: string
                  description: Amount to capture partially the transaction
                capture_statement_descriptor:
                  type: string
                  description: Some payment providers are supporting different statement descriptor for the capture. Use this field to send a different one. By default, the one sent during the authorization will be forwarded.
             

# --- truncated at 32 KB (179 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/processout/refs/heads/main/openapi/processout-invoices-api-openapi.yml