Skip to content

Anúncios

bling_erp_api.resources.ads.AdsResource

AdsResource(transport: Transport)

Bases: BaseResource

Operações de anúncios do Bling.

Este recurso mapeia os endpoints /anuncios. Os métodos canônicos usam português para acompanhar a documentação oficial; os métodos em inglês continuam disponíveis como aliases de compatibilidade.

Source code in src/bling_erp_api/resources/base.py
def __init__(self, transport: Transport) -> None:
    """Create a resource bound to a transport."""
    self._transport = transport

listar

listar(
    *,
    pagina: int = 1,
    limite: int = 100,
    situacao: int | None = None,
    id_produto: int | None = None,
    tipo_integracao: str,
    id_loja: int,
) -> AnunciosGetResponse200

Lista anúncios.

Endpoint: GET /anuncios

Obtém lista paginada de anúncios.

Parameters:

Name Type Description Default
pagina int

N° da página (Bling: pagina, integer, opcional)

1
limite int

Registros por página (Bling: limite, integer, opcional)

100
situacao int | None

Situação do anúncio: 1=Publicado, 2=Rascunho, 3=Com problema, 4=Pausado (Bling: situacao, integer, opcional)

None
id_produto int | None

ID do produto (Bling: idProduto, integer, opcional)

None
tipo_integracao str

Tipo de integração (Bling: tipoIntegracao, string, obrigatório)

required
id_loja int

ID da loja (Bling: idLoja, integer, obrigatório)

required

Returns:

Type Description
AnunciosGetResponse200

Bling API response. Response schemas: 200: AnunciosGetAllResponseDTO; 400: ErrorResponse

Source code in src/bling_erp_api/resources/ads.py
def listar(  # noqa: PLR0913
    self,
    *,
    pagina: int = 1,
    limite: int = 100,
    situacao: int | None = None,
    id_produto: int | None = None,
    tipo_integracao: str,
    id_loja: int,
) -> AnunciosGetResponse200:
    """Lista anúncios.

    Endpoint: GET /anuncios

    Obtém lista paginada de anúncios.

    Args:
        pagina: N° da página (Bling: ``pagina``, integer, opcional)
        limite: Registros por página (Bling: ``limite``, integer, opcional)
        situacao: Situação do anúncio: 1=Publicado, 2=Rascunho, 3=Com problema, 4=Pausado (Bling: ``situacao``, integer, opcional)
        id_produto: ID do produto (Bling: ``idProduto``, integer, opcional)
        tipo_integracao: Tipo de integração (Bling: ``tipoIntegracao``, string, obrigatório)
        id_loja: ID da loja (Bling: ``idLoja``, integer, obrigatório)

    Returns:
        Bling API response. Response schemas: 200: AnunciosGetAllResponseDTO; 400: ErrorResponse
    """
    params: QueryParams = {
        "pagina": pagina,
        "limite": limite,
        **_ads_list_params(
            situacao=situacao,
            id_produto=id_produto,
            tipo_integracao=tipo_integracao,
            id_loja=id_loja,
        ),
    }
    raw = self._get("/anuncios", params=params)
    return self._validate_response(AnunciosGetResponse200, raw)

iterar

iterar(
    *,
    pagina: int = 1,
    limite: int = 100,
    situacao: int | None = None,
    id_produto: int | None = None,
    tipo_integracao: str,
    id_loja: int,
) -> Iterator[JsonObject]

Itera pelos anúncios página a página.

Endpoint: GET /anuncios (via paginação automática)

Aceita os mesmos filtros de listar() e busca novas páginas enquanto o Bling retornar registros no envelope data.

Parameters:

Name Type Description Default
pagina int

N° da página (Bling: pagina, integer, opcional)

1
limite int

Registros por página (Bling: limite, integer, opcional)

100
situacao int | None

Situação do anúncio (Bling: situacao, integer, opcional)

None
id_produto int | None

ID do produto (Bling: idProduto, integer, opcional)

None
tipo_integracao str

Tipo de integração (Bling: tipoIntegracao, string, obrigatório)

required
id_loja int

ID da loja (Bling: idLoja, integer, obrigatório)

required

Returns:

Type Description
Iterator[JsonObject]

Iterator sobre os itens da resposta.

Source code in src/bling_erp_api/resources/ads.py
def iterar(  # noqa: PLR0913
    self,
    *,
    pagina: int = 1,
    limite: int = 100,
    situacao: int | None = None,
    id_produto: int | None = None,
    tipo_integracao: str,
    id_loja: int,
) -> Iterator[JsonObject]:
    """Itera pelos anúncios página a página.

    Endpoint: GET /anuncios (via paginação automática)

    Aceita os mesmos filtros de ``listar()`` e busca novas páginas enquanto
    o Bling retornar registros no envelope ``data``.

    Args:
        pagina: N° da página (Bling: ``pagina``, integer, opcional)
        limite: Registros por página (Bling: ``limite``, integer, opcional)
        situacao: Situação do anúncio (Bling: ``situacao``, integer, opcional)
        id_produto: ID do produto (Bling: ``idProduto``, integer, opcional)
        tipo_integracao: Tipo de integração (Bling: ``tipoIntegracao``, string, obrigatório)
        id_loja: ID da loja (Bling: ``idLoja``, integer, obrigatório)

    Returns:
        Iterator sobre os itens da resposta.
    """
    params = _ads_list_params(
        situacao=situacao,
        id_produto=id_produto,
        tipo_integracao=tipo_integracao,
        id_loja=id_loja,
    )
    return self._iterate("/anuncios", page=pagina, limit=limite, params=params)

obter

obter(
    id_anuncio: int, *, tipo_integracao: str, id_loja: int
) -> AnunciosIdAnuncioGetResponse200

Obtém um anúncio.

Endpoint: GET /anuncios/{idAnuncio}

Obtém os detalhes de um anúncio específico pelo ID.

Parameters:

Name Type Description Default
id_anuncio int

ID do anúncio (Bling: idAnuncio, integer, obrigatório)

required
tipo_integracao str

Tipo de integração (Bling: tipoIntegracao, string, obrigatório)

required
id_loja int

ID da loja (Bling: idLoja, integer, obrigatório)

required

Returns:

Type Description
AnunciosIdAnuncioGetResponse200

Bling API response. Response schemas: 200: AnunciosGetByIdResponseDTO; 400: ErrorResponse; 404: ErrorResponse

Source code in src/bling_erp_api/resources/ads.py
def obter(
    self, id_anuncio: int, *, tipo_integracao: str, id_loja: int
) -> AnunciosIdAnuncioGetResponse200:
    """Obtém um anúncio.

    Endpoint: GET /anuncios/{idAnuncio}

    Obtém os detalhes de um anúncio específico pelo ID.

    Args:
        id_anuncio: ID do anúncio (Bling: ``idAnuncio``, integer, obrigatório)
        tipo_integracao: Tipo de integração (Bling: ``tipoIntegracao``, string, obrigatório)
        id_loja: ID da loja (Bling: ``idLoja``, integer, obrigatório)

    Returns:
        Bling API response. Response schemas: 200: AnunciosGetByIdResponseDTO; 400: ErrorResponse; 404: ErrorResponse
    """
    params = compact_params(
        {
            "tipoIntegracao": tipo_integracao,
            "idLoja": id_loja,
        }
    )
    raw = self._get(f"/anuncios/{id_anuncio}", params=params)
    return self._validate_response(AnunciosIdAnuncioGetResponse200, raw)

criar

criar(dados: AnunciosSaveRequest) -> AnunciosPostResponse201

Cria um anúncio.

Endpoint: POST /anuncios

Cria um novo anúncio.

Parameters:

Name Type Description Default
dados AnunciosSaveRequest

Dados do anúncio. Request body schema: AnunciosSaveRequest

required

Returns:

Type Description
AnunciosPostResponse201

Bling API response. Response schemas: 201: AnunciosSaveResponseDTO; 400: ErrorResponse

Source code in src/bling_erp_api/resources/ads.py
def criar(
    self,
    dados: AnunciosSaveRequest,
) -> AnunciosPostResponse201:
    """Cria um anúncio.

    Endpoint: POST /anuncios

    Cria um novo anúncio.

    Args:
        dados: Dados do anúncio. Request body schema: AnunciosSaveRequest

    Returns:
        Bling API response. Response schemas: 201: AnunciosSaveResponseDTO; 400: ErrorResponse
    """
    raw = self._post("/anuncios", json=to_json_object(dados))
    return self._validate_response(AnunciosPostResponse201, raw)

alterar

alterar(id_anuncio: int, dados: AnunciosSaveRequest) -> JsonObject

Altera um anúncio.

Endpoint: PUT /anuncios/{idAnuncio}

Altera um anúncio pelo ID.

Parameters:

Name Type Description Default
id_anuncio int

ID do anúncio (Bling: idAnuncio, integer, obrigatório)

required
dados AnunciosSaveRequest

Dados do anúncio para atualização. Request body schema: AnunciosSaveRequest

required

Returns:

Type Description
JsonObject

Bling API response. Response schemas: 204: NoContent; 400: ErrorResponse; 404: ErrorResponse

Source code in src/bling_erp_api/resources/ads.py
def alterar(
    self,
    id_anuncio: int,
    dados: AnunciosSaveRequest,
) -> JsonObject:
    """Altera um anúncio.

    Endpoint: PUT /anuncios/{idAnuncio}

    Altera um anúncio pelo ID.

    Args:
        id_anuncio: ID do anúncio (Bling: ``idAnuncio``, integer, obrigatório)
        dados: Dados do anúncio para atualização. Request body schema: AnunciosSaveRequest

    Returns:
        Bling API response. Response schemas: 204: NoContent; 400: ErrorResponse; 404: ErrorResponse
    """
    return self._put(f"/anuncios/{id_anuncio}", json=to_json_object(dados))

remover

remover(id_anuncio: int, *, tipo_integracao: str, id_loja: int) -> JsonObject

Remove um anúncio.

Endpoint: DELETE /anuncios/{idAnuncio}

Remove um anúncio pelo ID.

Parameters:

Name Type Description Default
id_anuncio int

ID do anúncio (Bling: idAnuncio, integer, obrigatório)

required
tipo_integracao str

Tipo de integração (Bling: tipoIntegracao, string, obrigatório)

required
id_loja int

ID da loja (Bling: idLoja, integer, obrigatório)

required

Returns:

Type Description
JsonObject

Bling API response. Response schemas: 204: NoContent; 400: ErrorResponse; 404: ErrorResponse

Source code in src/bling_erp_api/resources/ads.py
def remover(self, id_anuncio: int, *, tipo_integracao: str, id_loja: int) -> JsonObject:
    """Remove um anúncio.

    Endpoint: DELETE /anuncios/{idAnuncio}

    Remove um anúncio pelo ID.

    Args:
        id_anuncio: ID do anúncio (Bling: ``idAnuncio``, integer, obrigatório)
        tipo_integracao: Tipo de integração (Bling: ``tipoIntegracao``, string, obrigatório)
        id_loja: ID da loja (Bling: ``idLoja``, integer, obrigatório)

    Returns:
        Bling API response. Response schemas: 204: NoContent; 400: ErrorResponse; 404: ErrorResponse
    """
    params = compact_params(
        {
            "tipoIntegracao": tipo_integracao,
            "idLoja": id_loja,
        }
    )
    return self._delete(f"/anuncios/{id_anuncio}", params=params)

publicar

publicar(id_anuncio: int, *, tipo_integracao: str, id_loja: int) -> JsonObject

Publica um anúncio.

Endpoint: POST /anuncios/{idAnuncio}/publicar

Altera o status do anúncio para publicado.

Parameters:

Name Type Description Default
id_anuncio int

ID do anúncio (Bling: idAnuncio, integer, obrigatório)

required
tipo_integracao str

Tipo de integração (Bling: tipoIntegracao, string, obrigatório)

required
id_loja int

ID da loja (Bling: idLoja, integer, obrigatório)

required

Returns:

Type Description
JsonObject

Bling API response. Response schemas: 204: NoContent; 400: ErrorResponse; 404: ErrorResponse

Source code in src/bling_erp_api/resources/ads.py
def publicar(self, id_anuncio: int, *, tipo_integracao: str, id_loja: int) -> JsonObject:
    """Publica um anúncio.

    Endpoint: POST /anuncios/{idAnuncio}/publicar

    Altera o status do anúncio para publicado.

    Args:
        id_anuncio: ID do anúncio (Bling: ``idAnuncio``, integer, obrigatório)
        tipo_integracao: Tipo de integração (Bling: ``tipoIntegracao``, string, obrigatório)
        id_loja: ID da loja (Bling: ``idLoja``, integer, obrigatório)

    Returns:
        Bling API response. Response schemas: 204: NoContent; 400: ErrorResponse; 404: ErrorResponse
    """
    params = compact_params(
        {
            "tipoIntegracao": tipo_integracao,
            "idLoja": id_loja,
        }
    )
    return self._post(f"/anuncios/{id_anuncio}/publicar", params=params)

pausar

pausar(id_anuncio: int, *, tipo_integracao: str, id_loja: int) -> JsonObject

Pausa um anúncio.

Endpoint: POST /anuncios/{idAnuncio}/pausar

Altera o status do anúncio para pausado.

Parameters:

Name Type Description Default
id_anuncio int

ID do anúncio (Bling: idAnuncio, integer, obrigatório)

required
tipo_integracao str

Tipo de integração (Bling: tipoIntegracao, string, obrigatório)

required
id_loja int

ID da loja (Bling: idLoja, integer, obrigatório)

required

Returns:

Type Description
JsonObject

Bling API response. Response schemas: 204: NoContent; 400: ErrorResponse; 404: ErrorResponse

Source code in src/bling_erp_api/resources/ads.py
def pausar(self, id_anuncio: int, *, tipo_integracao: str, id_loja: int) -> JsonObject:
    """Pausa um anúncio.

    Endpoint: POST /anuncios/{idAnuncio}/pausar

    Altera o status do anúncio para pausado.

    Args:
        id_anuncio: ID do anúncio (Bling: ``idAnuncio``, integer, obrigatório)
        tipo_integracao: Tipo de integração (Bling: ``tipoIntegracao``, string, obrigatório)
        id_loja: ID da loja (Bling: ``idLoja``, integer, obrigatório)

    Returns:
        Bling API response. Response schemas: 204: NoContent; 400: ErrorResponse; 404: ErrorResponse
    """
    params = compact_params(
        {
            "tipoIntegracao": tipo_integracao,
            "idLoja": id_loja,
        }
    )
    return self._post(f"/anuncios/{id_anuncio}/pausar", params=params)