Full Code of mercadopago/sdk-python for AI

master d7411c55ba3b cached
95 files
825.5 KB
218.5k tokens
217 symbols
1 requests
Download .txt
Showing preview only (862K chars total). Download the full file or copy to clipboard to get everything.
Repository: mercadopago/sdk-python
Branch: master
Commit: d7411c55ba3b
Files: 95
Total size: 825.5 KB

Directory structure:
gitextract_6mcqg6lx/

├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   ├── feature_request.yml
│   │   └── question.yml
│   └── workflows/
│       ├── cd.yml
│       └── ci.yml
├── .gitignore
├── .pre-commit-config.yaml
├── CODE_OF_CONDUCT.md
├── CODING_GUIDELINES.md
├── CONTRIBUTING.md
├── LICENSE
├── MANIFEST.in
├── README.md
├── SUPPORT.md
├── docs/
│   ├── config/
│   │   ├── config.html
│   │   ├── index.html
│   │   └── request_options.html
│   ├── core/
│   │   ├── index.html
│   │   └── mp_base.html
│   ├── http/
│   │   ├── http_client.html
│   │   └── index.html
│   ├── index.html
│   ├── resources/
│   │   ├── advanced_payment.html
│   │   ├── card.html
│   │   ├── card_token.html
│   │   ├── customer.html
│   │   ├── disbursement_refund.html
│   │   ├── identification_type.html
│   │   ├── index.html
│   │   ├── merchant_order.html
│   │   ├── payment.html
│   │   ├── payment_methods.html
│   │   ├── preapproval.html
│   │   ├── preference.html
│   │   ├── refund.html
│   │   └── user.html
│   └── sdk.html
├── mercadopago/
│   ├── __init__.py
│   ├── config/
│   │   ├── __init__.py
│   │   ├── config.py
│   │   └── request_options.py
│   ├── core/
│   │   ├── __init__.py
│   │   └── mp_base.py
│   ├── examples/
│   │   ├── order/
│   │   │   ├── cancel_order.py
│   │   │   ├── capture_order.py
│   │   │   ├── create_order.py
│   │   │   ├── create_transaction.py
│   │   │   ├── delete_transaction.py
│   │   │   ├── get_order.py
│   │   │   ├── process_order.py
│   │   │   ├── refund_partial.py
│   │   │   ├── refund_total.py
│   │   │   └── update_transaction.py
│   │   └── preference/
│   │       └── create_preference.py
│   ├── http/
│   │   ├── __init__.py
│   │   └── http_client.py
│   ├── resources/
│   │   ├── __init__.py
│   │   ├── advanced_payment.py
│   │   ├── card.py
│   │   ├── card_token.py
│   │   ├── chargeback.py
│   │   ├── customer.py
│   │   ├── disbursement_refund.py
│   │   ├── identification_type.py
│   │   ├── merchant_order.py
│   │   ├── order.py
│   │   ├── payment.py
│   │   ├── payment_methods.py
│   │   ├── plan.py
│   │   ├── preapproval.py
│   │   ├── preference.py
│   │   ├── refund.py
│   │   ├── subscription.py
│   │   └── user.py
│   └── sdk.py
├── pyproject.toml
├── setup.cfg
└── tests/
    ├── .pylintrc
    ├── __init__.py
    ├── test_advanced_payment.py
    ├── test_card.py
    ├── test_card_token.py
    ├── test_chargeback.py
    ├── test_customer.py
    ├── test_identification_type.py
    ├── test_merchant_order.py
    ├── test_order.py
    ├── test_payment.py
    ├── test_payment_methods.py
    ├── test_plan.py
    ├── test_preapproval.py
    ├── test_preference.py
    ├── test_subscription.py
    └── test_user.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: 🐛 Bug Report
description: Report a bug or unexpected behavior in the SDK
title: "[BUG]: "
labels: ["bug", "needs-triage"]
assignees: ["danielalfarourrea","luismeli10","orojaspardo"]

body:
  - type: markdown
    attributes:
      value: |
        ## 🐛 Thanks for reporting this issue!

        Please make sure you tested with the latest version of the relevant packages and/or checked existing issues to avoid duplicates. If the bug persists, open the issue with a clear and concise description including screenshots, if applicable. We appreciate your feedback!

        **Before reporting a bug:**
        - 🔍 **Search [existing issues](./issues?q=is%3Aissue) to avoid duplicates**
        - 📚 **Verify you are using the [latest version](../../releases)**
        - 💡 **Try to reproduce the problem in sandbox environment**
        - ⚠️ **IMPORTANT: Your bug will be resolved faster if you can share a self-contained example that doesn't rely on internal or private dependencies.**

        > **🔒 SECURITY WARNING:** Issues without reproduction steps or code examples may be immediately closed as not actionable. Always remember to **REMOVE ALL PII AND PERSONAL INFORMATION** from your examples. **Bugs opened with real data will be immediately reported and closed.**

  - type: input
    id: sdk-version
    attributes:
      label: 📦 SDK Version
      description: "Example: 2.1.0"
      placeholder: "x.y.z"
    validations:
      required: true

  - type: textarea
    id: environment-details
    attributes:
      label: 🖥️ Environment Details
      description: |
        System and dependencies information
      placeholder: |
        - Operating System: [e.g. Ubuntu 20.04, Windows 11, macOS 13]
        - Language Version: [e.g. Python 3.9.0, Node.js 18.0.0]
        - Framework: [e.g. Django 4.0, Express 4.18]
        - Package Manager: [e.g. pip 21.0, npm 8.0]
        - Other relevant dependencies: ...
    validations:
      required: true

  - type: dropdown
    id: country
    attributes:
      label: 🌎 Country
      description: Country where the issue occurs
      options:
        - Argentina (MLA)
        - Brazil (MLB)
        - Chile (MLC)
        - Colombia (MCO)
        - Mexico (MLM)
        - Peru (MPE)
        - Uruguay (MLU)
        - Other
    validations:
      required: true

  - type: textarea
    id: description
    attributes:
      label: 📝 Bug Description
      description: A clear and concise description of what the bug is
      placeholder: The SDK fails when I try to...
    validations:
      required: true

  - type: textarea
    id: expected
    attributes:
      label: ✅ Expected Behavior
      description: A clear description of the behavior you expected from the SDK
      placeholder: I expected the SDK to...
    validations:
      required: true

  - type: textarea
    id: actual
    attributes:
      label: ❌ Actual Behavior
      description: A description of what the SDK actually does instead
      placeholder: Instead, the SDK...
    validations:
      required: true

  - type: textarea
    id: reproduce
    attributes:
      label: 🔄 Steps To Reproduce
      description: Detailed steps to reproduce the problem
      placeholder: |
        1. Configure the SDK with...
        2. Execute the method...
        3. Send the following parameters...
        4. Observe the error...
    validations:
      required: true

  - type: textarea
    id: code-sample
    attributes:
      label: 💻 Code Example
      description: |
        Minimal code that reproduces the problem. **REMOVE ALL CREDENTIALS AND SENSITIVE DATA.**

        You can provide:
        - A CodeSandbox (https://codepen.io/pen/)
        - A link to a GitHub repository
        - A minimal code example that reproduces the problem
        - A screenshot of the application if you think it is relevant

        **Remember to REMOVE ALL SENSITIVE DATA FIRST.**
      render: python
      placeholder: |
        import mercadopago

        sdk = mercadopago.SDK("YOUR_ACCESS_TOKEN")  # ⚠️ DO NOT USE REAL TOKENS

        # Your code here that reproduces the bug...
    validations:
      required: true

  - type: textarea
    id: error-logs
    attributes:
      label: 📋 Logs and Error Messages
      description: Copy complete logs, stack traces, or error messages
      render: shell
      placeholder: |
        Error: ...
        Stack trace: ...

  - type: checkboxes
    id: checklist
    attributes:
      label: ✅ Checklist
      options:
        - label: I have verified that I am using the latest SDK version
          required: true
        - label: I have searched existing issues and this bug has not been reported
          required: true
        - label: I have included a minimal code example to reproduce the problem
          required: true
        - label: I have removed all sensitive information (tokens, credentials, real data)
          required: true

================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: Support Center Mercado Pago - ES
    url: https://www.mercadopago.com/developers/es/support/center
    about: Problems with payments, account, or general inquiries
  - name: Support Center Mercado Pago - PT
    url: https://www.mercadopago.com/developers/pt/support/center
    about: Problems with payments, account, or general inquiries

================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: ✨ Feature Request
description: Propose a new feature for the Mercado Pago SDK
title: "[FEATURE]: "
labels: ["enhancement", "needs-triage"]
assignees: ["danielalfarourrea","luismeli10","orojaspardo"]

body:
  - type: markdown
    attributes:
      value: |
        ## 💡 Thanks for contributing with ideas!

        Your feedback is valuable to improve the SDK. Before submitting:
        - 🔍 **Search [existing issues](./issues?q=is%3Aissue) to avoid duplicates**.
        - 📚 **Check the [documentation](https://www.mercadopago.com/developers/es/docs) to confirm this isn't already supported**.

  - type: dropdown
    id: feature-type
    attributes:
      label: ⚙️ Feature Type
      description: What type of improvement are you proposing?
      options:
        - New feature
        - Enhancement of existing feature
        - Support for new Mercado Pago product
        - Better error handling
        - Documentation improvement
        - Performance optimization
        - Other
    validations:
      required: true

  - type: textarea
    id: problem
    attributes:
      label: 🎯 Problem to solve
      description: Describe the problem or need this feature would solve.
      placeholder: |
        As a developer of [application type]...
        I need [feature]...
        To be able to [goal]...
    validations:
      required: true

  - type: textarea
    id: solution
    attributes:
      label: 💡 Proposed Solution
      description: Describe how you would like this new feature to work.
      placeholder: |
        I would like the SDK to support...
        The implementation could be...
        Usage example:
        ```
        // example code
        ```
    validations:
      required: true

  - type: textarea
    id: alternatives
    attributes:
      label: 🔄 Alternatives Considered
      description: |
        Have you tried any workarounds?
        Are there similar features in other SDKs or libraries?
      placeholder: |
        - Alternative 1: ...
        - Alternative 2: ...
        - In the [language] SDK they do...

  - type: checkboxes
    id: checklist
    attributes:
      label: ✅ Checklist
      options:
        - label: I have searched existing issues and this feature has not been requested before
          required: true
        - label: I have clearly described the problem I am trying to solve
          required: true
        - label: I have proposed a concrete solution or API design
          required: true
        - label: This feature would benefit other users, not just my specific use case
          required: true
        - label: I have not included any sensitive information (tokens, credentials, real data)
          required: true

================================================
FILE: .github/ISSUE_TEMPLATE/question.yml
================================================
name: 💬 Question
description: Ask a question about the Mercado Pago SDK
title: "[QUESTION]: "
labels: ["question", "needs-triage"]
assignees: ["danielalfarourrea","luismeli10","orojaspardo"]

body:
  - type: markdown
    attributes:
      value: |
        ## 👋 Thanks for using the Mercado Pago SDK!

        Before asking your question, please:
        - 🔍 **Search [existing issues](./issues?q=is%3Aissue) to see if it was already answered**
        - 📚 **Check the [official documentation](https://www.mercadopago.com/developers/es/docs)**
        - 💡 **Review the repository examples**

  - type: input
    id: sdk-version
    attributes:
      label: 📦 SDK Version
      description: "Example: 2.1.0"
      placeholder: "x.y.z"
    validations:
      required: true

  - type: dropdown
    id: country
    attributes:
      label: 🌎 Country
      description: In which country are you operating?
      options:
        - Argentina (MLA)
        - Brazil (MLB)
        - Chile (MLC)
        - Colombia (MCO)
        - Mexico (MLM)
        - Peru (MPE)
        - Uruguay (MLU)
        - Other
    validations:
      required: true

  - type: textarea
    id: context
    attributes:
      label: 🖥️ Environment Details
      description: |
        Provide details about your environment to help us understand your setup:
        - Platform (Web, Mobile, Backend)
        - Framework used
        - Relevant error messages
        - Documentation consulted
      placeholder: |
        - Platform: [e.g. Backend, Web, Mobile]
        - Language Version: [e.g. Python 3.9.0, Node.js 18.0.0]
        - Framework: [e.g. Django 4.0, Express 4.18]
        - Other relevant dependencies: ...

  - type: textarea
    id: question
    attributes:
      label: ❓ Your Question
      description: Ask your question as clearly and specifically as possible. The more detail you provide, the faster we can help.
      placeholder: |
        What are you trying to do?
        What have you tried so far?
        What is the result you are getting vs. what you expected?
        Is there an error message involved?
    validations:
      required: true

  - type: textarea
    id: code-sample
    attributes:
      label: 💻 Code Example (optional)
      description: If applicable, share a code snippet that illustrates your question. **Remember to remove all sensitive data (tokens, credentials, etc)**
      render: python
      placeholder: |
        import mercadopago

        sdk = mercadopago.SDK("YOUR_ACCESS_TOKEN")  # ⚠️ DO NOT USE REAL TOKENS
        # Your code here...

  - type: checkboxes
    id: checklist
    attributes:
      label: ✅ Checklist
      options:
        - label: I have searched existing issues
          required: true
        - label: I have checked the official documentation
          required: true
        - label: I have removed sensitive information (tokens, credentials, etc)
          required: true

================================================
FILE: .github/workflows/cd.yml
================================================
# This workflow will install Python dependencies and upload a version in the PyPI
name: CD - Upload PyPI

on:
  release:
    types: [ released ]

jobs:
  upload:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      # Sets up python
      - uses: actions/setup-python@v2
        with:
          python-version: 3.12

      # Install dependencies
      - name: "Installs dependencies"
        run: |
          python3 -m pip install --upgrade pip
          python3 -m pip install setuptools build twine
          python3 -m pip install .

      # Build and upload to PyPI
      - name: "Builds and uploads to PyPI"
        run: |
          python3 -m build
          python3 -m twine check dist/*
          python3 -m twine upload dist/*
        env:
          TWINE_USERNAME: __token__
          TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}


================================================
FILE: .github/workflows/ci.yml
================================================
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: CI - Lint and Tests

on:
  pull_request:
    branches:
    - 'master'

jobs:
  build:

    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ['3.9', '3.10', '3.11', '3.12']

    steps:
    - uses: actions/checkout@v2
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v2
      with:
        python-version: ${{ matrix.python-version }}

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install requests

    - name: Lint with Pylint
      run: |
        pip install pylint
        pylint mercadopago
        pylint --rcfile=tests/.pylintrc tests

    - name: Lint with Isort
      run: |
        pip install isort
        isort .

    - name: Test with unittest
      run: |
        python -m unittest discover tests/
      env:
        ACCESS_TOKEN: ${{secrets.ACCESS_TOKEN}}


================================================
FILE: .gitignore
================================================
*.py[cod]
*.pyc
.DS_Store
.idea
venv

# C extensions
*.so

# Packages
*.egg
*.egg-info
dist
build
eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg
lib64
__pycache__

# Installer logs
pip-log.txt

# Unit test / coverage reports
.coverage
.tox
nosetests.xml

# Translations
*.mo

# Mr Developer
.mr.developer.cfg
.project
.pydevproject

# Demo
img/
PRESS.md

# vscode
.vscode


================================================
FILE: .pre-commit-config.yaml
================================================
repos:
  - repo: https://github.com/melisource/fury_websec-git-hooks
    rev: v2.0.0
    hooks:
      - id: pre_commit_hook
        stages: [commit]
      - id: post_commit_hook
        stages: [post-commit]
        
  - repo: https://github.com/melisource/fury_datasec-git-hooks
    rev:  1.2.2
    hooks:
      - id: pre_commit_hook
        stages: [commit]
      - id: post_commit_hook
        stages: [post-commit]


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to make participation in 
our community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment of individuals or the company
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct that could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned with this Code of Conduct, as well as temporarily or
permanently ban any contributor for other behavior deemed inappropriate, threatening, offensive, or harmful with or without prior notice..


## Scope

This Code of Conduct applies within all project spaces and it also applies when
an individual is representing the project or its community in public spaces.
Examples of representing a project or community include using an official
project email address, posting via an official social media account, or acting
as an appointed representative at an online or offline event. Representation of
a project may be further defined and clarified by project maintainers.

This Code of Conduct also applies outside the project spaces when there is a
reasonable belief that an individual's behavior may have a negative impact on
the project, the company or the community.

## Enforcement

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq

================================================
FILE: CODING_GUIDELINES.md
================================================
# Coding Guidelines

The Mercado Pago Python SDK is a collaborative effort from the start. The SDK team thinks that contributions from different developer will enrich it's feature set and make it more relevant to the community.

However; absorbing all contributions as-is, while expedient, might lead to difficulties in maintenance of the codebase is left unchecked. Collaborative codebases often establish guidelines for contributors to ensure code remains maintainable over time. The effort to maintain the SDK is no different in this regard so a bit of guidance is in order.

The purpose of this guide is to set a baseline for contributions. These guidelines are not intended to limit the tools at your disposal nor to rewire the way you think but rather to encourage good neighbor behavior.

## Language Guidelines

We use **english** language. This is to be consistent everywhere, and to be considerate with developers that do not speak our native language.

Therefore: source code, comments, documentation, commit messages, review comments, and any other kind of contribution *MUST* use english language.

Typos are unavoidable, but try to reduce them by using a spellchecker. Most IDEs can be configured to run one automatically.

## Code Guidelines

* Set your IDE to follow the [`.editorconfig`](https://editorconfig.org/) in each repository.
* Follow the [PEP 8 Style Guide](https://pep8.org/).

Generally speaking, be conscious when contributing and try following the same style that the code in the SDK already has. If you have any doubts, just ask us!

This rules will be enforced automatically when making a pull requests, and checks will fail if you do not follow them, resulting in your contribution being automatically rejected until fixed.

## Comment Guidelines

Comments in code are a hard thing to write, not because the words are difficult to produce but because it is hard to make relevant comments. Too much of it and people do not read comments (and it obfuscates code reading) and too little of it gives you no recourse but to read large portions of codebase to get insight as to what a feature/codeblock is doing. Both situations are undesirable and efforts should be made at all time to have a please comment reading experience

As a general rule you would have to comment on decisions you made while coding that are not part of any specification.

In particular you should always comment any decision that:

* Departs from common wisdom or convention (The **why's** are necessary).
* Takes a significant amount of time to produce. A good rule of thumb here is that if you spent more than 1 hour thinking on how to produce a fragment of code that took 2 minutes of wrist time to write you should document your thinking to aid reader and allow for validation.
* Need to preserve properties of the implementation. This is the case of performance sensitive portions of the codebase, goroutines synchronization, implementations of security primitives, congestion control algorithms, etc.

As a general rule of what not to comment you should avoid:

* Commenting on structure of programs that is already part of a convention, specified or otherwise.
* Having pedantic explanations of behavior that can be found by immediate examination of the surrounding code artifacts.
* Commenting on behavior you cannot attest.

### Branching Guidelines

Currently `master` is our only long term branch, below a few suggestions of short term branches naming:

* `hotfix/something-needs-fix`: Small routine patches in code to features already there.
* `feature/something-new`: A new feature or a change in a existent feature. Beware of breaking changes that would require a major version bump.
* `doc/improves-documentation-for-this-feature`: If you add or change documentation with no impact to the source code.

### Git Guidelines

All commits **SHOULD** follow the [seven rules of a great Git commit message](https://chris.beams.io/posts/git-commit):

1. Separate subject from body with a blank line.
2. Limit the subject line to 72 characters.
3. Capitalize the subject line.
4. Do not end the subject line with a period.
5. Use the imperative mood in the subject line.
6. Wrap the body at 72 characters.
7. Use the body to explain what and why vs. how.

Commits such as "fix tests", "now it's working" and many other common messages we find usually in code **WON'T** be accepted.

Ideally we would like to enforce these rules, but we are realistic and understand that it might be a big change for some people. So unless deviating heavily from what was stated we might accept your commits even if not following these rules perfectly.

Please avoid taking to much time to deliver code, and always [rebase](https://git-scm.com/docs/git-rebase) your code to avoid reverse merge commits.

When reviewing, check if the PR adheres to [PEP 8 Style Guide](https://pep8.org/).


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to the Mercado Pago Python SDK

Thank you for your interest in contributing to the Mercado Pago Python SDK!

## How to contribute

In order to contribute to the Mercado Pago Python SDK effectively we provide guidelines to address common case for contributions. Presently we have guides for the following type of changes.

* Request For Change (RFC) / Feature Request: These are suggestions / requests for features the SDK currently does not have. The SDK team evaluates these requests for adequacy / relevance / capacity and overall architectural consistency.
* Bug Reports: These are reports of non compliant behavior with the SDK specification and other blatantly wrong behavior of the Mercado Pago Python SDK.

In addition to contributing in the form of Bug Reports and RFCs it is also possible to contribute directly in code with a Pull Request (PR). In the case of a Pull Request you should also indicate the nature of the Pull Request (Feature/Bug/etc.) to help the team asses the Pull Request. If you are enthusiastic about a particular Feature being added or a bug being fixed, a PR is often the quickest way to promote your change as the team does not have to allocate as much resources to process the contribution.

In the case of PRs it is often best to consult with the SDK team before embarking on a PR, specially if it's a beefy one. Spending time on a PR that might later be rejected because major discrepancies with vision or competing contributions is an uncomfortable outcome for all involved people. Remember the SDK team with privilege overall consistency and progress over any one particular contribution.

## Coding Guidance

All contributions *MUST* follow the [Coding Guidelines](CODING_GUIDELINES.md). Contributions that fail to follow this guidelines will be disregarded and told to make the required modifications to do so.

## Request For Change / Feature Request

Generally speaking an RFC is needed when you want to add a new feature or change an existing one in an incompatible way that might result in a major version bump to the toolkit.

Though it seems a little bureaucratic, the process is in place in order to avoid frustration of a potential contributor by making the discussions take place before any code is written. Once the design and direction is fully agreed then the contributor can work peacefully knowing that their change will be committed.

As of this moment all you need to do is create an issue and use the [Feature Request Template](.github/ISSUE_TEMPLATE/feature_request.md).

Please prepend your issue title with `[RFC]` so that's easier to filter.

## Bug Reports

Bugs are a reality in software. We can't fix what we don't know about, so please report liberally. If you're not sure if something is a bug or not, feel free to file it anyway.

Before reporting a bug, please search existing issues and pull requests, as it's possible that someone else has already reported your error. In the off case that you find your issue as fixed/closed, please add a reference to it on your new one.

Your issue should contain a title and a clear description of the issue. You should also include as much relevant information as possible and a code sample that demonstrates the issue. The goal of a bug report is to make it easy for yourself - and others - to replicate the bug and develop a fix.

Opening an issue is as easy as following [this link](https://github.com/mercadopago/sdk-dotnet/issues/new) and filling out the given template.

Bug reports may also be sent in the form of a [pull request](#pull-request) containing a failing test.

## Pull Request

First and foremost: Source code, documentation, commit messages, review comments, and any other kind of contribution must *MUST* follow the [Coding Guidelines](CODING_GUIDELINES.md).

We use the "fork and pull" model [described here](https://help.github.com/articles/about-collaborative-development-models/), where contributors push changes to their personal fork and create pull requests to bring those changes into the source repository.

Your basic steps to get going:

* Fork the corresponding toolkit repository and create a branch from master for the issue you are working on.
* Commit as you go following our git conventions.
* Include tests that cover all non-trivial code. The existing tests should provide a template on how to test the toolkit correctly.
* Make sure all test passes.
* All code changes are expected to comply with the formatting style.
* Push your commits to GitHub and create a pull request against the corresponding toolkit component master branch.

If taking to much time to deliver code, **always** [rebase](https://git-scm.com/docs/git-rebase) towards `master` before asking for a review, and avoid reverse merge commits.


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2021 MercadoPago Developers

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

================================================
FILE: MANIFEST.in
================================================
include README.rst
include LICENSE

================================================
FILE: README.md
================================================
# Mercado Pago SDK for Python

[![PyPI](https://img.shields.io/pypi/v/mercadopago.svg)](https://pypi.python.org/pypi/mercadopago)
[![PyPI Downloads](https://img.shields.io/pypi/dm/mercadopago.svg)](https://pypi.python.org/pypi/mercadopago)
[![APM](https://img.shields.io/apm/l/vim-mode)](https://github.com/mercadopago/sdk-python)

This library provides developers with a simple set of bindings to help you integrate Mercado Pago API to a website and start receiving payments.

## 💡 Requirements

Python 3 or higher.

## 📲 Installation 

Run ```pip3 install mercadopago```

## 🌟 Getting Started

First time using Mercado Pago? Create your [Mercado Pago account](https://www.mercadopago.com).

Copy your `Access Token` in the [credentials panel](https://www.mercadopago.com/developers/panel/credentials) and replace the text `YOUR_ACCESS_TOKEN` with it.

### Simple usage
  
```python
import mercadopago

sdk = mercadopago.SDK("YOUR_ACCESS_TOKEN")

request_options = mercadopago.config.RequestOptions()
request_options.custom_headers = {
    'x-idempotency-key': '<SOME_UNIQUE_VALUE>'
}

payment_data = {
    "transaction_amount": 100,
    "token": "CARD_TOKEN",
    "description": "Payment description",
    "payment_method_id": 'visa',
    "installments": 1,
    "payer": {
        "email": 'test_user_123456@testuser.com'
    }
}
result = sdk.payment().create(payment_data, request_options)
payment = result["response"]

print(payment)
```

### Per-request configuration

All methods that make API calls accept an optional `RequestOptions` object. This can be used to configure some special options of the request, such as changing credentials or custom headers.

```python
import mercadopago
from mercadopago.config import RequestOptions

request_options = RequestOptions(access_token='YOUR_ACCESS_TOKEN')
# ...

result = sdk.payment().create(payment_data, request_options)
payment = result["response"]
```

## 📚 Documentation 

Visit our Dev Site for further information regarding:
 - [APIs](https://www.mercadopago.com/developers/en/reference)
 - [Checkout Pro](https://www.mercadopago.com/developers/en/guides/online-payments/checkout-pro/introduction)
 - [Checkout API](https://www.mercadopago.com/developers/en/guides/online-payments/checkout-api/introduction)
 - [Web Tokenize Checkout](https://www.mercadopago.com/developers/en/guides/online-payments/web-tokenize-checkout/introduction)

Check our official code reference to explore all available functionalities.

## 🤝 Contributing

All contributions are welcome, ranging from people wanting to triage issues, others wanting to write documentation, to people wanting to contribute code.

Please read and follow our [contribution guidelines](CONTRIBUTING.md). Contributions not following this guidelines will be disregarded. The guidelines are in place to make all of our lives easier and make contribution a consistent process for everyone.

## ❤️ Support

If you require technical support, please contact our support team at [developers.mercadopago.com](https://developers.mercadopago.com).

## 🏻 License

```
MIT license. Copyright (c) 2021 - Mercado Pago / Mercado Libre
For more information, see the LICENSE file.
```


================================================
FILE: SUPPORT.md
================================================
# 🆘 Support and Help

> **Quick guide:** Have a bug? → [Bug Report](../../issues/new/choose) | Questions? → [Question](../../issues/new/choose) | New idea? → [Feature Request](../../issues/new/choose)

---

## 🎯 Quick Decision Guide

| If you need... | Then... |
|----------------|---------|
| 💬 Question about how to use the SDK | [Create Question](../../issues/new/choose) |
| 🐛 Report an error or bug | [Create Bug Report](../../issues/new/choose) |
| ✨ Propose new feature | [Create Feature Request](../../issues/new/choose) |
| 💳 Problem with your MP account | [Official MP Support - ES ](https://www.mercadopago.com.co/developers/en/support/center)- [Official MP Support - PT ](https://www.mercadopago.com.co/developers/pt/support/center) |
 
---

## 📚 Before Creating an Issue

**Search first, ask later:**

1. **[Official Documentation](https://www.mercadopago.com/developers/es/docs)** - Most questions are answered here
2. **[Closed Issues](../../issues?q=is%3Aissue+is%3Aclosed)** - Your problem may be solved
3. **[Open Issues](../../issues?q=is%3Aissue+is%3Aopen)** - Your problem may be already reported
---

## 💬 How to Report Issues

### 1. For Questions 💬

**When to use?** Doubts about usage, configuration, or best practices.

**Steps:**

1. Search in [closed questions](../../issues?q=is%3Aissue+is%3Aclosed+label%3Aquestion)
2. [Create new question](../../issues/new/choose)
3. **Include:** SDK version, country, environment, code example.

### 2. For Bugs 🐛

**When to use?** Errors, unexpected behavior and/or crashes.

**Steps:**

1. Verify [latest version](../../releases/latest)
2. Search in [existing bugs](../../issues?q=is%3Aissue+label%3Abug)
3. [Report bug](../../issues/new/choose)
4. **Include:** reproducible steps, logs, environment, SDK version.

### 3. For Features ✨

**When to use?** Propose improvements or new features

**Steps:**

1. Search in [feature requests](../../issues?q=is%3Aissue+label%3Afeature%20request)
2. [Propose feature](../../issues/new/choose)
3. **Explain:** problem it solves, use cases, benefit.

### 4. To Contribute 🤝

**Want to help?** Read [CONTRIBUTING.md](./CONTRIBUTING.md)

---

## 🔒 Security

### ⚠️ NEVER Share in Public Issues:

- ❌ Access tokens or production credentials
- ❌ Client IDs / Client Secrets
- ❌ Customer or card data
- ❌ Personally Identifiable Information (PII)

> **⚠️ IMPORTANT:** Issues with real data will be closed and reported immediately.

---

## 🌎 Official Mercado Pago SDK Support

### ⚡ GitHub Issues Scope

**GitHub Issues is ONLY for SDK technical support.**

✅ **Use GitHub for:**

- SDK bugs
- Questions about SDK usage
- SDK features
- Code contributions

❌ **DO NOT use GitHub for:**

- Problems with your MP account
- Specific transactions or payments
- Commercial or billing topics
- Homologation/certification
- Account access or credentials
- Webhook configuration in your account

### 🏢 Contact Official MP Support for:

[**🔗 Official Mercado Pago Support - ES**](https://www.mercadopago.com.co/developers/es/support/center)
[**🔗 Official Mercado Pago Support - PT**](https://www.mercadopago.com.co/developers/pt/support/center)

- ✉️ Account problems
- 💳 Transactions and payments
- 🤝 Commercial topics
- 📋 Homologation
- 🔐 Account access
- 🌐 Webhooks in your account
- 📊 Reports and statistics

---

## 🔗 Resources and Contacts

### Documentation

- **[Official Documentation](https://www.mercadopago.com/developers/es/docs)** - Complete guides
- **[API Reference](https://www.mercadopago.com/developers/en/reference)** - API reference
- **[SDKs](https://www.mercadopago.com/developers/en/docs/sdks-library/server-side)** - Other SDKs

### Support

- **[GitHub Issues](../../issues/new/choose)** - SDK technical support

### Community channels

- **[Discord](https://discord.gg/96nqqpaycN)** - Community channel
- **[Newsletter](https://www.mercadopago.com/developers/panel/contact)** - Mercado Pago Newsletter
- **[Status Page](https://status.mercadopago.com/)** - Service status

---

## 💡 Tips for Getting Quick Help

1. **🔍 Search first** - Saves everyone time
2. **📝 Be specific** - "Error 400 on POST /payments" vs "It doesn't work"
3. **💻 Reproducible code** - Minimal and complete example
4. **📋 Follow templates** - They're designed to help you
5. **🚫 No sensitive data** - Protect your security
6. **🤝 Be respectful** - We're all part of the community

---

💙 **Thank you for being part of the Mercado Pago developer community!**

================================================
FILE: docs/config/config.html
================================================
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<meta name="generator" content="pdoc 0.10.0" />
<title>mercadopago.config.config API documentation</title>
<meta name="description" content="Module: config" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>mercadopago.config.config</code></h1>
</header>
<section id="section-intro">
<p>Module: config</p>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">&#34;&#34;&#34;
Module: config
&#34;&#34;&#34;
import platform


class Config:
    &#34;&#34;&#34;
    General infos of your SDK
    &#34;&#34;&#34;

    def __init__(self):
        self.__version = &#34;2.2.0&#34;
        self.__user_agent = &#34;MercadoPago Python SDK v&#34; + self.__version
        self.__product_id = &#34;bc32bpftrpp001u8nhlg&#34;
        self.__tracking_id = &#34;platform:&#34; + platform.python_version()
        self.__tracking_id += &#34;,type:SDK&#34; + self.__version + &#34;,so;&#34;

    __api_base_url = &#34;https://api.mercadopago.com&#34;
    __mime_json = &#34;application/json&#34;
    __mime_form = &#34;application/x-www-form-urlencoded&#34;

    @property
    def version(self):
        &#34;&#34;&#34;
        Sets the attribute value of version
        &#34;&#34;&#34;
        return self.__version

    @property
    def user_agent(self):
        &#34;&#34;&#34;
        Sets the attribute value of user agent
        &#34;&#34;&#34;
        return self.__user_agent

    @property
    def product_id(self):
        &#34;&#34;&#34;
        Sets the attribute value of product id
        &#34;&#34;&#34;
        return self.__product_id

    @property
    def tracking_id(self):
        &#34;&#34;&#34;
        Sets the attribute value of tracking id
        &#34;&#34;&#34;
        return self.__tracking_id

    @property
    def api_base_url(self):
        &#34;&#34;&#34;
        Sets the attribute value of api base url
        &#34;&#34;&#34;
        return self.__api_base_url

    @property
    def mime_json(self):
        &#34;&#34;&#34;
        Sets the attribute value of mime json
        &#34;&#34;&#34;
        return self.__mime_json

    @property
    def mime_form(self):
        &#34;&#34;&#34;
        Sets the attribute value of mime form
        &#34;&#34;&#34;
        return self.__mime_form</code></pre>
</details>
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="mercadopago.config.config.Config"><code class="flex name class">
<span>class <span class="ident">Config</span></span>
</code></dt>
<dd>
<div class="desc"><p>General infos of your SDK</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Config:
    &#34;&#34;&#34;
    General infos of your SDK
    &#34;&#34;&#34;

    def __init__(self):
        self.__version = &#34;2.2.0&#34;
        self.__user_agent = &#34;MercadoPago Python SDK v&#34; + self.__version
        self.__product_id = &#34;bc32bpftrpp001u8nhlg&#34;
        self.__tracking_id = &#34;platform:&#34; + platform.python_version()
        self.__tracking_id += &#34;,type:SDK&#34; + self.__version + &#34;,so;&#34;

    __api_base_url = &#34;https://api.mercadopago.com&#34;
    __mime_json = &#34;application/json&#34;
    __mime_form = &#34;application/x-www-form-urlencoded&#34;

    @property
    def version(self):
        &#34;&#34;&#34;
        Sets the attribute value of version
        &#34;&#34;&#34;
        return self.__version

    @property
    def user_agent(self):
        &#34;&#34;&#34;
        Sets the attribute value of user agent
        &#34;&#34;&#34;
        return self.__user_agent

    @property
    def product_id(self):
        &#34;&#34;&#34;
        Sets the attribute value of product id
        &#34;&#34;&#34;
        return self.__product_id

    @property
    def tracking_id(self):
        &#34;&#34;&#34;
        Sets the attribute value of tracking id
        &#34;&#34;&#34;
        return self.__tracking_id

    @property
    def api_base_url(self):
        &#34;&#34;&#34;
        Sets the attribute value of api base url
        &#34;&#34;&#34;
        return self.__api_base_url

    @property
    def mime_json(self):
        &#34;&#34;&#34;
        Sets the attribute value of mime json
        &#34;&#34;&#34;
        return self.__mime_json

    @property
    def mime_form(self):
        &#34;&#34;&#34;
        Sets the attribute value of mime form
        &#34;&#34;&#34;
        return self.__mime_form</code></pre>
</details>
<h3>Instance variables</h3>
<dl>
<dt id="mercadopago.config.config.Config.api_base_url"><code class="name">var <span class="ident">api_base_url</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value of api base url</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def api_base_url(self):
    &#34;&#34;&#34;
    Sets the attribute value of api base url
    &#34;&#34;&#34;
    return self.__api_base_url</code></pre>
</details>
</dd>
<dt id="mercadopago.config.config.Config.mime_form"><code class="name">var <span class="ident">mime_form</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value of mime form</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def mime_form(self):
    &#34;&#34;&#34;
    Sets the attribute value of mime form
    &#34;&#34;&#34;
    return self.__mime_form</code></pre>
</details>
</dd>
<dt id="mercadopago.config.config.Config.mime_json"><code class="name">var <span class="ident">mime_json</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value of mime json</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def mime_json(self):
    &#34;&#34;&#34;
    Sets the attribute value of mime json
    &#34;&#34;&#34;
    return self.__mime_json</code></pre>
</details>
</dd>
<dt id="mercadopago.config.config.Config.product_id"><code class="name">var <span class="ident">product_id</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value of product id</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def product_id(self):
    &#34;&#34;&#34;
    Sets the attribute value of product id
    &#34;&#34;&#34;
    return self.__product_id</code></pre>
</details>
</dd>
<dt id="mercadopago.config.config.Config.tracking_id"><code class="name">var <span class="ident">tracking_id</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value of tracking id</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def tracking_id(self):
    &#34;&#34;&#34;
    Sets the attribute value of tracking id
    &#34;&#34;&#34;
    return self.__tracking_id</code></pre>
</details>
</dd>
<dt id="mercadopago.config.config.Config.user_agent"><code class="name">var <span class="ident">user_agent</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value of user agent</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def user_agent(self):
    &#34;&#34;&#34;
    Sets the attribute value of user agent
    &#34;&#34;&#34;
    return self.__user_agent</code></pre>
</details>
</dd>
<dt id="mercadopago.config.config.Config.version"><code class="name">var <span class="ident">version</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value of version</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def version(self):
    &#34;&#34;&#34;
    Sets the attribute value of version
    &#34;&#34;&#34;
    return self.__version</code></pre>
</details>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<h1>Index</h1>
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="mercadopago.config" href="index.html">mercadopago.config</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="mercadopago.config.config.Config" href="#mercadopago.config.config.Config">Config</a></code></h4>
<ul class="two-column">
<li><code><a title="mercadopago.config.config.Config.api_base_url" href="#mercadopago.config.config.Config.api_base_url">api_base_url</a></code></li>
<li><code><a title="mercadopago.config.config.Config.mime_form" href="#mercadopago.config.config.Config.mime_form">mime_form</a></code></li>
<li><code><a title="mercadopago.config.config.Config.mime_json" href="#mercadopago.config.config.Config.mime_json">mime_json</a></code></li>
<li><code><a title="mercadopago.config.config.Config.product_id" href="#mercadopago.config.config.Config.product_id">product_id</a></code></li>
<li><code><a title="mercadopago.config.config.Config.tracking_id" href="#mercadopago.config.config.Config.tracking_id">tracking_id</a></code></li>
<li><code><a title="mercadopago.config.config.Config.user_agent" href="#mercadopago.config.config.Config.user_agent">user_agent</a></code></li>
<li><code><a title="mercadopago.config.config.Config.version" href="#mercadopago.config.config.Config.version">version</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.10.0</a>.</p>
</footer>
</body>
</html>

================================================
FILE: docs/config/index.html
================================================
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<meta name="generator" content="pdoc 0.10.0" />
<title>mercadopago.config API documentation</title>
<meta name="description" content="Module: config/__init__.py" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>mercadopago.config</code></h1>
</header>
<section id="section-intro">
<p>Module: config/<strong>init</strong>.py</p>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">&#34;&#34;&#34;
Module: config/__init__.py
&#34;&#34;&#34;
from mercadopago.config.config import Config
from mercadopago.config.request_options import RequestOptions


__all__ = (
    &#39;Config&#39;,
    &#39;RequestOptions&#39;,
)</code></pre>
</details>
</section>
<section>
<h2 class="section-title" id="header-submodules">Sub-modules</h2>
<dl>
<dt><code class="name"><a title="mercadopago.config.config" href="config.html">mercadopago.config.config</a></code></dt>
<dd>
<div class="desc"><p>Module: config</p></div>
</dd>
<dt><code class="name"><a title="mercadopago.config.request_options" href="request_options.html">mercadopago.config.request_options</a></code></dt>
<dd>
<div class="desc"><p>Module: request_options</p></div>
</dd>
</dl>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="mercadopago.config.Config"><code class="flex name class">
<span>class <span class="ident">Config</span></span>
</code></dt>
<dd>
<div class="desc"><p>General infos of your SDK</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Config:
    &#34;&#34;&#34;
    General infos of your SDK
    &#34;&#34;&#34;

    def __init__(self):
        self.__version = &#34;2.2.0&#34;
        self.__user_agent = &#34;MercadoPago Python SDK v&#34; + self.__version
        self.__product_id = &#34;bc32bpftrpp001u8nhlg&#34;
        self.__tracking_id = &#34;platform:&#34; + platform.python_version()
        self.__tracking_id += &#34;,type:SDK&#34; + self.__version + &#34;,so;&#34;

    __api_base_url = &#34;https://api.mercadopago.com&#34;
    __mime_json = &#34;application/json&#34;
    __mime_form = &#34;application/x-www-form-urlencoded&#34;

    @property
    def version(self):
        &#34;&#34;&#34;
        Sets the attribute value of version
        &#34;&#34;&#34;
        return self.__version

    @property
    def user_agent(self):
        &#34;&#34;&#34;
        Sets the attribute value of user agent
        &#34;&#34;&#34;
        return self.__user_agent

    @property
    def product_id(self):
        &#34;&#34;&#34;
        Sets the attribute value of product id
        &#34;&#34;&#34;
        return self.__product_id

    @property
    def tracking_id(self):
        &#34;&#34;&#34;
        Sets the attribute value of tracking id
        &#34;&#34;&#34;
        return self.__tracking_id

    @property
    def api_base_url(self):
        &#34;&#34;&#34;
        Sets the attribute value of api base url
        &#34;&#34;&#34;
        return self.__api_base_url

    @property
    def mime_json(self):
        &#34;&#34;&#34;
        Sets the attribute value of mime json
        &#34;&#34;&#34;
        return self.__mime_json

    @property
    def mime_form(self):
        &#34;&#34;&#34;
        Sets the attribute value of mime form
        &#34;&#34;&#34;
        return self.__mime_form</code></pre>
</details>
<h3>Instance variables</h3>
<dl>
<dt id="mercadopago.config.Config.api_base_url"><code class="name">var <span class="ident">api_base_url</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value of api base url</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def api_base_url(self):
    &#34;&#34;&#34;
    Sets the attribute value of api base url
    &#34;&#34;&#34;
    return self.__api_base_url</code></pre>
</details>
</dd>
<dt id="mercadopago.config.Config.mime_form"><code class="name">var <span class="ident">mime_form</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value of mime form</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def mime_form(self):
    &#34;&#34;&#34;
    Sets the attribute value of mime form
    &#34;&#34;&#34;
    return self.__mime_form</code></pre>
</details>
</dd>
<dt id="mercadopago.config.Config.mime_json"><code class="name">var <span class="ident">mime_json</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value of mime json</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def mime_json(self):
    &#34;&#34;&#34;
    Sets the attribute value of mime json
    &#34;&#34;&#34;
    return self.__mime_json</code></pre>
</details>
</dd>
<dt id="mercadopago.config.Config.product_id"><code class="name">var <span class="ident">product_id</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value of product id</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def product_id(self):
    &#34;&#34;&#34;
    Sets the attribute value of product id
    &#34;&#34;&#34;
    return self.__product_id</code></pre>
</details>
</dd>
<dt id="mercadopago.config.Config.tracking_id"><code class="name">var <span class="ident">tracking_id</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value of tracking id</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def tracking_id(self):
    &#34;&#34;&#34;
    Sets the attribute value of tracking id
    &#34;&#34;&#34;
    return self.__tracking_id</code></pre>
</details>
</dd>
<dt id="mercadopago.config.Config.user_agent"><code class="name">var <span class="ident">user_agent</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value of user agent</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def user_agent(self):
    &#34;&#34;&#34;
    Sets the attribute value of user agent
    &#34;&#34;&#34;
    return self.__user_agent</code></pre>
</details>
</dd>
<dt id="mercadopago.config.Config.version"><code class="name">var <span class="ident">version</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value of version</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def version(self):
    &#34;&#34;&#34;
    Sets the attribute value of version
    &#34;&#34;&#34;
    return self.__version</code></pre>
</details>
</dd>
</dl>
</dd>
<dt id="mercadopago.config.RequestOptions"><code class="flex name class">
<span>class <span class="ident">RequestOptions</span></span>
<span>(</span><span>access_token=None, connection_timeout=60.0, custom_headers=None, corporation_id=None, integrator_id=None, platform_id=None, max_retries=3)</span>
</code></dt>
<dd>
<div class="desc"><p>This object hold all configurations that will be used in ur REST call.</p>
<p>All here u can customize as well add params in the requisition header (custom_headers)</p>
<p>Initialize</p>
<h2 id="args">Args</h2>
<dl>
<dt><strong><code>access_token</code></strong> :&ensp;<code>str</code>, optional</dt>
<dd>Your User Access Token. Defaults to None.</dd>
<dt><strong><code>connection_timeout</code></strong> :&ensp;<code>float</code>, optional</dt>
<dd>Time to timeout the REST call. Defaults to 60.0.</dd>
<dt><strong><code>custom_headers</code></strong> :&ensp;<code>dict</code>, optional</dt>
<dd>A Dict with params to be added to the requests params.</dd>
<dt>Defaults to None.</dt>
<dt><strong><code>corporation_id</code></strong> :&ensp;<code>str</code>, optional</dt>
<dd>Your Corporation ID if any. Defaults to None.</dd>
<dt><strong><code>integrator_id</code></strong> :&ensp;<code>str</code>, optional</dt>
<dd>Your Integrator ID if any. Defaults to None.</dd>
<dt><strong><code>platform_id</code></strong> :&ensp;<code>str</code>, optional</dt>
<dd>Your Platform ID if any. Defaults to None.</dd>
<dt><strong><code>max_retries</code></strong> :&ensp;<code>int</code>, optional</dt>
<dd>How many retries must be done in case of fail.</dd>
</dl>
<p>Defaults to 3.</p>
<h2 id="raises">Raises</h2>
<dl>
<dt><code>ValueError</code></dt>
<dd>Param access_token must be a String</dd>
<dt><code>ValueError</code></dt>
<dd>Param connection_timeout must be a Float</dd>
<dt><code>ValueError</code></dt>
<dd>Param custom_headers must be a Dictionary</dd>
<dt><code>ValueError</code></dt>
<dd>Param corporation_id must be a String</dd>
<dt><code>ValueError</code></dt>
<dd>Param integrator_id must be a String</dd>
<dt><code>ValueError</code></dt>
<dd>Param platform_id must be a String</dd>
<dt><code>ValueError</code></dt>
<dd>Param max_retries must be an Integer</dd>
</dl></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class RequestOptions:  # pylint: disable=too-many-instance-attributes

    &#34;&#34;&#34;This object hold all configurations that will be used in ur REST call.

    All here u can customize as well add params in the requisition header (custom_headers)
    &#34;&#34;&#34;

    __access_token = None
    __connection_timeout = None
    __custom_headers = None
    __max_retries = None
    __corporation_id = None
    __integrator_id = None
    __platform_id = None

    def __init__(  # pylint: disable=too-many-arguments
        self,
        access_token=None,
        connection_timeout=60.0,
        custom_headers=None,
        corporation_id=None,
        integrator_id=None,
        platform_id=None,
        max_retries=3,
    ):
        &#34;&#34;&#34;Initialize

        Args:
            access_token (str, optional): Your User Access Token. Defaults to None.
            connection_timeout (float, optional): Time to timeout the REST call. Defaults to 60.0.
            custom_headers (dict, optional): A Dict with params to be added to the requests params.
            Defaults to None.
            corporation_id (str, optional): Your Corporation ID if any. Defaults to None.
            integrator_id (str, optional): Your Integrator ID if any. Defaults to None.
            platform_id (str, optional): Your Platform ID if any. Defaults to None.
            max_retries (int, optional): How many retries must be done in case of fail.
            Defaults to 3.

        Raises:
            ValueError: Param access_token must be a String
            ValueError: Param connection_timeout must be a Float
            ValueError: Param custom_headers must be a Dictionary
            ValueError: Param corporation_id must be a String
            ValueError: Param integrator_id must be a String
            ValueError: Param platform_id must be a String
            ValueError: Param max_retries must be an Integer
        &#34;&#34;&#34;

        if access_token is not None:
            self.access_token = access_token
        if connection_timeout is not None:
            self.connection_timeout = connection_timeout
        if custom_headers is not None:
            self.custom_headers = custom_headers
        if max_retries is not None:
            self.max_retries = max_retries
        if corporation_id is not None:
            self.corporation_id = corporation_id
        if integrator_id is not None:
            self.integrator_id = integrator_id
        if platform_id is not None:
            self.platform_id = platform_id

        self.__config = Config()

    def get_headers(self):
        &#34;&#34;&#34;
        Sets the attribute values of headers
        &#34;&#34;&#34;
        headers = {&#34;Authorization&#34;: &#34;Bearer &#34; + self.__access_token,
                   &#34;x-product-id&#34;: self.__config.product_id,
                   &#34;x-tracking-id&#34;: self.__config.tracking_id,
                   &#34;x-idempotency-key&#34;: str(uuid.uuid4().int),
                   &#34;User-Agent&#34;: self.__config.user_agent,
                   &#34;Accept&#34;: self.__config.mime_json}

        if self.__corporation_id is not None:
            headers[&#34;x-corporation-id&#34;] = self.__corporation_id

        if self.__integrator_id is not None:
            headers[&#34;x-integrator-id&#34;] = self.__integrator_id

        if self.__platform_id is not None:
            headers[&#34;x-platform-id&#34;] = self.__platform_id

        if self.__custom_headers is not None:
            headers.update(self.__custom_headers)

        return headers

    @property
    def access_token(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates access_token
        &#34;&#34;&#34;
        return self.__access_token

    @access_token.setter
    def access_token(self, value):
        if not isinstance(value, str):
            raise ValueError(&#34;Param access_token must be a String&#34;)
        self.__access_token = value

    @property
    def connection_timeout(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates connection timeout
        &#34;&#34;&#34;
        return self.__connection_timeout

    @connection_timeout.setter
    def connection_timeout(self, value):
        if not isinstance(value, float):
            raise ValueError(&#34;Param connection_timeout must be a Float&#34;)
        self.__connection_timeout = value

    @property
    def corporation_id(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates corporation id
        &#34;&#34;&#34;
        return self.__corporation_id

    @corporation_id.setter
    def corporation_id(self, value):
        if not isinstance(value, str):
            raise ValueError(&#34;Param corporation_id must be a String&#34;)
        self.__corporation_id = value

    @property
    def custom_headers(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates custom headers
        &#34;&#34;&#34;
        return self.__custom_headers

    @custom_headers.setter
    def custom_headers(self, value):
        if not isinstance(value, dict):
            raise ValueError(&#34;Param custom_headers must be a Dictionary&#34;)
        self.__custom_headers = value

    @property
    def integrator_id(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates integrator id
        &#34;&#34;&#34;
        return self.__integrator_id

    @integrator_id.setter
    def integrator_id(self, value):
        if not isinstance(value, str):
            raise ValueError(&#34;Param integrator_id must be a String&#34;)
        self.__integrator_id = value

    @property
    def max_retries(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates max retries
        &#34;&#34;&#34;
        return self.__max_retries

    @max_retries.setter
    def max_retries(self, value):
        if not isinstance(value, int):
            raise ValueError(&#34;Param max_retries must be an Integer&#34;)
        self.__max_retries = value

    @property
    def platform_id(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates platform id
        &#34;&#34;&#34;
        return self.__platform_id

    @platform_id.setter
    def platform_id(self, value):
        if not isinstance(value, str):
            raise ValueError(&#34;Param platform_id must be a String&#34;)
        self.__platform_id = value</code></pre>
</details>
<h3>Instance variables</h3>
<dl>
<dt id="mercadopago.config.RequestOptions.access_token"><code class="name">var <span class="ident">access_token</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates access_token</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def access_token(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates access_token
    &#34;&#34;&#34;
    return self.__access_token</code></pre>
</details>
</dd>
<dt id="mercadopago.config.RequestOptions.connection_timeout"><code class="name">var <span class="ident">connection_timeout</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates connection timeout</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def connection_timeout(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates connection timeout
    &#34;&#34;&#34;
    return self.__connection_timeout</code></pre>
</details>
</dd>
<dt id="mercadopago.config.RequestOptions.corporation_id"><code class="name">var <span class="ident">corporation_id</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates corporation id</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def corporation_id(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates corporation id
    &#34;&#34;&#34;
    return self.__corporation_id</code></pre>
</details>
</dd>
<dt id="mercadopago.config.RequestOptions.custom_headers"><code class="name">var <span class="ident">custom_headers</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates custom headers</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def custom_headers(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates custom headers
    &#34;&#34;&#34;
    return self.__custom_headers</code></pre>
</details>
</dd>
<dt id="mercadopago.config.RequestOptions.integrator_id"><code class="name">var <span class="ident">integrator_id</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates integrator id</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def integrator_id(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates integrator id
    &#34;&#34;&#34;
    return self.__integrator_id</code></pre>
</details>
</dd>
<dt id="mercadopago.config.RequestOptions.max_retries"><code class="name">var <span class="ident">max_retries</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates max retries</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def max_retries(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates max retries
    &#34;&#34;&#34;
    return self.__max_retries</code></pre>
</details>
</dd>
<dt id="mercadopago.config.RequestOptions.platform_id"><code class="name">var <span class="ident">platform_id</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates platform id</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def platform_id(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates platform id
    &#34;&#34;&#34;
    return self.__platform_id</code></pre>
</details>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="mercadopago.config.RequestOptions.get_headers"><code class="name flex">
<span>def <span class="ident">get_headers</span></span>(<span>self)</span>
</code></dt>
<dd>
<div class="desc"><p>Sets the attribute values of headers</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def get_headers(self):
    &#34;&#34;&#34;
    Sets the attribute values of headers
    &#34;&#34;&#34;
    headers = {&#34;Authorization&#34;: &#34;Bearer &#34; + self.__access_token,
               &#34;x-product-id&#34;: self.__config.product_id,
               &#34;x-tracking-id&#34;: self.__config.tracking_id,
               &#34;x-idempotency-key&#34;: str(uuid.uuid4().int),
               &#34;User-Agent&#34;: self.__config.user_agent,
               &#34;Accept&#34;: self.__config.mime_json}

    if self.__corporation_id is not None:
        headers[&#34;x-corporation-id&#34;] = self.__corporation_id

    if self.__integrator_id is not None:
        headers[&#34;x-integrator-id&#34;] = self.__integrator_id

    if self.__platform_id is not None:
        headers[&#34;x-platform-id&#34;] = self.__platform_id

    if self.__custom_headers is not None:
        headers.update(self.__custom_headers)

    return headers</code></pre>
</details>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<h1>Index</h1>
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="mercadopago" href="../index.html">mercadopago</a></code></li>
</ul>
</li>
<li><h3><a href="#header-submodules">Sub-modules</a></h3>
<ul>
<li><code><a title="mercadopago.config.config" href="config.html">mercadopago.config.config</a></code></li>
<li><code><a title="mercadopago.config.request_options" href="request_options.html">mercadopago.config.request_options</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="mercadopago.config.Config" href="#mercadopago.config.Config">Config</a></code></h4>
<ul class="two-column">
<li><code><a title="mercadopago.config.Config.api_base_url" href="#mercadopago.config.Config.api_base_url">api_base_url</a></code></li>
<li><code><a title="mercadopago.config.Config.mime_form" href="#mercadopago.config.Config.mime_form">mime_form</a></code></li>
<li><code><a title="mercadopago.config.Config.mime_json" href="#mercadopago.config.Config.mime_json">mime_json</a></code></li>
<li><code><a title="mercadopago.config.Config.product_id" href="#mercadopago.config.Config.product_id">product_id</a></code></li>
<li><code><a title="mercadopago.config.Config.tracking_id" href="#mercadopago.config.Config.tracking_id">tracking_id</a></code></li>
<li><code><a title="mercadopago.config.Config.user_agent" href="#mercadopago.config.Config.user_agent">user_agent</a></code></li>
<li><code><a title="mercadopago.config.Config.version" href="#mercadopago.config.Config.version">version</a></code></li>
</ul>
</li>
<li>
<h4><code><a title="mercadopago.config.RequestOptions" href="#mercadopago.config.RequestOptions">RequestOptions</a></code></h4>
<ul class="two-column">
<li><code><a title="mercadopago.config.RequestOptions.access_token" href="#mercadopago.config.RequestOptions.access_token">access_token</a></code></li>
<li><code><a title="mercadopago.config.RequestOptions.connection_timeout" href="#mercadopago.config.RequestOptions.connection_timeout">connection_timeout</a></code></li>
<li><code><a title="mercadopago.config.RequestOptions.corporation_id" href="#mercadopago.config.RequestOptions.corporation_id">corporation_id</a></code></li>
<li><code><a title="mercadopago.config.RequestOptions.custom_headers" href="#mercadopago.config.RequestOptions.custom_headers">custom_headers</a></code></li>
<li><code><a title="mercadopago.config.RequestOptions.get_headers" href="#mercadopago.config.RequestOptions.get_headers">get_headers</a></code></li>
<li><code><a title="mercadopago.config.RequestOptions.integrator_id" href="#mercadopago.config.RequestOptions.integrator_id">integrator_id</a></code></li>
<li><code><a title="mercadopago.config.RequestOptions.max_retries" href="#mercadopago.config.RequestOptions.max_retries">max_retries</a></code></li>
<li><code><a title="mercadopago.config.RequestOptions.platform_id" href="#mercadopago.config.RequestOptions.platform_id">platform_id</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.10.0</a>.</p>
</footer>
</body>
</html>

================================================
FILE: docs/config/request_options.html
================================================
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<meta name="generator" content="pdoc 0.10.0" />
<title>mercadopago.config.request_options API documentation</title>
<meta name="description" content="Module: request_options" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>mercadopago.config.request_options</code></h1>
</header>
<section id="section-intro">
<p>Module: request_options</p>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">&#34;&#34;&#34;
Module: request_options
&#34;&#34;&#34;
import uuid

from .config import Config


class RequestOptions:  # pylint: disable=too-many-instance-attributes

    &#34;&#34;&#34;This object hold all configurations that will be used in ur REST call.

    All here u can customize as well add params in the requisition header (custom_headers)
    &#34;&#34;&#34;

    __access_token = None
    __connection_timeout = None
    __custom_headers = None
    __max_retries = None
    __corporation_id = None
    __integrator_id = None
    __platform_id = None

    def __init__(  # pylint: disable=too-many-arguments
        self,
        access_token=None,
        connection_timeout=60.0,
        custom_headers=None,
        corporation_id=None,
        integrator_id=None,
        platform_id=None,
        max_retries=3,
    ):
        &#34;&#34;&#34;Initialize

        Args:
            access_token (str, optional): Your User Access Token. Defaults to None.
            connection_timeout (float, optional): Time to timeout the REST call. Defaults to 60.0.
            custom_headers (dict, optional): A Dict with params to be added to the requests params.
            Defaults to None.
            corporation_id (str, optional): Your Corporation ID if any. Defaults to None.
            integrator_id (str, optional): Your Integrator ID if any. Defaults to None.
            platform_id (str, optional): Your Platform ID if any. Defaults to None.
            max_retries (int, optional): How many retries must be done in case of fail.
            Defaults to 3.

        Raises:
            ValueError: Param access_token must be a String
            ValueError: Param connection_timeout must be a Float
            ValueError: Param custom_headers must be a Dictionary
            ValueError: Param corporation_id must be a String
            ValueError: Param integrator_id must be a String
            ValueError: Param platform_id must be a String
            ValueError: Param max_retries must be an Integer
        &#34;&#34;&#34;

        if access_token is not None:
            self.access_token = access_token
        if connection_timeout is not None:
            self.connection_timeout = connection_timeout
        if custom_headers is not None:
            self.custom_headers = custom_headers
        if max_retries is not None:
            self.max_retries = max_retries
        if corporation_id is not None:
            self.corporation_id = corporation_id
        if integrator_id is not None:
            self.integrator_id = integrator_id
        if platform_id is not None:
            self.platform_id = platform_id

        self.__config = Config()

    def get_headers(self):
        &#34;&#34;&#34;
        Sets the attribute values of headers
        &#34;&#34;&#34;
        headers = {&#34;Authorization&#34;: &#34;Bearer &#34; + self.__access_token,
                   &#34;x-product-id&#34;: self.__config.product_id,
                   &#34;x-tracking-id&#34;: self.__config.tracking_id,
                   &#34;x-idempotency-key&#34;: str(uuid.uuid4().int),
                   &#34;User-Agent&#34;: self.__config.user_agent,
                   &#34;Accept&#34;: self.__config.mime_json}

        if self.__corporation_id is not None:
            headers[&#34;x-corporation-id&#34;] = self.__corporation_id

        if self.__integrator_id is not None:
            headers[&#34;x-integrator-id&#34;] = self.__integrator_id

        if self.__platform_id is not None:
            headers[&#34;x-platform-id&#34;] = self.__platform_id

        if self.__custom_headers is not None:
            headers.update(self.__custom_headers)

        return headers

    @property
    def access_token(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates access_token
        &#34;&#34;&#34;
        return self.__access_token

    @access_token.setter
    def access_token(self, value):
        if not isinstance(value, str):
            raise ValueError(&#34;Param access_token must be a String&#34;)
        self.__access_token = value

    @property
    def connection_timeout(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates connection timeout
        &#34;&#34;&#34;
        return self.__connection_timeout

    @connection_timeout.setter
    def connection_timeout(self, value):
        if not isinstance(value, float):
            raise ValueError(&#34;Param connection_timeout must be a Float&#34;)
        self.__connection_timeout = value

    @property
    def corporation_id(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates corporation id
        &#34;&#34;&#34;
        return self.__corporation_id

    @corporation_id.setter
    def corporation_id(self, value):
        if not isinstance(value, str):
            raise ValueError(&#34;Param corporation_id must be a String&#34;)
        self.__corporation_id = value

    @property
    def custom_headers(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates custom headers
        &#34;&#34;&#34;
        return self.__custom_headers

    @custom_headers.setter
    def custom_headers(self, value):
        if not isinstance(value, dict):
            raise ValueError(&#34;Param custom_headers must be a Dictionary&#34;)
        self.__custom_headers = value

    @property
    def integrator_id(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates integrator id
        &#34;&#34;&#34;
        return self.__integrator_id

    @integrator_id.setter
    def integrator_id(self, value):
        if not isinstance(value, str):
            raise ValueError(&#34;Param integrator_id must be a String&#34;)
        self.__integrator_id = value

    @property
    def max_retries(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates max retries
        &#34;&#34;&#34;
        return self.__max_retries

    @max_retries.setter
    def max_retries(self, value):
        if not isinstance(value, int):
            raise ValueError(&#34;Param max_retries must be an Integer&#34;)
        self.__max_retries = value

    @property
    def platform_id(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates platform id
        &#34;&#34;&#34;
        return self.__platform_id

    @platform_id.setter
    def platform_id(self, value):
        if not isinstance(value, str):
            raise ValueError(&#34;Param platform_id must be a String&#34;)
        self.__platform_id = value</code></pre>
</details>
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="mercadopago.config.request_options.RequestOptions"><code class="flex name class">
<span>class <span class="ident">RequestOptions</span></span>
<span>(</span><span>access_token=None, connection_timeout=60.0, custom_headers=None, corporation_id=None, integrator_id=None, platform_id=None, max_retries=3)</span>
</code></dt>
<dd>
<div class="desc"><p>This object hold all configurations that will be used in ur REST call.</p>
<p>All here u can customize as well add params in the requisition header (custom_headers)</p>
<p>Initialize</p>
<h2 id="args">Args</h2>
<dl>
<dt><strong><code>access_token</code></strong> :&ensp;<code>str</code>, optional</dt>
<dd>Your User Access Token. Defaults to None.</dd>
<dt><strong><code>connection_timeout</code></strong> :&ensp;<code>float</code>, optional</dt>
<dd>Time to timeout the REST call. Defaults to 60.0.</dd>
<dt><strong><code>custom_headers</code></strong> :&ensp;<code>dict</code>, optional</dt>
<dd>A Dict with params to be added to the requests params.</dd>
<dt>Defaults to None.</dt>
<dt><strong><code>corporation_id</code></strong> :&ensp;<code>str</code>, optional</dt>
<dd>Your Corporation ID if any. Defaults to None.</dd>
<dt><strong><code>integrator_id</code></strong> :&ensp;<code>str</code>, optional</dt>
<dd>Your Integrator ID if any. Defaults to None.</dd>
<dt><strong><code>platform_id</code></strong> :&ensp;<code>str</code>, optional</dt>
<dd>Your Platform ID if any. Defaults to None.</dd>
<dt><strong><code>max_retries</code></strong> :&ensp;<code>int</code>, optional</dt>
<dd>How many retries must be done in case of fail.</dd>
</dl>
<p>Defaults to 3.</p>
<h2 id="raises">Raises</h2>
<dl>
<dt><code>ValueError</code></dt>
<dd>Param access_token must be a String</dd>
<dt><code>ValueError</code></dt>
<dd>Param connection_timeout must be a Float</dd>
<dt><code>ValueError</code></dt>
<dd>Param custom_headers must be a Dictionary</dd>
<dt><code>ValueError</code></dt>
<dd>Param corporation_id must be a String</dd>
<dt><code>ValueError</code></dt>
<dd>Param integrator_id must be a String</dd>
<dt><code>ValueError</code></dt>
<dd>Param platform_id must be a String</dd>
<dt><code>ValueError</code></dt>
<dd>Param max_retries must be an Integer</dd>
</dl></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class RequestOptions:  # pylint: disable=too-many-instance-attributes

    &#34;&#34;&#34;This object hold all configurations that will be used in ur REST call.

    All here u can customize as well add params in the requisition header (custom_headers)
    &#34;&#34;&#34;

    __access_token = None
    __connection_timeout = None
    __custom_headers = None
    __max_retries = None
    __corporation_id = None
    __integrator_id = None
    __platform_id = None

    def __init__(  # pylint: disable=too-many-arguments
        self,
        access_token=None,
        connection_timeout=60.0,
        custom_headers=None,
        corporation_id=None,
        integrator_id=None,
        platform_id=None,
        max_retries=3,
    ):
        &#34;&#34;&#34;Initialize

        Args:
            access_token (str, optional): Your User Access Token. Defaults to None.
            connection_timeout (float, optional): Time to timeout the REST call. Defaults to 60.0.
            custom_headers (dict, optional): A Dict with params to be added to the requests params.
            Defaults to None.
            corporation_id (str, optional): Your Corporation ID if any. Defaults to None.
            integrator_id (str, optional): Your Integrator ID if any. Defaults to None.
            platform_id (str, optional): Your Platform ID if any. Defaults to None.
            max_retries (int, optional): How many retries must be done in case of fail.
            Defaults to 3.

        Raises:
            ValueError: Param access_token must be a String
            ValueError: Param connection_timeout must be a Float
            ValueError: Param custom_headers must be a Dictionary
            ValueError: Param corporation_id must be a String
            ValueError: Param integrator_id must be a String
            ValueError: Param platform_id must be a String
            ValueError: Param max_retries must be an Integer
        &#34;&#34;&#34;

        if access_token is not None:
            self.access_token = access_token
        if connection_timeout is not None:
            self.connection_timeout = connection_timeout
        if custom_headers is not None:
            self.custom_headers = custom_headers
        if max_retries is not None:
            self.max_retries = max_retries
        if corporation_id is not None:
            self.corporation_id = corporation_id
        if integrator_id is not None:
            self.integrator_id = integrator_id
        if platform_id is not None:
            self.platform_id = platform_id

        self.__config = Config()

    def get_headers(self):
        &#34;&#34;&#34;
        Sets the attribute values of headers
        &#34;&#34;&#34;
        headers = {&#34;Authorization&#34;: &#34;Bearer &#34; + self.__access_token,
                   &#34;x-product-id&#34;: self.__config.product_id,
                   &#34;x-tracking-id&#34;: self.__config.tracking_id,
                   &#34;x-idempotency-key&#34;: str(uuid.uuid4().int),
                   &#34;User-Agent&#34;: self.__config.user_agent,
                   &#34;Accept&#34;: self.__config.mime_json}

        if self.__corporation_id is not None:
            headers[&#34;x-corporation-id&#34;] = self.__corporation_id

        if self.__integrator_id is not None:
            headers[&#34;x-integrator-id&#34;] = self.__integrator_id

        if self.__platform_id is not None:
            headers[&#34;x-platform-id&#34;] = self.__platform_id

        if self.__custom_headers is not None:
            headers.update(self.__custom_headers)

        return headers

    @property
    def access_token(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates access_token
        &#34;&#34;&#34;
        return self.__access_token

    @access_token.setter
    def access_token(self, value):
        if not isinstance(value, str):
            raise ValueError(&#34;Param access_token must be a String&#34;)
        self.__access_token = value

    @property
    def connection_timeout(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates connection timeout
        &#34;&#34;&#34;
        return self.__connection_timeout

    @connection_timeout.setter
    def connection_timeout(self, value):
        if not isinstance(value, float):
            raise ValueError(&#34;Param connection_timeout must be a Float&#34;)
        self.__connection_timeout = value

    @property
    def corporation_id(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates corporation id
        &#34;&#34;&#34;
        return self.__corporation_id

    @corporation_id.setter
    def corporation_id(self, value):
        if not isinstance(value, str):
            raise ValueError(&#34;Param corporation_id must be a String&#34;)
        self.__corporation_id = value

    @property
    def custom_headers(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates custom headers
        &#34;&#34;&#34;
        return self.__custom_headers

    @custom_headers.setter
    def custom_headers(self, value):
        if not isinstance(value, dict):
            raise ValueError(&#34;Param custom_headers must be a Dictionary&#34;)
        self.__custom_headers = value

    @property
    def integrator_id(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates integrator id
        &#34;&#34;&#34;
        return self.__integrator_id

    @integrator_id.setter
    def integrator_id(self, value):
        if not isinstance(value, str):
            raise ValueError(&#34;Param integrator_id must be a String&#34;)
        self.__integrator_id = value

    @property
    def max_retries(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates max retries
        &#34;&#34;&#34;
        return self.__max_retries

    @max_retries.setter
    def max_retries(self, value):
        if not isinstance(value, int):
            raise ValueError(&#34;Param max_retries must be an Integer&#34;)
        self.__max_retries = value

    @property
    def platform_id(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates platform id
        &#34;&#34;&#34;
        return self.__platform_id

    @platform_id.setter
    def platform_id(self, value):
        if not isinstance(value, str):
            raise ValueError(&#34;Param platform_id must be a String&#34;)
        self.__platform_id = value</code></pre>
</details>
<h3>Instance variables</h3>
<dl>
<dt id="mercadopago.config.request_options.RequestOptions.access_token"><code class="name">var <span class="ident">access_token</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates access_token</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def access_token(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates access_token
    &#34;&#34;&#34;
    return self.__access_token</code></pre>
</details>
</dd>
<dt id="mercadopago.config.request_options.RequestOptions.connection_timeout"><code class="name">var <span class="ident">connection_timeout</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates connection timeout</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def connection_timeout(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates connection timeout
    &#34;&#34;&#34;
    return self.__connection_timeout</code></pre>
</details>
</dd>
<dt id="mercadopago.config.request_options.RequestOptions.corporation_id"><code class="name">var <span class="ident">corporation_id</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates corporation id</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def corporation_id(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates corporation id
    &#34;&#34;&#34;
    return self.__corporation_id</code></pre>
</details>
</dd>
<dt id="mercadopago.config.request_options.RequestOptions.custom_headers"><code class="name">var <span class="ident">custom_headers</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates custom headers</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def custom_headers(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates custom headers
    &#34;&#34;&#34;
    return self.__custom_headers</code></pre>
</details>
</dd>
<dt id="mercadopago.config.request_options.RequestOptions.integrator_id"><code class="name">var <span class="ident">integrator_id</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates integrator id</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def integrator_id(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates integrator id
    &#34;&#34;&#34;
    return self.__integrator_id</code></pre>
</details>
</dd>
<dt id="mercadopago.config.request_options.RequestOptions.max_retries"><code class="name">var <span class="ident">max_retries</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates max retries</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def max_retries(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates max retries
    &#34;&#34;&#34;
    return self.__max_retries</code></pre>
</details>
</dd>
<dt id="mercadopago.config.request_options.RequestOptions.platform_id"><code class="name">var <span class="ident">platform_id</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates platform id</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def platform_id(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates platform id
    &#34;&#34;&#34;
    return self.__platform_id</code></pre>
</details>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="mercadopago.config.request_options.RequestOptions.get_headers"><code class="name flex">
<span>def <span class="ident">get_headers</span></span>(<span>self)</span>
</code></dt>
<dd>
<div class="desc"><p>Sets the attribute values of headers</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def get_headers(self):
    &#34;&#34;&#34;
    Sets the attribute values of headers
    &#34;&#34;&#34;
    headers = {&#34;Authorization&#34;: &#34;Bearer &#34; + self.__access_token,
               &#34;x-product-id&#34;: self.__config.product_id,
               &#34;x-tracking-id&#34;: self.__config.tracking_id,
               &#34;x-idempotency-key&#34;: str(uuid.uuid4().int),
               &#34;User-Agent&#34;: self.__config.user_agent,
               &#34;Accept&#34;: self.__config.mime_json}

    if self.__corporation_id is not None:
        headers[&#34;x-corporation-id&#34;] = self.__corporation_id

    if self.__integrator_id is not None:
        headers[&#34;x-integrator-id&#34;] = self.__integrator_id

    if self.__platform_id is not None:
        headers[&#34;x-platform-id&#34;] = self.__platform_id

    if self.__custom_headers is not None:
        headers.update(self.__custom_headers)

    return headers</code></pre>
</details>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<h1>Index</h1>
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="mercadopago.config" href="index.html">mercadopago.config</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="mercadopago.config.request_options.RequestOptions" href="#mercadopago.config.request_options.RequestOptions">RequestOptions</a></code></h4>
<ul class="two-column">
<li><code><a title="mercadopago.config.request_options.RequestOptions.access_token" href="#mercadopago.config.request_options.RequestOptions.access_token">access_token</a></code></li>
<li><code><a title="mercadopago.config.request_options.RequestOptions.connection_timeout" href="#mercadopago.config.request_options.RequestOptions.connection_timeout">connection_timeout</a></code></li>
<li><code><a title="mercadopago.config.request_options.RequestOptions.corporation_id" href="#mercadopago.config.request_options.RequestOptions.corporation_id">corporation_id</a></code></li>
<li><code><a title="mercadopago.config.request_options.RequestOptions.custom_headers" href="#mercadopago.config.request_options.RequestOptions.custom_headers">custom_headers</a></code></li>
<li><code><a title="mercadopago.config.request_options.RequestOptions.get_headers" href="#mercadopago.config.request_options.RequestOptions.get_headers">get_headers</a></code></li>
<li><code><a title="mercadopago.config.request_options.RequestOptions.integrator_id" href="#mercadopago.config.request_options.RequestOptions.integrator_id">integrator_id</a></code></li>
<li><code><a title="mercadopago.config.request_options.RequestOptions.max_retries" href="#mercadopago.config.request_options.RequestOptions.max_retries">max_retries</a></code></li>
<li><code><a title="mercadopago.config.request_options.RequestOptions.platform_id" href="#mercadopago.config.request_options.RequestOptions.platform_id">platform_id</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.10.0</a>.</p>
</footer>
</body>
</html>

================================================
FILE: docs/core/index.html
================================================
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<meta name="generator" content="pdoc 0.10.0" />
<title>mercadopago.core API documentation</title>
<meta name="description" content="Module: core/__init__.py" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>mercadopago.core</code></h1>
</header>
<section id="section-intro">
<p>Module: core/<strong>init</strong>.py</p>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">&#34;&#34;&#34;
Module: core/__init__.py
&#34;&#34;&#34;
from mercadopago.core.mp_base import MPBase


__all__ = (
    &#39;MPBase&#39;,
)</code></pre>
</details>
</section>
<section>
<h2 class="section-title" id="header-submodules">Sub-modules</h2>
<dl>
<dt><code class="name"><a title="mercadopago.core.mp_base" href="mp_base.html">mercadopago.core.mp_base</a></code></dt>
<dd>
<div class="desc"><p>Module: mp_base</p></div>
</dd>
</dl>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="mercadopago.core.MPBase"><code class="flex name class">
<span>class <span class="ident">MPBase</span></span>
<span>(</span><span>request_options, http_client)</span>
</code></dt>
<dd>
<div class="desc"><p>All mercadopago.resources extends this one to call the REST services</p>
<h2 id="args">Args</h2>
<dl>
<dt>request_options (mercadopago.config.request_options, optional):</dt>
<dt>An instance of RequestOptions can be pass changing or adding custom options</dt>
<dt>to ur REST calls. Defaults to None.</dt>
<dt><strong><code>http_client</code></strong> :&ensp;<code><a title="mercadopago.http.http_client" href="../http/http_client.html">mercadopago.http.http_client</a></code>, optional</dt>
<dd>An implementation of</dd>
</dl>
<p>HttpClient can be pass to be used to make the REST calls. Defaults to None.</p>
<h2 id="raises">Raises</h2>
<dl>
<dt><code>ValueError</code></dt>
<dd>Param request_options must be a RequestOptions Object</dd>
<dt><code>ValueError</code></dt>
<dd>Filters must be a Dictionary</dd>
</dl></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class MPBase:
    &#34;&#34;&#34;All mercadopago.resources extends this one to call the REST services

    Args:
        request_options (mercadopago.config.request_options, optional):
        An instance of RequestOptions can be pass changing or adding custom options
        to ur REST calls. Defaults to None.
        http_client (mercadopago.http.http_client, optional): An implementation of
        HttpClient can be pass to be used to make the REST calls. Defaults to None.

    Raises:
        ValueError: Param request_options must be a RequestOptions Object
        ValueError: Filters must be a Dictionary
    &#34;&#34;&#34;

    def __init__(self, request_options, http_client):
        if not isinstance(request_options, RequestOptions):
            raise ValueError(
                &#34;Param request_options must be a RequestOptions Object&#34;)

        self.__request_options = request_options
        self.__http_client = http_client
        self.__config = Config()

    def __check_request_options(self, request_options):
        if request_options is not None and not isinstance(request_options, RequestOptions):
            raise ValueError(
                &#34;Param request_options must be a RequestOptions Object&#34;)
        if request_options is None:
            request_options = self.__request_options

        if request_options.access_token is None:
            request_options.access_token = self.__request_options.access_token

        return request_options

    def __check_headers(self, request_options, extra_headers=None):
        headers = self.__request_options.get_headers()
        if request_options is not None:
            headers = request_options.get_headers()

        if extra_headers is not None:
            headers.update(extra_headers)

        return headers

    def _get(self, uri, filters=None, request_options=None):
        if filters is not None and not isinstance(filters, dict):
            raise ValueError(&#34;Filters must be a Dictionary&#34;)

        request_options = self.__check_request_options(request_options)
        headers = self.__check_headers(
            request_options, {&#34;Content-type&#34;: self.__config.mime_json})

        return self.__http_client.get(
            url=self.__config.api_base_url + uri,
            params=filters,
            headers=headers,
            timeout=request_options.connection_timeout,
            maxretries=request_options.max_retries,
        )

    def _post(self, uri, data=None, params=None, request_options=None):
        if data is not None:
            data = JSONEncoder().encode(data)

        request_options = self.__check_request_options(request_options)
        headers = self.__check_headers(
            request_options, {&#34;Content-type&#34;: self.__config.mime_json})

        return self.__http_client.post(
            url=self.__config.api_base_url + uri,
            data=data,
            params=params,
            headers=headers,
            timeout=request_options.connection_timeout,
            maxretries=request_options.max_retries,
        )

    def _put(self, uri, data=None, params=None, request_options=None):
        if data is not None:
            data = JSONEncoder().encode(data)

        request_options = self.__check_request_options(request_options)
        headers = self.__check_headers(
            request_options, {&#34;Content-type&#34;: self.__config.mime_json})

        return self.__http_client.put(
            url=self.__config.api_base_url + uri,
            data=data,
            params=params,
            headers=headers,
            timeout=request_options.connection_timeout,
            maxretries=request_options.max_retries,
        )

    def _delete(self, uri, params=None, request_options=None):
        request_options = self.__check_request_options(request_options)
        headers = self.__check_headers(request_options)

        return self.__http_client.delete(
            url=self.__config.api_base_url + uri,
            params=params,
            headers=headers,
            timeout=request_options.connection_timeout,
            maxretries=request_options.max_retries,
        )

    @property
    def request_options(self):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return self.__request_options

    @property
    def config(self):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return self.__config</code></pre>
</details>
<h3>Subclasses</h3>
<ul class="hlist">
<li><a title="mercadopago.resources.advanced_payment.AdvancedPayment" href="../resources/advanced_payment.html#mercadopago.resources.advanced_payment.AdvancedPayment">AdvancedPayment</a></li>
<li><a title="mercadopago.resources.card.Card" href="../resources/card.html#mercadopago.resources.card.Card">Card</a></li>
<li><a title="mercadopago.resources.card_token.CardToken" href="../resources/card_token.html#mercadopago.resources.card_token.CardToken">CardToken</a></li>
<li><a title="mercadopago.resources.customer.Customer" href="../resources/customer.html#mercadopago.resources.customer.Customer">Customer</a></li>
<li><a title="mercadopago.resources.disbursement_refund.DisbursementRefund" href="../resources/disbursement_refund.html#mercadopago.resources.disbursement_refund.DisbursementRefund">DisbursementRefund</a></li>
<li><a title="mercadopago.resources.identification_type.IdentificationType" href="../resources/identification_type.html#mercadopago.resources.identification_type.IdentificationType">IdentificationType</a></li>
<li><a title="mercadopago.resources.merchant_order.MerchantOrder" href="../resources/merchant_order.html#mercadopago.resources.merchant_order.MerchantOrder">MerchantOrder</a></li>
<li><a title="mercadopago.resources.payment.Payment" href="../resources/payment.html#mercadopago.resources.payment.Payment">Payment</a></li>
<li><a title="mercadopago.resources.payment_methods.PaymentMethods" href="../resources/payment_methods.html#mercadopago.resources.payment_methods.PaymentMethods">PaymentMethods</a></li>
<li><a title="mercadopago.resources.preapproval.PreApproval" href="../resources/preapproval.html#mercadopago.resources.preapproval.PreApproval">PreApproval</a></li>
<li><a title="mercadopago.resources.preference.Preference" href="../resources/preference.html#mercadopago.resources.preference.Preference">Preference</a></li>
<li><a title="mercadopago.resources.refund.Refund" href="../resources/refund.html#mercadopago.resources.refund.Refund">Refund</a></li>
<li><a title="mercadopago.resources.user.User" href="../resources/user.html#mercadopago.resources.user.User">User</a></li>
</ul>
<h3>Instance variables</h3>
<dl>
<dt id="mercadopago.core.MPBase.config"><code class="name">var <span class="ident">config</span></code></dt>
<dd>
<div class="desc"><p>Returns the attribute value of the function</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def config(self):
    &#34;&#34;&#34;
    Returns the attribute value of the function
    &#34;&#34;&#34;
    return self.__config</code></pre>
</details>
</dd>
<dt id="mercadopago.core.MPBase.request_options"><code class="name">var <span class="ident">request_options</span></code></dt>
<dd>
<div class="desc"><p>Returns the attribute value of the function</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def request_options(self):
    &#34;&#34;&#34;
    Returns the attribute value of the function
    &#34;&#34;&#34;
    return self.__request_options</code></pre>
</details>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<h1>Index</h1>
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="mercadopago" href="../index.html">mercadopago</a></code></li>
</ul>
</li>
<li><h3><a href="#header-submodules">Sub-modules</a></h3>
<ul>
<li><code><a title="mercadopago.core.mp_base" href="mp_base.html">mercadopago.core.mp_base</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="mercadopago.core.MPBase" href="#mercadopago.core.MPBase">MPBase</a></code></h4>
<ul class="">
<li><code><a title="mercadopago.core.MPBase.config" href="#mercadopago.core.MPBase.config">config</a></code></li>
<li><code><a title="mercadopago.core.MPBase.request_options" href="#mercadopago.core.MPBase.request_options">request_options</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.10.0</a>.</p>
</footer>
</body>
</html>

================================================
FILE: docs/core/mp_base.html
================================================
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<meta name="generator" content="pdoc 0.10.0" />
<title>mercadopago.core.mp_base API documentation</title>
<meta name="description" content="Module: mp_base" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>mercadopago.core.mp_base</code></h1>
</header>
<section id="section-intro">
<p>Module: mp_base</p>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">&#34;&#34;&#34;
Module: mp_base
&#34;&#34;&#34;
from json.encoder import JSONEncoder

from mercadopago.config.config import Config
from mercadopago.config.request_options import RequestOptions


class MPBase:
    &#34;&#34;&#34;All mercadopago.resources extends this one to call the REST services

    Args:
        request_options (mercadopago.config.request_options, optional):
        An instance of RequestOptions can be pass changing or adding custom options
        to ur REST calls. Defaults to None.
        http_client (mercadopago.http.http_client, optional): An implementation of
        HttpClient can be pass to be used to make the REST calls. Defaults to None.

    Raises:
        ValueError: Param request_options must be a RequestOptions Object
        ValueError: Filters must be a Dictionary
    &#34;&#34;&#34;

    def __init__(self, request_options, http_client):
        if not isinstance(request_options, RequestOptions):
            raise ValueError(
                &#34;Param request_options must be a RequestOptions Object&#34;)

        self.__request_options = request_options
        self.__http_client = http_client
        self.__config = Config()

    def __check_request_options(self, request_options):
        if request_options is not None and not isinstance(request_options, RequestOptions):
            raise ValueError(
                &#34;Param request_options must be a RequestOptions Object&#34;)
        if request_options is None:
            request_options = self.__request_options

        if request_options.access_token is None:
            request_options.access_token = self.__request_options.access_token

        return request_options

    def __check_headers(self, request_options, extra_headers=None):
        headers = self.__request_options.get_headers()
        if request_options is not None:
            headers = request_options.get_headers()

        if extra_headers is not None:
            headers.update(extra_headers)

        return headers

    def _get(self, uri, filters=None, request_options=None):
        if filters is not None and not isinstance(filters, dict):
            raise ValueError(&#34;Filters must be a Dictionary&#34;)

        request_options = self.__check_request_options(request_options)
        headers = self.__check_headers(
            request_options, {&#34;Content-type&#34;: self.__config.mime_json})

        return self.__http_client.get(
            url=self.__config.api_base_url + uri,
            params=filters,
            headers=headers,
            timeout=request_options.connection_timeout,
            maxretries=request_options.max_retries,
        )

    def _post(self, uri, data=None, params=None, request_options=None):
        if data is not None:
            data = JSONEncoder().encode(data)

        request_options = self.__check_request_options(request_options)
        headers = self.__check_headers(
            request_options, {&#34;Content-type&#34;: self.__config.mime_json})

        return self.__http_client.post(
            url=self.__config.api_base_url + uri,
            data=data,
            params=params,
            headers=headers,
            timeout=request_options.connection_timeout,
            maxretries=request_options.max_retries,
        )

    def _put(self, uri, data=None, params=None, request_options=None):
        if data is not None:
            data = JSONEncoder().encode(data)

        request_options = self.__check_request_options(request_options)
        headers = self.__check_headers(
            request_options, {&#34;Content-type&#34;: self.__config.mime_json})

        return self.__http_client.put(
            url=self.__config.api_base_url + uri,
            data=data,
            params=params,
            headers=headers,
            timeout=request_options.connection_timeout,
            maxretries=request_options.max_retries,
        )

    def _delete(self, uri, params=None, request_options=None):
        request_options = self.__check_request_options(request_options)
        headers = self.__check_headers(request_options)

        return self.__http_client.delete(
            url=self.__config.api_base_url + uri,
            params=params,
            headers=headers,
            timeout=request_options.connection_timeout,
            maxretries=request_options.max_retries,
        )

    @property
    def request_options(self):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return self.__request_options

    @property
    def config(self):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return self.__config</code></pre>
</details>
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="mercadopago.core.mp_base.MPBase"><code class="flex name class">
<span>class <span class="ident">MPBase</span></span>
<span>(</span><span>request_options, http_client)</span>
</code></dt>
<dd>
<div class="desc"><p>All mercadopago.resources extends this one to call the REST services</p>
<h2 id="args">Args</h2>
<dl>
<dt>request_options (mercadopago.config.request_options, optional):</dt>
<dt>An instance of RequestOptions can be pass changing or adding custom options</dt>
<dt>to ur REST calls. Defaults to None.</dt>
<dt><strong><code>http_client</code></strong> :&ensp;<code><a title="mercadopago.http.http_client" href="../http/http_client.html">mercadopago.http.http_client</a></code>, optional</dt>
<dd>An implementation of</dd>
</dl>
<p>HttpClient can be pass to be used to make the REST calls. Defaults to None.</p>
<h2 id="raises">Raises</h2>
<dl>
<dt><code>ValueError</code></dt>
<dd>Param request_options must be a RequestOptions Object</dd>
<dt><code>ValueError</code></dt>
<dd>Filters must be a Dictionary</dd>
</dl></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class MPBase:
    &#34;&#34;&#34;All mercadopago.resources extends this one to call the REST services

    Args:
        request_options (mercadopago.config.request_options, optional):
        An instance of RequestOptions can be pass changing or adding custom options
        to ur REST calls. Defaults to None.
        http_client (mercadopago.http.http_client, optional): An implementation of
        HttpClient can be pass to be used to make the REST calls. Defaults to None.

    Raises:
        ValueError: Param request_options must be a RequestOptions Object
        ValueError: Filters must be a Dictionary
    &#34;&#34;&#34;

    def __init__(self, request_options, http_client):
        if not isinstance(request_options, RequestOptions):
            raise ValueError(
                &#34;Param request_options must be a RequestOptions Object&#34;)

        self.__request_options = request_options
        self.__http_client = http_client
        self.__config = Config()

    def __check_request_options(self, request_options):
        if request_options is not None and not isinstance(request_options, RequestOptions):
            raise ValueError(
                &#34;Param request_options must be a RequestOptions Object&#34;)
        if request_options is None:
            request_options = self.__request_options

        if request_options.access_token is None:
            request_options.access_token = self.__request_options.access_token

        return request_options

    def __check_headers(self, request_options, extra_headers=None):
        headers = self.__request_options.get_headers()
        if request_options is not None:
            headers = request_options.get_headers()

        if extra_headers is not None:
            headers.update(extra_headers)

        return headers

    def _get(self, uri, filters=None, request_options=None):
        if filters is not None and not isinstance(filters, dict):
            raise ValueError(&#34;Filters must be a Dictionary&#34;)

        request_options = self.__check_request_options(request_options)
        headers = self.__check_headers(
            request_options, {&#34;Content-type&#34;: self.__config.mime_json})

        return self.__http_client.get(
            url=self.__config.api_base_url + uri,
            params=filters,
            headers=headers,
            timeout=request_options.connection_timeout,
            maxretries=request_options.max_retries,
        )

    def _post(self, uri, data=None, params=None, request_options=None):
        if data is not None:
            data = JSONEncoder().encode(data)

        request_options = self.__check_request_options(request_options)
        headers = self.__check_headers(
            request_options, {&#34;Content-type&#34;: self.__config.mime_json})

        return self.__http_client.post(
            url=self.__config.api_base_url + uri,
            data=data,
            params=params,
            headers=headers,
            timeout=request_options.connection_timeout,
            maxretries=request_options.max_retries,
        )

    def _put(self, uri, data=None, params=None, request_options=None):
        if data is not None:
            data = JSONEncoder().encode(data)

        request_options = self.__check_request_options(request_options)
        headers = self.__check_headers(
            request_options, {&#34;Content-type&#34;: self.__config.mime_json})

        return self.__http_client.put(
            url=self.__config.api_base_url + uri,
            data=data,
            params=params,
            headers=headers,
            timeout=request_options.connection_timeout,
            maxretries=request_options.max_retries,
        )

    def _delete(self, uri, params=None, request_options=None):
        request_options = self.__check_request_options(request_options)
        headers = self.__check_headers(request_options)

        return self.__http_client.delete(
            url=self.__config.api_base_url + uri,
            params=params,
            headers=headers,
            timeout=request_options.connection_timeout,
            maxretries=request_options.max_retries,
        )

    @property
    def request_options(self):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return self.__request_options

    @property
    def config(self):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return self.__config</code></pre>
</details>
<h3>Subclasses</h3>
<ul class="hlist">
<li><a title="mercadopago.resources.advanced_payment.AdvancedPayment" href="../resources/advanced_payment.html#mercadopago.resources.advanced_payment.AdvancedPayment">AdvancedPayment</a></li>
<li><a title="mercadopago.resources.card.Card" href="../resources/card.html#mercadopago.resources.card.Card">Card</a></li>
<li><a title="mercadopago.resources.card_token.CardToken" href="../resources/card_token.html#mercadopago.resources.card_token.CardToken">CardToken</a></li>
<li><a title="mercadopago.resources.customer.Customer" href="../resources/customer.html#mercadopago.resources.customer.Customer">Customer</a></li>
<li><a title="mercadopago.resources.disbursement_refund.DisbursementRefund" href="../resources/disbursement_refund.html#mercadopago.resources.disbursement_refund.DisbursementRefund">DisbursementRefund</a></li>
<li><a title="mercadopago.resources.identification_type.IdentificationType" href="../resources/identification_type.html#mercadopago.resources.identification_type.IdentificationType">IdentificationType</a></li>
<li><a title="mercadopago.resources.merchant_order.MerchantOrder" href="../resources/merchant_order.html#mercadopago.resources.merchant_order.MerchantOrder">MerchantOrder</a></li>
<li><a title="mercadopago.resources.payment.Payment" href="../resources/payment.html#mercadopago.resources.payment.Payment">Payment</a></li>
<li><a title="mercadopago.resources.payment_methods.PaymentMethods" href="../resources/payment_methods.html#mercadopago.resources.payment_methods.PaymentMethods">PaymentMethods</a></li>
<li><a title="mercadopago.resources.preapproval.PreApproval" href="../resources/preapproval.html#mercadopago.resources.preapproval.PreApproval">PreApproval</a></li>
<li><a title="mercadopago.resources.preference.Preference" href="../resources/preference.html#mercadopago.resources.preference.Preference">Preference</a></li>
<li><a title="mercadopago.resources.refund.Refund" href="../resources/refund.html#mercadopago.resources.refund.Refund">Refund</a></li>
<li><a title="mercadopago.resources.user.User" href="../resources/user.html#mercadopago.resources.user.User">User</a></li>
</ul>
<h3>Instance variables</h3>
<dl>
<dt id="mercadopago.core.mp_base.MPBase.config"><code class="name">var <span class="ident">config</span></code></dt>
<dd>
<div class="desc"><p>Returns the attribute value of the function</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def config(self):
    &#34;&#34;&#34;
    Returns the attribute value of the function
    &#34;&#34;&#34;
    return self.__config</code></pre>
</details>
</dd>
<dt id="mercadopago.core.mp_base.MPBase.request_options"><code class="name">var <span class="ident">request_options</span></code></dt>
<dd>
<div class="desc"><p>Returns the attribute value of the function</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def request_options(self):
    &#34;&#34;&#34;
    Returns the attribute value of the function
    &#34;&#34;&#34;
    return self.__request_options</code></pre>
</details>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<h1>Index</h1>
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="mercadopago.core" href="index.html">mercadopago.core</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="mercadopago.core.mp_base.MPBase" href="#mercadopago.core.mp_base.MPBase">MPBase</a></code></h4>
<ul class="">
<li><code><a title="mercadopago.core.mp_base.MPBase.config" href="#mercadopago.core.mp_base.MPBase.config">config</a></code></li>
<li><code><a title="mercadopago.core.mp_base.MPBase.request_options" href="#mercadopago.core.mp_base.MPBase.request_options">request_options</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.10.0</a>.</p>
</footer>
</body>
</html>

================================================
FILE: docs/http/http_client.html
================================================
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<meta name="generator" content="pdoc 0.10.0" />
<title>mercadopago.http.http_client API documentation</title>
<meta name="description" content="Module: http_client" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>mercadopago.http.http_client</code></h1>
</header>
<section id="section-intro">
<p>Module: http_client</p>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">&#34;&#34;&#34;
Module: http_client
&#34;&#34;&#34;
import requests
from requests.adapters import HTTPAdapter
from urllib3.util import Retry


class HttpClient:
    &#34;&#34;&#34;
    Default implementation to call all REST API&#39;s
    &#34;&#34;&#34;

    def request(self, method, url, maxretries=None, **kwargs):  # pylint: disable=no-self-use
        &#34;&#34;&#34;Makes a call to the API.

        All **kwargs are passed verbatim to ``requests.request``.
        &#34;&#34;&#34;
        retry_strategy = Retry(
            total=maxretries,
            status_forcelist=[429, 500, 502, 503, 504]
        )
        http = requests.Session()
        http.mount(&#34;https://&#34;, HTTPAdapter(max_retries=retry_strategy))
        with http as session:
            api_result = session.request(method, url, **kwargs)
            response = {
                &#34;status&#34;: api_result.status_code,
                &#34;response&#34;: api_result.json()
            }

        return response

    def get(self, url, headers, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
        &#34;&#34;&#34;Makes a GET request to the API&#34;&#34;&#34;
        return self.request(
            &#34;GET&#34;,
            url=url,
            headers=headers,
            params=params,
            timeout=timeout,
            maxretries=maxretries,
        )

    def post(self, url, headers, data=None, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
        &#34;&#34;&#34;Makes a POST request to the API&#34;&#34;&#34;
        return self.request(
            &#34;POST&#34;,
            url=url,
            headers=headers,
            data=data,
            params=params,
            timeout=timeout,
            maxretries=maxretries,
        )

    def put(self, url, headers, data=None, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
        &#34;&#34;&#34;Makes a PUT request to the API&#34;&#34;&#34;
        return self.request(
            &#34;PUT&#34;,
            url=url,
            headers=headers,
            data=data,
            params=params,
            timeout=timeout,
            maxretries=maxretries,
        )

    def delete(self, url, headers, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
        &#34;&#34;&#34;Makes a DELETE request to the API&#34;&#34;&#34;
        return self.request(
            &#34;DELETE&#34;,
            url=url,
            headers=headers,
            params=params,
            timeout=timeout,
            maxretries=maxretries,
        )</code></pre>
</details>
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="mercadopago.http.http_client.HttpClient"><code class="flex name class">
<span>class <span class="ident">HttpClient</span></span>
</code></dt>
<dd>
<div class="desc"><p>Default implementation to call all REST API's</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class HttpClient:
    &#34;&#34;&#34;
    Default implementation to call all REST API&#39;s
    &#34;&#34;&#34;

    def request(self, method, url, maxretries=None, **kwargs):  # pylint: disable=no-self-use
        &#34;&#34;&#34;Makes a call to the API.

        All **kwargs are passed verbatim to ``requests.request``.
        &#34;&#34;&#34;
        retry_strategy = Retry(
            total=maxretries,
            status_forcelist=[429, 500, 502, 503, 504]
        )
        http = requests.Session()
        http.mount(&#34;https://&#34;, HTTPAdapter(max_retries=retry_strategy))
        with http as session:
            api_result = session.request(method, url, **kwargs)
            response = {
                &#34;status&#34;: api_result.status_code,
                &#34;response&#34;: api_result.json()
            }

        return response

    def get(self, url, headers, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
        &#34;&#34;&#34;Makes a GET request to the API&#34;&#34;&#34;
        return self.request(
            &#34;GET&#34;,
            url=url,
            headers=headers,
            params=params,
            timeout=timeout,
            maxretries=maxretries,
        )

    def post(self, url, headers, data=None, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
        &#34;&#34;&#34;Makes a POST request to the API&#34;&#34;&#34;
        return self.request(
            &#34;POST&#34;,
            url=url,
            headers=headers,
            data=data,
            params=params,
            timeout=timeout,
            maxretries=maxretries,
        )

    def put(self, url, headers, data=None, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
        &#34;&#34;&#34;Makes a PUT request to the API&#34;&#34;&#34;
        return self.request(
            &#34;PUT&#34;,
            url=url,
            headers=headers,
            data=data,
            params=params,
            timeout=timeout,
            maxretries=maxretries,
        )

    def delete(self, url, headers, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
        &#34;&#34;&#34;Makes a DELETE request to the API&#34;&#34;&#34;
        return self.request(
            &#34;DELETE&#34;,
            url=url,
            headers=headers,
            params=params,
            timeout=timeout,
            maxretries=maxretries,
        )</code></pre>
</details>
<h3>Methods</h3>
<dl>
<dt id="mercadopago.http.http_client.HttpClient.delete"><code class="name flex">
<span>def <span class="ident">delete</span></span>(<span>self, url, headers, params=None, timeout=None, maxretries=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Makes a DELETE request to the API</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def delete(self, url, headers, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
    &#34;&#34;&#34;Makes a DELETE request to the API&#34;&#34;&#34;
    return self.request(
        &#34;DELETE&#34;,
        url=url,
        headers=headers,
        params=params,
        timeout=timeout,
        maxretries=maxretries,
    )</code></pre>
</details>
</dd>
<dt id="mercadopago.http.http_client.HttpClient.get"><code class="name flex">
<span>def <span class="ident">get</span></span>(<span>self, url, headers, params=None, timeout=None, maxretries=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Makes a GET request to the API</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def get(self, url, headers, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
    &#34;&#34;&#34;Makes a GET request to the API&#34;&#34;&#34;
    return self.request(
        &#34;GET&#34;,
        url=url,
        headers=headers,
        params=params,
        timeout=timeout,
        maxretries=maxretries,
    )</code></pre>
</details>
</dd>
<dt id="mercadopago.http.http_client.HttpClient.post"><code class="name flex">
<span>def <span class="ident">post</span></span>(<span>self, url, headers, data=None, params=None, timeout=None, maxretries=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Makes a POST request to the API</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def post(self, url, headers, data=None, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
    &#34;&#34;&#34;Makes a POST request to the API&#34;&#34;&#34;
    return self.request(
        &#34;POST&#34;,
        url=url,
        headers=headers,
        data=data,
        params=params,
        timeout=timeout,
        maxretries=maxretries,
    )</code></pre>
</details>
</dd>
<dt id="mercadopago.http.http_client.HttpClient.put"><code class="name flex">
<span>def <span class="ident">put</span></span>(<span>self, url, headers, data=None, params=None, timeout=None, maxretries=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Makes a PUT request to the API</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def put(self, url, headers, data=None, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
    &#34;&#34;&#34;Makes a PUT request to the API&#34;&#34;&#34;
    return self.request(
        &#34;PUT&#34;,
        url=url,
        headers=headers,
        data=data,
        params=params,
        timeout=timeout,
        maxretries=maxretries,
    )</code></pre>
</details>
</dd>
<dt id="mercadopago.http.http_client.HttpClient.request"><code class="name flex">
<span>def <span class="ident">request</span></span>(<span>self, method, url, maxretries=None, **kwargs)</span>
</code></dt>
<dd>
<div class="desc"><p>Makes a call to the API.</p>
<p>All **kwargs are passed verbatim to <code>requests.request</code>.</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def request(self, method, url, maxretries=None, **kwargs):  # pylint: disable=no-self-use
    &#34;&#34;&#34;Makes a call to the API.

    All **kwargs are passed verbatim to ``requests.request``.
    &#34;&#34;&#34;
    retry_strategy = Retry(
        total=maxretries,
        status_forcelist=[429, 500, 502, 503, 504]
    )
    http = requests.Session()
    http.mount(&#34;https://&#34;, HTTPAdapter(max_retries=retry_strategy))
    with http as session:
        api_result = session.request(method, url, **kwargs)
        response = {
            &#34;status&#34;: api_result.status_code,
            &#34;response&#34;: api_result.json()
        }

    return response</code></pre>
</details>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<h1>Index</h1>
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="mercadopago.http" href="index.html">mercadopago.http</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="mercadopago.http.http_client.HttpClient" href="#mercadopago.http.http_client.HttpClient">HttpClient</a></code></h4>
<ul class="">
<li><code><a title="mercadopago.http.http_client.HttpClient.delete" href="#mercadopago.http.http_client.HttpClient.delete">delete</a></code></li>
<li><code><a title="mercadopago.http.http_client.HttpClient.get" href="#mercadopago.http.http_client.HttpClient.get">get</a></code></li>
<li><code><a title="mercadopago.http.http_client.HttpClient.post" href="#mercadopago.http.http_client.HttpClient.post">post</a></code></li>
<li><code><a title="mercadopago.http.http_client.HttpClient.put" href="#mercadopago.http.http_client.HttpClient.put">put</a></code></li>
<li><code><a title="mercadopago.http.http_client.HttpClient.request" href="#mercadopago.http.http_client.HttpClient.request">request</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.10.0</a>.</p>
</footer>
</body>
</html>

================================================
FILE: docs/http/index.html
================================================
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<meta name="generator" content="pdoc 0.10.0" />
<title>mercadopago.http API documentation</title>
<meta name="description" content="Module: http/__init__.py" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>mercadopago.http</code></h1>
</header>
<section id="section-intro">
<p>Module: http/<strong>init</strong>.py</p>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">&#34;&#34;&#34;
Module: http/__init__.py
&#34;&#34;&#34;
from mercadopago.http.http_client import HttpClient


__all__ = (
    &#39;HttpClient&#39;,
)</code></pre>
</details>
</section>
<section>
<h2 class="section-title" id="header-submodules">Sub-modules</h2>
<dl>
<dt><code class="name"><a title="mercadopago.http.http_client" href="http_client.html">mercadopago.http.http_client</a></code></dt>
<dd>
<div class="desc"><p>Module: http_client</p></div>
</dd>
</dl>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="mercadopago.http.HttpClient"><code class="flex name class">
<span>class <span class="ident">HttpClient</span></span>
</code></dt>
<dd>
<div class="desc"><p>Default implementation to call all REST API's</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class HttpClient:
    &#34;&#34;&#34;
    Default implementation to call all REST API&#39;s
    &#34;&#34;&#34;

    def request(self, method, url, maxretries=None, **kwargs):  # pylint: disable=no-self-use
        &#34;&#34;&#34;Makes a call to the API.

        All **kwargs are passed verbatim to ``requests.request``.
        &#34;&#34;&#34;
        retry_strategy = Retry(
            total=maxretries,
            status_forcelist=[429, 500, 502, 503, 504]
        )
        http = requests.Session()
        http.mount(&#34;https://&#34;, HTTPAdapter(max_retries=retry_strategy))
        with http as session:
            api_result = session.request(method, url, **kwargs)
            response = {
                &#34;status&#34;: api_result.status_code,
                &#34;response&#34;: api_result.json()
            }

        return response

    def get(self, url, headers, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
        &#34;&#34;&#34;Makes a GET request to the API&#34;&#34;&#34;
        return self.request(
            &#34;GET&#34;,
            url=url,
            headers=headers,
            params=params,
            timeout=timeout,
            maxretries=maxretries,
        )

    def post(self, url, headers, data=None, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
        &#34;&#34;&#34;Makes a POST request to the API&#34;&#34;&#34;
        return self.request(
            &#34;POST&#34;,
            url=url,
            headers=headers,
            data=data,
            params=params,
            timeout=timeout,
            maxretries=maxretries,
        )

    def put(self, url, headers, data=None, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
        &#34;&#34;&#34;Makes a PUT request to the API&#34;&#34;&#34;
        return self.request(
            &#34;PUT&#34;,
            url=url,
            headers=headers,
            data=data,
            params=params,
            timeout=timeout,
            maxretries=maxretries,
        )

    def delete(self, url, headers, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
        &#34;&#34;&#34;Makes a DELETE request to the API&#34;&#34;&#34;
        return self.request(
            &#34;DELETE&#34;,
            url=url,
            headers=headers,
            params=params,
            timeout=timeout,
            maxretries=maxretries,
        )</code></pre>
</details>
<h3>Methods</h3>
<dl>
<dt id="mercadopago.http.HttpClient.delete"><code class="name flex">
<span>def <span class="ident">delete</span></span>(<span>self, url, headers, params=None, timeout=None, maxretries=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Makes a DELETE request to the API</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def delete(self, url, headers, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
    &#34;&#34;&#34;Makes a DELETE request to the API&#34;&#34;&#34;
    return self.request(
        &#34;DELETE&#34;,
        url=url,
        headers=headers,
        params=params,
        timeout=timeout,
        maxretries=maxretries,
    )</code></pre>
</details>
</dd>
<dt id="mercadopago.http.HttpClient.get"><code class="name flex">
<span>def <span class="ident">get</span></span>(<span>self, url, headers, params=None, timeout=None, maxretries=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Makes a GET request to the API</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def get(self, url, headers, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
    &#34;&#34;&#34;Makes a GET request to the API&#34;&#34;&#34;
    return self.request(
        &#34;GET&#34;,
        url=url,
        headers=headers,
        params=params,
        timeout=timeout,
        maxretries=maxretries,
    )</code></pre>
</details>
</dd>
<dt id="mercadopago.http.HttpClient.post"><code class="name flex">
<span>def <span class="ident">post</span></span>(<span>self, url, headers, data=None, params=None, timeout=None, maxretries=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Makes a POST request to the API</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def post(self, url, headers, data=None, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
    &#34;&#34;&#34;Makes a POST request to the API&#34;&#34;&#34;
    return self.request(
        &#34;POST&#34;,
        url=url,
        headers=headers,
        data=data,
        params=params,
        timeout=timeout,
        maxretries=maxretries,
    )</code></pre>
</details>
</dd>
<dt id="mercadopago.http.HttpClient.put"><code class="name flex">
<span>def <span class="ident">put</span></span>(<span>self, url, headers, data=None, params=None, timeout=None, maxretries=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Makes a PUT request to the API</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def put(self, url, headers, data=None, params=None, timeout=None, maxretries=None):  # pylint: disable=too-many-arguments
    &#34;&#34;&#34;Makes a PUT request to the API&#34;&#34;&#34;
    return self.request(
        &#34;PUT&#34;,
        url=url,
        headers=headers,
        data=data,
        params=params,
        timeout=timeout,
        maxretries=maxretries,
    )</code></pre>
</details>
</dd>
<dt id="mercadopago.http.HttpClient.request"><code class="name flex">
<span>def <span class="ident">request</span></span>(<span>self, method, url, maxretries=None, **kwargs)</span>
</code></dt>
<dd>
<div class="desc"><p>Makes a call to the API.</p>
<p>All **kwargs are passed verbatim to <code>requests.request</code>.</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def request(self, method, url, maxretries=None, **kwargs):  # pylint: disable=no-self-use
    &#34;&#34;&#34;Makes a call to the API.

    All **kwargs are passed verbatim to ``requests.request``.
    &#34;&#34;&#34;
    retry_strategy = Retry(
        total=maxretries,
        status_forcelist=[429, 500, 502, 503, 504]
    )
    http = requests.Session()
    http.mount(&#34;https://&#34;, HTTPAdapter(max_retries=retry_strategy))
    with http as session:
        api_result = session.request(method, url, **kwargs)
        response = {
            &#34;status&#34;: api_result.status_code,
            &#34;response&#34;: api_result.json()
        }

    return response</code></pre>
</details>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<h1>Index</h1>
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="mercadopago" href="../index.html">mercadopago</a></code></li>
</ul>
</li>
<li><h3><a href="#header-submodules">Sub-modules</a></h3>
<ul>
<li><code><a title="mercadopago.http.http_client" href="http_client.html">mercadopago.http.http_client</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="mercadopago.http.HttpClient" href="#mercadopago.http.HttpClient">HttpClient</a></code></h4>
<ul class="">
<li><code><a title="mercadopago.http.HttpClient.delete" href="#mercadopago.http.HttpClient.delete">delete</a></code></li>
<li><code><a title="mercadopago.http.HttpClient.get" href="#mercadopago.http.HttpClient.get">get</a></code></li>
<li><code><a title="mercadopago.http.HttpClient.post" href="#mercadopago.http.HttpClient.post">post</a></code></li>
<li><code><a title="mercadopago.http.HttpClient.put" href="#mercadopago.http.HttpClient.put">put</a></code></li>
<li><code><a title="mercadopago.http.HttpClient.request" href="#mercadopago.http.HttpClient.request">request</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.10.0</a>.</p>
</footer>
</body>
</html>

================================================
FILE: docs/index.html
================================================
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<meta name="generator" content="pdoc 0.10.0" />
<title>mercadopago API documentation</title>
<meta name="description" content="Module: mercadopago/__init__.py" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Package <code>mercadopago</code></h1>
</header>
<section id="section-intro">
<p>Module: mercadopago/<strong>init</strong>.py</p>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">&#34;&#34;&#34;
Module: mercadopago/__init__.py
&#34;&#34;&#34;
from mercadopago.sdk import SDK


__all__ = (
    &#39;SDK&#39;,
)</code></pre>
</details>
</section>
<section>
<h2 class="section-title" id="header-submodules">Sub-modules</h2>
<dl>
<dt><code class="name"><a title="mercadopago.config" href="config/index.html">mercadopago.config</a></code></dt>
<dd>
<div class="desc"><p>Module: config/<strong>init</strong>.py</p></div>
</dd>
<dt><code class="name"><a title="mercadopago.core" href="core/index.html">mercadopago.core</a></code></dt>
<dd>
<div class="desc"><p>Module: core/<strong>init</strong>.py</p></div>
</dd>
<dt><code class="name"><a title="mercadopago.http" href="http/index.html">mercadopago.http</a></code></dt>
<dd>
<div class="desc"><p>Module: http/<strong>init</strong>.py</p></div>
</dd>
<dt><code class="name"><a title="mercadopago.resources" href="resources/index.html">mercadopago.resources</a></code></dt>
<dd>
<div class="desc"><p>Module: resources/<strong>init</strong>.py</p></div>
</dd>
<dt><code class="name"><a title="mercadopago.sdk" href="sdk.html">mercadopago.sdk</a></code></dt>
<dd>
<div class="desc"><p>Module: sdk</p></div>
</dd>
</dl>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="mercadopago.SDK"><code class="flex name class">
<span>class <span class="ident">SDK</span></span>
<span>(</span><span>access_token, http_client=None, request_options=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Generate access to all API' modules, which are:</p>
<ol>
<li>Advanced Payment</li>
<li>Card Token</li>
<li>Card</li>
<li>Customer</li>
<li>Disbursement Refund</li>
<li>Identification Type</li>
<li>Merchant Order</li>
<li>Payment Methods</li>
<li>Payment</li>
<li>Preapproval</li>
<li>Preference</li>
<li>Refund</li>
<li>User</li>
</ol>
<p>Construct ur SDK Object to have access to all APIs modules.</p>
<h2 id="args">Args</h2>
<dl>
<dt><a href="https://www.mercadopago.com/mlb/account/credentials">Click here for more info</a></dt>
<dt><strong><code>http_client</code></strong> :&ensp;<code><a title="mercadopago.http.http_client" href="http/http_client.html">mercadopago.http.http_client</a></code>, optional</dt>
<dd>An implementation of</dd>
<dt>HttpClient can be pass to be used to make the REST calls. Defaults to None.</dt>
<dt><strong><code>request_options</code></strong> :&ensp;<code><a title="mercadopago.config.request_options" href="config/request_options.html">mercadopago.config.request_options</a></code>, optional</dt>
<dd>An instance</dd>
</dl>
<p>of RequestOptions can be pass changing or adding custom options to ur REST
calls. Defaults to None.</p>
<h2 id="raises">Raises</h2>
<dl>
<dt><code>ValueError</code></dt>
<dd>Param request_options must be a RequestOptions Object</dd>
</dl></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class SDK:
    &#34;&#34;&#34;Generate access to all API&#39; modules, which are:

        1. Advanced Payment
        2. Card Token
        3. Card
        4. Customer
        5. Disbursement Refund
        6. Identification Type
        7. Merchant Order
        8. Payment Methods
        9. Payment
        10. Preapproval
        11. Preference
        12. Refund
        13. User
    &#34;&#34;&#34;

    def __init__(
        self,
        access_token,
        http_client=None,
        request_options=None,
    ):
        &#34;&#34;&#34;Construct ur SDK Object to have access to all APIs modules.
        Args:
            [Click here for more info](https://www.mercadopago.com/mlb/account/credentials)
            http_client (mercadopago.http.http_client, optional): An implementation of
            HttpClient can be pass to be used to make the REST calls. Defaults to None.
            request_options (mercadopago.config.request_options, optional): An instance
            of RequestOptions can be pass changing or adding custom options to ur REST
            calls. Defaults to None.
        Raises:
            ValueError: Param request_options must be a RequestOptions Object
        &#34;&#34;&#34;

        self.http_client = http_client
        if http_client is None:
            self.http_client = HttpClient()

        self.request_options = request_options
        if request_options is None:
            self.request_options = RequestOptions()

        self.request_options.access_token = access_token

    def advanced_payment(self, request_options=None):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return AdvancedPayment(request_options is not None and request_options
                               or self.request_options, self.http_client)

    def card_token(self, request_options=None):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return CardToken(request_options is not None and request_options
                         or self.request_options, self.http_client)

    def card(self, request_options=None):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return Card(request_options is not None and request_options
                    or self.request_options, self.http_client)

    def customer(self, request_options=None):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return Customer(request_options is not None and request_options
                        or self.request_options, self.http_client)

    def disbursement_refund(self, request_options=None):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return DisbursementRefund(request_options is not None and request_options
                                  or self.request_options, self.http_client)

    def identification_type(self, request_options=None):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return IdentificationType(request_options is not None and request_options
                                  or self.request_options, self.http_client)

    def merchant_order(self, request_options=None):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return MerchantOrder(request_options is not None and request_options
                             or self.request_options, self.http_client)

    def payment(self, request_options=None):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return Payment(request_options is not None and request_options
                       or self.request_options, self.http_client)

    def payment_methods(self, request_options=None):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return PaymentMethods(request_options is not None and request_options
                              or self.request_options, self.http_client)

    def preapproval(self, request_options=None):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return PreApproval(request_options is not None and request_options
                           or self.request_options, self.http_client)

    def preference(self, request_options=None):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return Preference(request_options is not None and request_options
                          or self.request_options, self.http_client)

    def refund(self, request_options=None):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return Refund(request_options is not None and request_options
                      or self.request_options, self.http_client)

    def user(self, request_options=None):
        &#34;&#34;&#34;
        Returns the attribute value of the function
        &#34;&#34;&#34;
        return User(request_options is not None and request_options
                    or self.request_options, self.http_client)

    @property
    def request_options(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates request_options
        &#34;&#34;&#34;
        return self.__request_options

    @request_options.setter
    def request_options(self, value):
        if value is not None and not isinstance(value, RequestOptions):
            raise ValueError(
                &#34;Param request_options must be a RequestOptions Object&#34;)
        self.__request_options = value

    @property
    def http_client(self):
        &#34;&#34;&#34;
        Sets the attribute value and validates http_client
        &#34;&#34;&#34;
        return self.__http_client

    @http_client.setter
    def http_client(self, value):
        if value is not None and not isinstance(value, HttpClient):
            raise ValueError(&#34;Param http_client must be a HttpClient Object&#34;)
        self.__http_client = value</code></pre>
</details>
<h3>Instance variables</h3>
<dl>
<dt id="mercadopago.SDK.http_client"><code class="name">var <span class="ident">http_client</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates http_client</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def http_client(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates http_client
    &#34;&#34;&#34;
    return self.__http_client</code></pre>
</details>
</dd>
<dt id="mercadopago.SDK.request_options"><code class="name">var <span class="ident">request_options</span></code></dt>
<dd>
<div class="desc"><p>Sets the attribute value and validates request_options</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def request_options(self):
    &#34;&#34;&#34;
    Sets the attribute value and validates request_options
    &#34;&#34;&#34;
    return self.__request_options</code></pre>
</details>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="mercadopago.SDK.advanced_payment"><code class="name flex">
<span>def <span class="ident">advanced_payment</span></span>(<span>self, request_options=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Returns the attribute value of the function</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def advanced_payment(self, request_options=None):
    &#34;&#34;&#34;
    Returns the attribute value of the function
    &#34;&#34;&#34;
    return AdvancedPayment(request_options is not None and request_options
                           or self.request_options, self.http_client)</code></pre>
</details>
</dd>
<dt id="mercadopago.SDK.card"><code class="name flex">
<span>def <span class="ident">card</span></span>(<span>self, request_options=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Returns the attribute value of the function</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def card(self, request_options=None):
    &#34;&#34;&#34;
    Returns the attribute value of the function
    &#34;&#34;&#34;
    return Card(request_options is not None and request_options
                or self.request_options, self.http_client)</code></pre>
</details>
</dd>
<dt id="mercadopago.SDK.card_token"><code class="name flex">
<span>def <span class="ident">card_token</span></span>(<span>self, request_options=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Returns the attribute value of the function</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def card_token(self, request_options=None):
    &#34;&#34;&#34;
    Returns the attribute value of the function
    &#34;&#34;&#34;
    return CardToken(request_options is not None and request_options
                     or self.request_options, self.http_client)</code></pre>
</details>
</dd>
<dt id="mercadopago.SDK.customer"><code class="name flex">
<span>def <span class="ident">customer</span></span>(<span>self, request_options=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Returns the attribute value of the function</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def customer(self, request_options=None):
    &#34;&#34;&#34;
    Returns the attribute value of the function
    &#34;&#34;&#34;
    return Customer(request_options is not None and request_options
                    or self.request_options, self.http_client)</code></pre>
</details>
</dd>
<dt id="mercadopago.SDK.disbursement_refund"><code class="name flex">
<span>def <span class="ident">disbursement_refund</span></span>(<span>self, request_options=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Returns the attribute value of the function</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def disbursement_refund(self, request_options=None):
    &#34;&#34;&#34;
    Returns the attribute value of the function
    &#34;&#34;&#34;
    return DisbursementRefund(request_options is not None and request_options
                              or self.request_options, self.http_client)</code></pre>
</details>
</dd>
<dt id="mercadopago.SDK.identification_type"><code class="name flex">
<span>def <span class="ident">identification_type</span></span>(<span>self, request_options=None)</span>
</code></dt>
<dd>
<div class="desc"><p>Returns the attribute value of the function</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def identification_type(self, request_options=None):
    &#34;&#3
Download .txt
gitextract_6mcqg6lx/

├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   ├── feature_request.yml
│   │   └── question.yml
│   └── workflows/
│       ├── cd.yml
│       └── ci.yml
├── .gitignore
├── .pre-commit-config.yaml
├── CODE_OF_CONDUCT.md
├── CODING_GUIDELINES.md
├── CONTRIBUTING.md
├── LICENSE
├── MANIFEST.in
├── README.md
├── SUPPORT.md
├── docs/
│   ├── config/
│   │   ├── config.html
│   │   ├── index.html
│   │   └── request_options.html
│   ├── core/
│   │   ├── index.html
│   │   └── mp_base.html
│   ├── http/
│   │   ├── http_client.html
│   │   └── index.html
│   ├── index.html
│   ├── resources/
│   │   ├── advanced_payment.html
│   │   ├── card.html
│   │   ├── card_token.html
│   │   ├── customer.html
│   │   ├── disbursement_refund.html
│   │   ├── identification_type.html
│   │   ├── index.html
│   │   ├── merchant_order.html
│   │   ├── payment.html
│   │   ├── payment_methods.html
│   │   ├── preapproval.html
│   │   ├── preference.html
│   │   ├── refund.html
│   │   └── user.html
│   └── sdk.html
├── mercadopago/
│   ├── __init__.py
│   ├── config/
│   │   ├── __init__.py
│   │   ├── config.py
│   │   └── request_options.py
│   ├── core/
│   │   ├── __init__.py
│   │   └── mp_base.py
│   ├── examples/
│   │   ├── order/
│   │   │   ├── cancel_order.py
│   │   │   ├── capture_order.py
│   │   │   ├── create_order.py
│   │   │   ├── create_transaction.py
│   │   │   ├── delete_transaction.py
│   │   │   ├── get_order.py
│   │   │   ├── process_order.py
│   │   │   ├── refund_partial.py
│   │   │   ├── refund_total.py
│   │   │   └── update_transaction.py
│   │   └── preference/
│   │       └── create_preference.py
│   ├── http/
│   │   ├── __init__.py
│   │   └── http_client.py
│   ├── resources/
│   │   ├── __init__.py
│   │   ├── advanced_payment.py
│   │   ├── card.py
│   │   ├── card_token.py
│   │   ├── chargeback.py
│   │   ├── customer.py
│   │   ├── disbursement_refund.py
│   │   ├── identification_type.py
│   │   ├── merchant_order.py
│   │   ├── order.py
│   │   ├── payment.py
│   │   ├── payment_methods.py
│   │   ├── plan.py
│   │   ├── preapproval.py
│   │   ├── preference.py
│   │   ├── refund.py
│   │   ├── subscription.py
│   │   └── user.py
│   └── sdk.py
├── pyproject.toml
├── setup.cfg
└── tests/
    ├── .pylintrc
    ├── __init__.py
    ├── test_advanced_payment.py
    ├── test_card.py
    ├── test_card_token.py
    ├── test_chargeback.py
    ├── test_customer.py
    ├── test_identification_type.py
    ├── test_merchant_order.py
    ├── test_order.py
    ├── test_payment.py
    ├── test_payment_methods.py
    ├── test_plan.py
    ├── test_preapproval.py
    ├── test_preference.py
    ├── test_subscription.py
    └── test_user.py
Download .txt
SYMBOL INDEX (217 symbols across 48 files)

FILE: mercadopago/config/config.py
  class Config (line 7) | class Config:
    method __init__ (line 12) | def __init__(self):
    method version (line 24) | def version(self):
    method user_agent (line 31) | def user_agent(self):
    method product_id (line 38) | def product_id(self):
    method tracking_id (line 45) | def tracking_id(self):
    method api_base_url (line 52) | def api_base_url(self):
    method mime_json (line 59) | def mime_json(self):
    method mime_form (line 66) | def mime_form(self):

FILE: mercadopago/config/request_options.py
  class RequestOptions (line 9) | class RequestOptions:  # pylint: disable=too-many-instance-attributes
    method __init__ (line 24) | def __init__(  # pylint: disable=too-many-positional-arguments
    method get_headers (line 75) | def get_headers(self):
    method access_token (line 101) | def access_token(self):
    method access_token (line 108) | def access_token(self, value):
    method connection_timeout (line 114) | def connection_timeout(self):
    method connection_timeout (line 121) | def connection_timeout(self, value):
    method corporation_id (line 127) | def corporation_id(self):
    method corporation_id (line 134) | def corporation_id(self, value):
    method custom_headers (line 140) | def custom_headers(self):
    method custom_headers (line 147) | def custom_headers(self, value):
    method integrator_id (line 153) | def integrator_id(self):
    method integrator_id (line 160) | def integrator_id(self, value):
    method max_retries (line 166) | def max_retries(self):
    method max_retries (line 173) | def max_retries(self, value):
    method platform_id (line 179) | def platform_id(self):
    method platform_id (line 186) | def platform_id(self, value):

FILE: mercadopago/core/mp_base.py
  class MPBase (line 10) | class MPBase:
    method __init__ (line 25) | def __init__(self, request_options, http_client):
    method __check_request_options (line 34) | def __check_request_options(self, request_options):
    method __check_headers (line 46) | def __check_headers(self, request_options, extra_headers=None):
    method _get (line 56) | def _get(self, uri, filters=None, request_options=None):
    method _post (line 72) | def _post(self, uri, data=None, params=None, request_options=None):
    method _put (line 89) | def _put(self, uri, data=None, params=None, request_options=None):
    method _delete (line 106) | def _delete(self, uri, params=None, request_options=None):
    method request_options (line 119) | def request_options(self):
    method config (line 126) | def config(self):

FILE: mercadopago/examples/order/cancel_order.py
  function main (line 6) | def main():

FILE: mercadopago/examples/order/capture_order.py
  function main (line 4) | def main():

FILE: mercadopago/examples/order/create_order.py
  function main (line 4) | def main():

FILE: mercadopago/examples/order/create_transaction.py
  function main (line 6) | def main():

FILE: mercadopago/examples/order/delete_transaction.py
  function main (line 6) | def main():

FILE: mercadopago/examples/order/get_order.py
  function main (line 4) | def main():

FILE: mercadopago/examples/order/process_order.py
  function main (line 4) | def main():

FILE: mercadopago/examples/order/refund_partial.py
  function main (line 6) | def main():

FILE: mercadopago/examples/order/refund_total.py
  function main (line 6) | def main():

FILE: mercadopago/examples/order/update_transaction.py
  function main (line 6) | def main():

FILE: mercadopago/examples/preference/create_preference.py
  function main (line 3) | def main():

FILE: mercadopago/http/http_client.py
  class HttpClient (line 10) | class HttpClient:
    method request (line 15) | def request(self, method, url, maxretries=None, **kwargs):
    method get (line 39) | def get(self, url, headers, params=None, timeout=None, maxretries=None...
    method post (line 51) | def post(self, url, headers, data=None, params=None, timeout=None, max...
    method put (line 64) | def put(self, url, headers, data=None, params=None, timeout=None, maxr...
    method delete (line 77) | def delete(self, url, headers, params=None, timeout=None, maxretries=N...

FILE: mercadopago/resources/advanced_payment.py
  class AdvancedPayment (line 9) | class AdvancedPayment(MPBase):
    method search (line 14) | def search(self, filters=None, request_options=None):
    method get (line 29) | def get(self, advanced_payment_id, request_options=None):
    method create (line 44) | def create(self, advanced_payment_object, request_options=None):
    method capture (line 66) | def capture(self, advanced_payment_id, request_options=None):
    method update (line 82) | def update(self, advanced_payment_id, advanced_payment_object, request...
    method cancel (line 105) | def cancel(self, advanced_payment_id, request_options=None):
    method update_release_date (line 121) | def update_release_date(self, advanced_payment_id, release_date, reque...

FILE: mercadopago/resources/card.py
  class Card (line 7) | class Card(MPBase):
    method list_all (line 21) | def list_all(self, customer_id, request_options=None):
    method get (line 38) | def get(self, customer_id, card_id, request_options=None):
    method create (line 56) | def create(self, customer_id, card_object, request_options=None):
    method update (line 78) | def update(self, customer_id, card_id, card_object, request_options=No...
    method delete (line 102) | def delete(self, customer_id, card_id, request_options=None):

FILE: mercadopago/resources/card_token.py
  class CardToken (line 7) | class CardToken(MPBase):
    method get (line 13) | def get(self, card_token_id, request_options=None):
    method create (line 26) | def create(self, card_token_object, request_options=None):

FILE: mercadopago/resources/chargeback.py
  class Chargeback (line 7) | class Chargeback(MPBase):
    method search (line 14) | def search(self, filters=None, request_options=None):
    method get (line 28) | def get(self, chargeback_id, request_options=None):

FILE: mercadopago/resources/customer.py
  class Customer (line 7) | class Customer(MPBase):
    method search (line 17) | def search(self, filters=None, request_options=None):
    method get (line 32) | def get(self, customer_id, request_options=None):
    method create (line 46) | def create(self, customer_object, request_options=None):
    method update (line 67) | def update(self, customer_id, customer_object, request_options=None):
    method delete (line 89) | def delete(self, customer_id, request_options=None):

FILE: mercadopago/resources/disbursement_refund.py
  class DisbursementRefund (line 7) | class DisbursementRefund(MPBase):
    method list_all (line 13) | def list_all(self, advanced_payment_id, request_options=None):
    method create_all (line 26) | def create_all(self, advanced_payment_id, disbursement_refund_object, ...
    method create (line 50) | def create(self, advanced_payment_id, disbursement_id, amount, request...
    method save (line 81) | def save(self, advanced_payment_id, disbursement_id, disbursement_refu...

FILE: mercadopago/resources/identification_type.py
  class IdentificationType (line 7) | class IdentificationType(MPBase):
    method list_all (line 12) | def list_all(self, request_options=None):
    method request_options (line 26) | def request_options(self):

FILE: mercadopago/resources/merchant_order.py
  class MerchantOrder (line 7) | class MerchantOrder(MPBase):
    method search (line 13) | def search(self, filters=None, request_options=None):
    method get (line 28) | def get(self, merchan_order_id, request_options=None):
    method update (line 41) | def update(self, merchan_order_id, merchant_order_object, request_opti...
    method create (line 64) | def create(self, merchant_order_object, request_options=None):

FILE: mercadopago/resources/order.py
  class Order (line 6) | class Order(MPBase):
    method search (line 16) | def search(self, filters=None, request_options=None):
    method create (line 31) | def create(self, order_object, request_options=None):
    method get (line 51) | def get(self, order_id, request_options=None):
    method process (line 72) | def process(self, order_id, request_options=None):
    method cancel (line 91) | def cancel(self, order_id, request_options=None):
    method capture (line 110) | def capture(self, order_id, request_options=None):
    method create_transaction (line 128) | def create_transaction(self, order_id, transaction_object, request_opt...
    method update_transaction (line 153) | def update_transaction(self, order_id, transaction_id, transaction_obj...
    method refund_transaction (line 179) | def refund_transaction(self, order_id, transaction_object=None, reques...
    method delete_transaction (line 201) | def delete_transaction(self, order_id, transaction_id, request_options...

FILE: mercadopago/resources/payment.py
  class Payment (line 7) | class Payment(MPBase):
    method search (line 17) | def search(self, filters=None, request_options=None):
    method get (line 31) | def get(self, payment_id, request_options=None):
    method create (line 45) | def create(self, payment_object, request_options=None):
    method update (line 65) | def update(self, payment_id, payment_object, request_options=None):

FILE: mercadopago/resources/payment_methods.py
  class PaymentMethods (line 7) | class PaymentMethods(MPBase):
    method list_all (line 12) | def list_all(self, request_options=None):
    method request_options (line 26) | def request_options(self):

FILE: mercadopago/resources/plan.py
  class Plan (line 7) | class Plan(MPBase):
    method search (line 15) | def search(self, filters=None, request_options=None):
    method get (line 31) | def get(self, plan_id, request_options=None):
    method create (line 47) | def create(self, plan_object, request_options=None):
    method update (line 70) | def update(self, plan_id, plan_object, request_options=None):

FILE: mercadopago/resources/preapproval.py
  class PreApproval (line 7) | class PreApproval(MPBase):
    method __init__ (line 17) | def __init__(self, request_options, http_client):
    method search (line 20) | def search(self, filters=None, request_options=None):
    method get (line 32) | def get(self, preapproval_id, request_options=None):
    method create (line 44) | def create(self, preapproval_object, request_options=None):
    method update (line 65) | def update(self, preapproval_id, preapproval_object, request_options=N...

FILE: mercadopago/resources/preference.py
  class Preference (line 7) | class Preference(MPBase):
    method get (line 15) | def get(self, preference_id, request_options=None):
    method update (line 30) | def update(self, preference_id, preference_object, request_options=None):
    method create (line 52) | def create(self, preference_object, request_options=None):
    method search (line 72) | def search(self, filters=None, request_options=None):

FILE: mercadopago/resources/refund.py
  class Refund (line 7) | class Refund(MPBase):
    method list_all (line 19) | def list_all(self, payment_id, request_options=None):
    method create (line 32) | def create(self, payment_id, refund_object=None, request_options=None):

FILE: mercadopago/resources/subscription.py
  class Subscription (line 7) | class Subscription(MPBase):
    method search (line 15) | def search(self, filters=None, request_options=None):
    method get (line 31) | def get(self, subscription_id, request_options=None):
    method create (line 47) | def create(self, subscription_object, request_options=None):
    method update (line 70) | def update(self, subscription_id, subscription_object, request_options...

FILE: mercadopago/resources/user.py
  class User (line 7) | class User(MPBase):
    method get (line 12) | def get(self, request_options=None):
    method request_options (line 24) | def request_options(self):

FILE: mercadopago/sdk.py
  class SDK (line 27) | class SDK:
    method __init__ (line 49) | def __init__(
    method advanced_payment (line 77) | def advanced_payment(self, request_options=None):
    method card_token (line 84) | def card_token(self, request_options=None):
    method card (line 91) | def card(self, request_options=None):
    method customer (line 98) | def customer(self, request_options=None):
    method disbursement_refund (line 105) | def disbursement_refund(self, request_options=None):
    method identification_type (line 112) | def identification_type(self, request_options=None):
    method merchant_order (line 119) | def merchant_order(self, request_options=None):
    method order (line 126) | def order(self, request_options=None):
    method payment (line 133) | def payment(self, request_options=None):
    method payment_methods (line 140) | def payment_methods(self, request_options=None):
    method preapproval (line 147) | def preapproval(self, request_options=None):
    method preference (line 154) | def preference(self, request_options=None):
    method refund (line 161) | def refund(self, request_options=None):
    method user (line 168) | def user(self, request_options=None):
    method chargeback (line 175) | def chargeback(self, request_options=None):
    method subscription (line 182) | def subscription(self, request_options=None):
    method plan (line 189) | def plan(self, request_options=None):
    method request_options (line 197) | def request_options(self):
    method request_options (line 204) | def request_options(self, value):
    method http_client (line 211) | def http_client(self):
    method http_client (line 218) | def http_client(self, value):

FILE: tests/test_advanced_payment.py
  class TestAdvancedPayment (line 14) | class TestAdvancedPayment(unittest.TestCase):
    method test_all (line 21) | def test_all(self):

FILE: tests/test_card.py
  class TestCard (line 11) | class TestCard(unittest.TestCase):
    method setUpClass (line 20) | def setUpClass(cls):
    method tearDownClass (line 25) | def tearDownClass(cls):
    method test_all (line 28) | def test_all(self):
    method create_customer (line 61) | def create_customer(cls):
    method delete_customer (line 81) | def delete_customer(cls):

FILE: tests/test_card_token.py
  class TestCardToken (line 10) | class TestCardToken(unittest.TestCase):
    method test_all (line 16) | def test_all(self):

FILE: tests/test_chargeback.py
  class TestChargeback (line 9) | class TestChargeback(unittest.TestCase):
    method test_search_chargeback (line 15) | def test_search_chargeback(self):

FILE: tests/test_customer.py
  class TestCustomer (line 10) | class TestCustomer(unittest.TestCase):
    method test_all (line 16) | def test_all(self):

FILE: tests/test_identification_type.py
  class TestIdentificationType (line 9) | class TestIdentificationType(unittest.TestCase):
    method test_find_all (line 15) | def test_find_all(self):

FILE: tests/test_merchant_order.py
  class TestMerchantOrder (line 10) | class TestMerchantOrder(unittest.TestCase):
    method test_all (line 16) | def test_all(self):

FILE: tests/test_order.py
  class TestOrder (line 13) | class TestOrder(unittest.TestCase):
    method create_master_test_card (line 19) | def create_master_test_card(self, status="APRO"):
    method create_visa_test_card (line 30) | def create_visa_test_card(self, status="APRO"):
    method create_order_canceled_or_captured (line 41) | def create_order_canceled_or_captured(self, card_token_id):
    method create_order_builder_mode (line 71) | def create_order_builder_mode(self):
    method create_order_oneshot_mode_complete (line 87) | def create_order_oneshot_mode_complete(self, card_token_id):
    method create_order_builder_mode_complete (line 119) | def create_order_builder_mode_complete(self, card_token_id):
    method test_create_order_and_get_by_id (line 151) | def test_create_order_and_get_by_id(self):
    method test_process_order (line 186) | def test_process_order(self):
    method test_cancel_order (line 220) | def test_cancel_order(self):
    method test_capture_order (line 228) | def test_capture_order(self):
    method test_create_transaction (line 235) | def test_create_transaction(self):
    method test_update_transaction (line 255) | def test_update_transaction(self):
    method test_partial_refund_transaction (line 275) | def test_partial_refund_transaction(self):
    method test_refund_transaction (line 297) | def test_refund_transaction(self):
    method test_delete_transaction (line 307) | def test_delete_transaction(self):
    method test_search_order (line 317) | def test_search_order(self):

FILE: tests/test_payment.py
  class TestPayment (line 10) | class TestPayment(unittest.TestCase):
    method test_create_and_find (line 16) | def test_create_and_find(self):

FILE: tests/test_payment_methods.py
  class TestPaymentMethods (line 9) | class TestPaymentMethods(unittest.TestCase):
    method test_find (line 15) | def test_find(self):

FILE: tests/test_plan.py
  class TestPlan (line 10) | class TestPlan(unittest.TestCase):
    method test_all (line 17) | def test_all(self):

FILE: tests/test_preapproval.py
  class TestPreApproval (line 9) | class TestPreApproval(unittest.TestCase):
    method test_create (line 15) | def test_create(self):

FILE: tests/test_preference.py
  class TestPreference (line 10) | class TestPreference(unittest.TestCase):
    method test_all (line 16) | def test_all(self):

FILE: tests/test_subscription.py
  class TestSubscription (line 11) | class TestSubscription(unittest.TestCase):
    method setUpClass (line 21) | def setUpClass(cls):
    method tearDownClass (line 31) | def tearDownClass(cls):
    method test_all (line 34) | def test_all(self):
    method test_create_subscriptions_without_a_plan (line 87) | def test_create_subscriptions_without_a_plan(self):
    method create_card_token (line 124) | def create_card_token(cls):
    method create_customer (line 140) | def create_customer(cls):
    method delete_customer (line 160) | def delete_customer(cls):
    method create_plan (line 164) | def create_plan(cls):

FILE: tests/test_user.py
  class TestUser (line 9) | class TestUser(unittest.TestCase):
    method test_find_user (line 12) | def test_find_user(self):
Condensed preview — 95 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (881K chars).
[
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 4918,
    "preview": "name: 🐛 Bug Report\ndescription: Report a bug or unexpected behavior in the SDK\ntitle: \"[BUG]: \"\nlabels: [\"bug\", \"needs-t"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 390,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: Support Center Mercado Pago - ES\n    url: https://www.mercadopago.c"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "chars": 2712,
    "preview": "name: ✨ Feature Request\ndescription: Propose a new feature for the Mercado Pago SDK\ntitle: \"[FEATURE]: \"\nlabels: [\"enhan"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/question.yml",
    "chars": 2929,
    "preview": "name: 💬 Question\ndescription: Ask a question about the Mercado Pago SDK\ntitle: \"[QUESTION]: \"\nlabels: [\"question\", \"need"
  },
  {
    "path": ".github/workflows/cd.yml",
    "chars": 864,
    "preview": "# This workflow will install Python dependencies and upload a version in the PyPI\nname: CD - Upload PyPI\n\non:\n  release:"
  },
  {
    "path": ".github/workflows/ci.yml",
    "chars": 1135,
    "preview": "# This workflow will install Python dependencies, run tests and lint with a variety of Python versions\n# For more inform"
  },
  {
    "path": ".gitignore",
    "chars": 378,
    "preview": "*.py[cod]\n*.pyc\n.DS_Store\n.idea\nvenv\n\n# C extensions\n*.so\n\n# Packages\n*.egg\n*.egg-info\ndist\nbuild\neggs\nparts\nbin\nvar\nsdi"
  },
  {
    "path": ".pre-commit-config.yaml",
    "chars": 419,
    "preview": "repos:\n  - repo: https://github.com/melisource/fury_websec-git-hooks\n    rev: v2.0.0\n    hooks:\n      - id: pre_commit_h"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3142,
    "preview": "# Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and"
  },
  {
    "path": "CODING_GUIDELINES.md",
    "chars": 4881,
    "preview": "# Coding Guidelines\n\nThe Mercado Pago Python SDK is a collaborative effort from the start. The SDK team thinks that cont"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 4775,
    "preview": "# Contributing to the Mercado Pago Python SDK\n\nThank you for your interest in contributing to the Mercado Pago Python SD"
  },
  {
    "path": "LICENSE",
    "chars": 1078,
    "preview": "MIT License\n\nCopyright (c) 2021 MercadoPago Developers\n\nPermission is hereby granted, free of charge, to any person obta"
  },
  {
    "path": "MANIFEST.in",
    "chars": 34,
    "preview": "include README.rst\ninclude LICENSE"
  },
  {
    "path": "README.md",
    "chars": 3183,
    "preview": "# Mercado Pago SDK for Python\n\n[![PyPI](https://img.shields.io/pypi/v/mercadopago.svg)](https://pypi.python.org/pypi/mer"
  },
  {
    "path": "SUPPORT.md",
    "chars": 4452,
    "preview": "# 🆘 Support and Help\n\n> **Quick guide:** Have a bug? → [Bug Report](../../issues/new/choose) | Questions? → [Question](."
  },
  {
    "path": "docs/config/config.html",
    "chars": 14983,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/config/index.html",
    "chars": 29238,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/config/request_options.html",
    "chars": 28726,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/core/index.html",
    "chars": 16301,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/core/mp_base.html",
    "chars": 20521,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/http/http_client.html",
    "chars": 17218,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/http/index.html",
    "chars": 14962,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/index.html",
    "chars": 27383,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/resources/advanced_payment.html",
    "chars": 38263,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/resources/card.html",
    "chars": 29055,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/resources/card_token.html",
    "chars": 14824,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/resources/customer.html",
    "chars": 27451,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/resources/disbursement_refund.html",
    "chars": 24425,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/resources/identification_type.html",
    "chars": 11753,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/resources/index.html",
    "chars": 183827,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/resources/merchant_order.html",
    "chars": 24705,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/resources/payment.html",
    "chars": 23901,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/resources/payment_methods.html",
    "chars": 11567,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/resources/preapproval.html",
    "chars": 22958,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/resources/preference.html",
    "chars": 21313,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/resources/refund.html",
    "chars": 16231,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/resources/user.html",
    "chars": 10558,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "docs/sdk.html",
    "chars": 32609,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initia"
  },
  {
    "path": "mercadopago/__init__.py",
    "chars": 99,
    "preview": "\"\"\"\nModule: mercadopago/__init__.py\n\"\"\"\nfrom mercadopago.sdk import SDK\n\n\n__all__ = (\n    'SDK',\n)\n"
  },
  {
    "path": "mercadopago/config/__init__.py",
    "chars": 194,
    "preview": "\"\"\"\nModule: config/__init__.py\n\"\"\"\nfrom mercadopago.config.config import Config\nfrom mercadopago.config.request_options "
  },
  {
    "path": "mercadopago/config/config.py",
    "chars": 1571,
    "preview": "\"\"\"\nModule: config\n\"\"\"\nimport platform\n\n\nclass Config:\n    \"\"\"\n    General infos of your SDK\n    \"\"\"\n\n    def __init__(s"
  },
  {
    "path": "mercadopago/config/request_options.py",
    "chars": 6207,
    "preview": "\"\"\"\nModule: request_options\n\"\"\"\nimport uuid\n\nfrom .config import Config\n\n\nclass RequestOptions:  # pylint: disable=too-m"
  },
  {
    "path": "mercadopago/core/__init__.py",
    "chars": 107,
    "preview": "\"\"\"\nModule: core/__init__.py\n\"\"\"\nfrom mercadopago.core.mp_base import MPBase\n\n\n__all__ = (\n    'MPBase',\n)\n"
  },
  {
    "path": "mercadopago/core/mp_base.py",
    "chars": 4588,
    "preview": "\"\"\"\nModule: mp_base\n\"\"\"\nfrom json.encoder import JSONEncoder\n\nfrom mercadopago.config.config import Config\nfrom mercadop"
  },
  {
    "path": "mercadopago/examples/order/cancel_order.py",
    "chars": 1878,
    "preview": "import os\nimport time\n\nfrom mercadopago import SDK\n\ndef main():\n    # Define the authentication token\n    access_token ="
  },
  {
    "path": "mercadopago/examples/order/capture_order.py",
    "chars": 1903,
    "preview": "import os\nfrom mercadopago import SDK\n\ndef main():\n    # Define the authentication token\n    access_token = \"<YOUR_ACCES"
  },
  {
    "path": "mercadopago/examples/order/create_order.py",
    "chars": 1538,
    "preview": "from mercadopago import SDK\n\n\ndef main():\n   # Define the authentication token\n    access_token = \"<YOUR_ACCESS_TOKEN>\"\n"
  },
  {
    "path": "mercadopago/examples/order/create_transaction.py",
    "chars": 1901,
    "preview": "import os\nimport time\n\nfrom mercadopago import SDK\n\ndef main():\n    # Define the authentication token\n    access_token ="
  },
  {
    "path": "mercadopago/examples/order/delete_transaction.py",
    "chars": 1989,
    "preview": "import os\nimport time\n\nfrom mercadopago import SDK\n\ndef main():\n    # Define the authentication token\n    access_token ="
  },
  {
    "path": "mercadopago/examples/order/get_order.py",
    "chars": 1782,
    "preview": "import os\nfrom mercadopago import SDK\n\ndef main():\n    # Define the authentication token\n    access_token = \"<YOUR_ACCES"
  },
  {
    "path": "mercadopago/examples/order/process_order.py",
    "chars": 1927,
    "preview": "import os\nfrom mercadopago import SDK\n\ndef main():\n    # Define the authentication token\n    access_token = \"<YOUR_ACCES"
  },
  {
    "path": "mercadopago/examples/order/refund_partial.py",
    "chars": 2078,
    "preview": "import os\nimport time\n\nfrom mercadopago import SDK\n\ndef main():\n    # Define the authentication token\n    access_token ="
  },
  {
    "path": "mercadopago/examples/order/refund_total.py",
    "chars": 1894,
    "preview": "import os\nimport time\n\nfrom mercadopago import SDK\n\ndef main():\n    # Define the authentication token\n    access_token ="
  },
  {
    "path": "mercadopago/examples/order/update_transaction.py",
    "chars": 2131,
    "preview": "import os\nimport time\n\nfrom mercadopago import SDK\n\ndef main():\n    # Define the authentication token\n    access_token ="
  },
  {
    "path": "mercadopago/examples/preference/create_preference.py",
    "chars": 697,
    "preview": "from mercadopago.sdk import SDK\n\ndef main():\n    # Define the authentication token\n    access_token = \"<YOUR_ACCESS_TOKE"
  },
  {
    "path": "mercadopago/http/__init__.py",
    "chars": 119,
    "preview": "\"\"\"\nModule: http/__init__.py\n\"\"\"\nfrom mercadopago.http.http_client import HttpClient\n\n\n__all__ = (\n    'HttpClient',\n)\n"
  },
  {
    "path": "mercadopago/http/http_client.py",
    "chars": 2880,
    "preview": "\"\"\"\nModule: http_client\n\"\"\"\n# pylint: disable=too-many-arguments\nimport requests\nfrom requests.adapters import HTTPAdapt"
  },
  {
    "path": "mercadopago/resources/__init__.py",
    "chars": 1466,
    "preview": "\"\"\"\nModule: resources/__init__.py\n\"\"\"\nfrom mercadopago.config.request_options import RequestOptions\nfrom mercadopago.htt"
  },
  {
    "path": "mercadopago/resources/advanced_payment.py",
    "chars": 6712,
    "preview": "\"\"\"\n    Module: advanced_payment\n\"\"\"\nfrom datetime import datetime\n\nfrom mercadopago.core import MPBase\n\n\nclass Advanced"
  },
  {
    "path": "mercadopago/resources/card.py",
    "chars": 4984,
    "preview": "\"\"\"\n    Module: card\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass Card(MPBase):\n    \"\"\"\n    The cards class is the wa"
  },
  {
    "path": "mercadopago/resources/card_token.py",
    "chars": 1577,
    "preview": "\"\"\"\n    Module: card_token\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass CardToken(MPBase):\n    \"\"\"\n    This class wil"
  },
  {
    "path": "mercadopago/resources/chargeback.py",
    "chars": 1635,
    "preview": "\"\"\"\n    Module: chargeback\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass Chargeback(MPBase):\n    \"\"\"\n    Access to Cha"
  },
  {
    "path": "mercadopago/resources/customer.py",
    "chars": 4354,
    "preview": "\"\"\"\n    Module: customer\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass Customer(MPBase):\n    \"\"\"\n    This class allows"
  },
  {
    "path": "mercadopago/resources/disbursement_refund.py",
    "chars": 4049,
    "preview": "\"\"\"\n    Module: disbursement_refund\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass DisbursementRefund(MPBase):\n\n    \"\"\""
  },
  {
    "path": "mercadopago/resources/identification_type.py",
    "chars": 944,
    "preview": "\"\"\"\n    Module: identification_type\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass IdentificationType(MPBase):\n    \"\"\"\n"
  },
  {
    "path": "mercadopago/resources/merchant_order.py",
    "chars": 3730,
    "preview": "\"\"\"\n    Module: merchant_order\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass MerchantOrder(MPBase):\n    \"\"\"\n    This c"
  },
  {
    "path": "mercadopago/resources/order.py",
    "chars": 11164,
    "preview": "\"\"\"\n    Module: order\n\"\"\"\nfrom mercadopago.core import MPBase\n\nclass Order(MPBase):\n    \"\"\"\n    This class provides the "
  },
  {
    "path": "mercadopago/resources/payment.py",
    "chars": 3614,
    "preview": "\"\"\"\n    Module: payment\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass Payment(MPBase):\n    \"\"\"\n    This class provides"
  },
  {
    "path": "mercadopago/resources/payment_methods.py",
    "chars": 908,
    "preview": "\"\"\"\n    Module: payment_methods\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass PaymentMethods(MPBase):\n    \"\"\"\n    Acce"
  },
  {
    "path": "mercadopago/resources/plan.py",
    "chars": 3679,
    "preview": "\"\"\"\n    Module: plan\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass Plan(MPBase):\n    \"\"\"\n    This class provides the m"
  },
  {
    "path": "mercadopago/resources/preapproval.py",
    "chars": 3425,
    "preview": "\"\"\"\n    Module: preapproval\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass PreApproval(MPBase):\n    \"\"\"\n    This class "
  },
  {
    "path": "mercadopago/resources/preference.py",
    "chars": 3816,
    "preview": "\"\"\"\n    Module: preference\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass Preference(MPBase):\n    \"\"\"\n    This class wi"
  },
  {
    "path": "mercadopago/resources/refund.py",
    "chars": 2012,
    "preview": "\"\"\"\n    Module: refund\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass Refund(MPBase):\n    \"\"\"\n    This class will allow"
  },
  {
    "path": "mercadopago/resources/subscription.py",
    "chars": 3777,
    "preview": "\"\"\"\n    Module: subscriptions\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass Subscription(MPBase):\n    \"\"\"\n    This cla"
  },
  {
    "path": "mercadopago/resources/user.py",
    "chars": 691,
    "preview": "\"\"\"\n    Module: user\n\"\"\"\nfrom mercadopago.core import MPBase\n\n\nclass User(MPBase):\n    \"\"\"\n    Access to Users\n    \"\"\"\n\n"
  },
  {
    "path": "mercadopago/sdk.py",
    "chars": 7384,
    "preview": "\"\"\"\nModule: sdk\n\"\"\"\nfrom mercadopago.config import RequestOptions\nfrom mercadopago.http import HttpClient\nfrom mercadopa"
  },
  {
    "path": "pyproject.toml",
    "chars": 1221,
    "preview": "[build-system]\nrequires = [\"setuptools >= 61.0\"]\nbuild-backend = \"setuptools.build_meta\"\n\n[project]\nname = \"mercadopago\""
  },
  {
    "path": "setup.cfg",
    "chars": 609,
    "preview": "[pylint.MASTER]\npy-version = 3.7\n\n[pylint.FORMAT]\nmax-line-length = 100\n\n[isort]\n# Vertical Hanging Indent\nmulti_line_ou"
  },
  {
    "path": "tests/.pylintrc",
    "chars": 94,
    "preview": "[FORMAT]\nmax-line-length = 100\n\n[MESSAGES CONTROL]\ndisable = missing-docstring,duplicate-code\n"
  },
  {
    "path": "tests/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/test_advanced_payment.py",
    "chars": 3974,
    "preview": "\"\"\"\n    Module: test_advanced_payment\n\"\"\"\nfrom datetime import (\n    datetime,\n    timedelta,\n)\nimport os\nimport unittes"
  },
  {
    "path": "tests/test_card.py",
    "chars": 2294,
    "preview": "\"\"\"\n    Module: test_card\n\"\"\"\nfrom datetime import datetime\nimport os\nimport random\nimport unittest\nimport mercadopago\n\n"
  },
  {
    "path": "tests/test_card_token.py",
    "chars": 1045,
    "preview": "\"\"\"\n    Module: test_card_token\n\"\"\"\nfrom datetime import datetime\nimport os\nimport unittest\nimport mercadopago\n\n\nclass T"
  },
  {
    "path": "tests/test_chargeback.py",
    "chars": 576,
    "preview": "\"\"\"\n    Module: test_chargeback\n\"\"\"\nimport os\nimport unittest\nimport mercadopago\n\n\nclass TestChargeback(unittest.TestCas"
  },
  {
    "path": "tests/test_customer.py",
    "chars": 1490,
    "preview": "\"\"\"\n    Module: test_customer\n\"\"\"\nimport os\nimport random\nimport unittest\nimport mercadopago\n\n\nclass TestCustomer(unitte"
  },
  {
    "path": "tests/test_identification_type.py",
    "chars": 519,
    "preview": "\"\"\"\n    Module: test_identification_type\n\"\"\"\nimport os\nimport unittest\nimport mercadopago\n\n\nclass TestIdentificationType"
  },
  {
    "path": "tests/test_merchant_order.py",
    "chars": 2200,
    "preview": "\"\"\"\n    Module: test_merchant_order\n\"\"\"\nimport os\nimport unittest\nimport uuid\nimport mercadopago\n\n\nclass TestMerchantOrd"
  },
  {
    "path": "tests/test_order.py",
    "chars": 12191,
    "preview": "\"\"\"\n    Module: test_order\n\"\"\"\nimport os\nimport time\nimport unittest\nimport random\nfrom time import sleep\n\nimport mercad"
  },
  {
    "path": "tests/test_payment.py",
    "chars": 3484,
    "preview": "\"\"\"\n    Module: test_payment\n\"\"\"\nfrom datetime import datetime\nimport os\nimport unittest\nimport mercadopago\n\n\nclass Test"
  },
  {
    "path": "tests/test_payment_methods.py",
    "chars": 453,
    "preview": "\"\"\"\n    Module: test_payment_methods\n\"\"\"\nimport os\nimport unittest\nimport mercadopago\n\n\nclass TestPaymentMethods(unittes"
  },
  {
    "path": "tests/test_plan.py",
    "chars": 2981,
    "preview": "\"\"\"\n    Module: test_plan\n\"\"\"\nimport os\nimport unittest\nimport random\nimport mercadopago\n\n\nclass TestPlan(unittest.TestC"
  },
  {
    "path": "tests/test_preapproval.py",
    "chars": 357,
    "preview": "\"\"\"\n    Module: test_preapproval\n\"\"\"\nimport os\nimport unittest\nimport mercadopago\n\n\nclass TestPreApproval(unittest.TestC"
  },
  {
    "path": "tests/test_preference.py",
    "chars": 1650,
    "preview": "\"\"\"\n    Module: test_preference\n\"\"\"\nimport os\nimport unittest\nimport time\nimport mercadopago\n\n\nclass TestPreference(unit"
  },
  {
    "path": "tests/test_subscription.py",
    "chars": 6429,
    "preview": "\"\"\"\n    Module: test_plan\n\"\"\"\nfrom datetime import datetime\nimport os\nimport unittest\nimport random\nimport mercadopago\n\n"
  },
  {
    "path": "tests/test_user.py",
    "chars": 309,
    "preview": "\"\"\"\n    Module: test_user\n\"\"\"\nimport os\nimport unittest\nimport mercadopago\n\n\nclass TestUser(unittest.TestCase):\n    sdk "
  }
]

About this extraction

This page contains the full source code of the mercadopago/sdk-python GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 95 files (825.5 KB), approximately 218.5k tokens, and a symbol index with 217 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!