Brazil Sports Betting Compliance (SPA Check)

Updated on 14.10.25
8 minutes to read
Copy link

Overview

CPF-based screening enables Brazilian iGaming operators to identify high-risk or restricted individuals across multiple data sources, ensuring compliance with Brazilian law, responsible gaming, and anti-money laundering (AML) regulations.

This unified screening approach combines SPA (Secretariat of Prizes and Bets) checks, social welfare program monitoring, and Politically Exposed Persons (PEP) verification, providing a precise, real-time method to reduce false positives and manage restricted or high-risk users.

Key benefits

Here are the key benefits of using SPA checks:

  • Comprehensive coverage: Screen individuals across SPA, government welfare programs, and PEP registries using a single CPF number.
  • Accurate & real-time identification: CPF-based matching reduces false positives compared to name-based methods, minimizing manual review.
  • Enhanced fraud and AML detection: Identify restricted users, potential misuse of social benefits, and high-risk PEPs.
  • Ease of integration: Already using SEON’s Fraud API? Just update the API configuration to enable all CPF-based checks — no extra setup is needed.

Coverage & Sources

CPF-based screening now includes multiple integrated sources:

SPA (Secretariat of Prizes and Bets)

  • Who it covers: Athletes, referees, managers, coaches, and immediate family members (up to second-degree relations).
  • Scope: Traditional sports and esports.
  • Purpose: Prevent individuals with direct influence over sports outcomes from participating in betting.

Social Welfare & Benefits Programs

  • Bolsa Família: Ensures gambling funds do not come from government welfare.
  • BPC (Benefício de Prestação Continuada): Safeguards income for elderly or disabled low-income individuals.
  • Seguro Defeso: Protects off-season fishermen’s income.
  • Auxílio Emergencial: Monitors temporary COVID-19 relief program recipients.
  • Garantia Safra: Supports agricultural producers impacted by natural disasters.
  • Purpose: Prevent misuse of government support programs for gambling and detect potential AML risks.

PPN / PEP / PPE Checks

PPN (National PEP) – Publicly Known Person: Individuals with broad public exposure and social influence, such as artists, TV hosts, athletes, high-profile businesspeople, and digital influencers.

PEP (Local PEP) – Politically Exposed Person: Individuals who currently hold or have held prominent public positions, mandates, or functions, as well as their family members and close associates, as defined by Brazilian law. This classification remains valid during the term of office and for up to five years after it ends.

PPE – Extended Politically Exposed Person: Individuals who were previously classified as PEPs but have surpassed the five-year period following the end of their mandate. Although they are no longer formally considered PEPs, they still represent reputational risk and potential political or economic influence.

How it works

  1. Submit CPF: The user’s CPF number is sent via the API in the user_photoid_number field.
  2. Real-time Query: The system cross-checks the CPF across all integrated sources, including:
    1. SPA (Secretariat of Prizes and Bets): Athletes, referees, managers, coaches, and immediate family members.
    2. Social Welfare & Benefits Programs: Bolsa Família, BPC, Seguro Defeso, Auxílio Emergencial, and Garantia Safra.
    3. PPN / PEP / PPE Checks: Publicly Known Persons, Politically Exposed Persons, and Extended PEPs.
  3. Response: The system returns the user’s eligibility status, flags any potential risks, and indicates whether betting is allowed for that CPF.

API response fields


Field name
 

Description
 
has_brazil_spa_matchIndicates whether the CPF has betting restrictions or any other flags (true/false).
has_bolsa_familia_match
has_cpf_based_pep_match
has_cpf_based_ppe_match
has_cpf_based_ppn_match
has_seguro_defeso_match
has_garantia_safra_match
has_auxilio_emergencial_match
has_brazil_bpc_match
entries

Detailed information about restrictions, including:

- Restriction type (e.g., athlete, family member).

- Individual's name and role.

- Organization or entity name.

update_dateLast update timestamp for the restriction.


Sample response

{
   "success":true,
   "data":{
      "local_aml_match":{
    "has_brazil_spa_match": true,
    "has_bolsa_familia_match": true,
    "has_cpf_based_pep_match": true,
    "has_cpf_based_ppe_match": true,
    "has_cpf_based_ppn_match": true,
    "has_seguro_defeso_match": true,
    "has_garantia_safra_match": true,
    "has_auxilio_emergencial_match": true,
    "has_brazil_bpc_match": true
      },
      "local_aml_entries":{
         "brazil_spa_entries":[
            {
               "registration_data":{
                  "cpf":"00009073285"
               },
               "person_prevented_from_betting":{
                  "athletes":[
                     {
                        "betting_prohibited":"SIM",
                        "related_to_sport":"SIM",
                        "restriction_type":"ATLETA",
                        "cpf_number":"379073285",
                        "person_name":"OLIVEIRA JUNIOR",
                        "nickname":"MARCOS",
                        "classification":"ATLETA",
                        "sport":"FUTEBOL",
                        "sport_type":"COLETIVA",
                        "entity_name":"CAPITAO POCO ESPORTE CLUBE",
                        "entity_state":"PA",
                        "link_level":"0",
                        "update_date":"21/06/2024"
                     }
                  ]
               }
            }
         ]
      }
   }
}

Requirements

  • CPF number: Mandatory input for checks.

Data protection and security

We treat CPF numbers as sensitive data (PII) and adhere to GDPR and ISO 27001 standards to ensure strict data protection and compliance.

Integration and billing

Each request to SPA database is billable.
Billing reports aggregate the total number of checks per month.

 

Step-by-step integration guide

Step 1: Enable CPF-Based Screening in source configuration

In your source configuration, enable the integrated CPF-based screening by adding the following settings under local_aml_sources:

Example configuration

{
   "config": {
      "aml": {
         "type": "PERSON",
         "version": "v1",
         "monitoring_required": true,
         "monitoring_schedule": "ON_CHANGE",
         "sources": {
            "sanction_enabled": true,
            "pep_enabled": true,
            "watchlist_enabled": true,
            "crimelist_enabled": true,
            "adversemedia_enabled": true,
            "local_aml_sources": {
               "brazil_spa": true,
               "bolsa_familia": false,
        "cpf_based_pep": false,
        "cpf_based_ppe": false,
        "cpf_based_ppn": false,
        "seguro_defeso": false,
        "garantia_safra": false,
        "auxilio_emergencial": false,
        "brazil_bpc": false
            }
         },
         "fuzzy_enabled": true,
         "fuzzy_config": {
           ....
         }
      },
      "aml_api": true,
      "response_fields": "aml_details"
   }
}

Step 2: Submitting a CPF for SPA check

Send a request to the Fraud API with the CPF number in the user_photoid_number field.

Example configuration

{
   "user_photoid_number": "00379073285"
}

Step 3: Understanding the Response

Example for SPA configuration

{
   "success":true,
   "error":{
   },
   "data":{
      "has_watchlist_match":false,
      "has_sanction_match":true,
      "has_crimelist_match":false,
      "has_pep_match":false,
      "has_adversemedia_match":true,
      "local_aml_match":{
         "has_brazil_spa_match":false
      },
      "result_payload":{
         "searched_at":"2024-04-17T19:29:30.164Z",
         "sanctionlist_sources":[
         ],
         "watchlist_entries":[
         ],
         "sanctionlist_entries":[
         ],
         "crimelist_entries":[
         ],
         "pep_entries":[
         ],
         "adversemedia_entries":[
         ],
         "local_aml_entries":
            {
               "brazil_spa_entries":[
                  {
                     "registration_data":{
                        "cpf":"00379073285"
                     },
                     "person_prevented_from_betting":{
                        "athletes":[
                           {
                              "betting_prohibited":"SIM",
                              "related_to_sport":"SIM",
                              "restriction_type":"ATLETA",
                              "cpf_number":"379073285",
                              "person_name":"JOSE MARCOS ANSELMO DE OLIVEIRA JUNIOR",
                              "nickname":"MARCOS",
                              "classification":"ATLETA",
                              "sport":"FUTEBOL",
                              "sport_type":"COLETIVA",
                              "entity_name":"CAPITAO POCO ESPORTE CLUBE",
                              "entity_state":"PA",
                              "link_level":"0",
                              "update_date":"21/06/2024"
                           }
                        ],
                        "relatives":[
                           {
                              "betting_prohibited":"SIM",
                              "related_to_sport":"NAO",
                              "restriction_type":"FAMILIAR",
                              "cpf_number":"379073285",
                              "person_name":"JOSE MARCOS ANSELMO DE OLIVEIRA JUNIOR",
                              "classification":"VINCULO FAMILIAR",
                              "sport":"FUTEBOL",
                              "link_level":"2",
                              "link_type":"IRMAO",
                              "related_document":"107766213",
                              "related_name":"SAYMON RUFINO DE OLIVEIRA",
                              "update_date":"21/06/2024"
                           }
                        ],
                        "partners_of_company":[
                           {
                              "betting_prohibited":"SIM",
                              "related_to_sport":"NAO",
                              "restriction_type":"AGENTE OPERADOR",
                              "cpf_number":"12843133874",
                              "person_name":"RICARDO AUGUSTO BIANCO ROSADA",
                              "classification":"AGENTE OPERADOR",
                              "entity_name":"FANSTOK SERVICOS COMBINADOS DE MARKETING TECNOLOGIA E INTERMEDIACAO PARA EMPRESAS LTDA",
                              "entity_state":"SP",
                              "entity_position_function":"SOCIO ADMINISTRADOR",
                              "link_level":"0",
                              "related_document":"43349318000195",
                              "update_date":"09/11/2024"
                           }
                        ]
                     }
                  }
               ]
            }
      }
   }
}

Explanation of the fields


Key
 

Value

Explanation
successtrueIndicates the success status of the response.
error{}Contains error details if any; currently empty.
local_aml_match{...}Contains AML (Anti-Money Laundering) match details specific to local jurisdictions.
local_aml_match ? has_brazil_spa_matchtrueIndicates if there was a match in Brazil's SPA list 
result_payload{...}Provides detailed information about the search results.
searched_at2024-04-17T19:29:30.164ZTimestamp when the search was performed.
brazil_spa_entries[ {...} ]Contains entries specific to Brazil SPA matches.
registration_data ? cpf00379073285Registration CPF number of the person related to the Brazil SPA match.

 

Details in person_prevented_from_betting


Category
 

Key

Value

Explanation
athletesbetting_prohibitedSIMIndicates betting is prohibited for this athlete.
 related_to_sportSIMConfirms the restriction is sport-related.
 restriction_typeATLETAType of restriction applied (Athlete).
 cpf_number379073285CPF number of the athlete.
 

 

person_name

JOSE MARCOS ANSELMO DE OLIVEIRA JUNIORName of the athlete.
 nicknameMARCOSNickname of the person.
 classificationATLETAClassification as an athlete.
 sportFUTEBOLSport the person is involved in (Football).
 sport_typeCOLETIVAType of sport (Team sport).
 entity_nameCAPITAO POCO ESPORTE CLUBEName of the associated sports entity.
 entity_statePAState of the associated entity.
 link_level0Indicates the level of link (Direct connection).
 update_date21/06/2024Last update date of the record.

 

Release notes

  • Version 1.0: Initial API release with SPA checks.
  • Version 2.0 (Planned): Automated declines, enhanced rules, and admin panel updates.