Android App for french bank Fortuneo. Uses Apache Thrift for most client to server communication.
Also used by parent company, Credit Mutuel Arkea: https://docplayer.fr/13057782-Apache-thrift-soa-legere-retour-d-experience.html
public final class BuildConfig {
public static final String APPLICATION_ID = "com.fortuneo.android";
public static final String BUILD_TYPE = "prod";
public static final boolean DEBUG = false;
public static final String FTO_API_KEY = "Jg8HUU2jexfdbpbTFJXFHPEEY0kZf9va";
public static final int VERSION_CODE = 3184;
public static final String VERSION_NAME = "9.5.2";
}
<string name="fortuneo_api_banque">https://api.fortuneo.com/bank/v1</string>
<string name="fortuneo_api_carte">https://api.fortuneo.com/card-api/v1/</string>
<string name="fortuneo_api_key">Jg8HUU2jexfdbpbTFJXFHPEEY0kZf9va</string>
<string name="fortuneo_api_security">https://api.fortuneo.com/security/</string>
<string name="fortuneo_hostname">www.fortuneo.fr</string>
<string name="fortuneo_url_alertebanque">https://api.fortuneo.fr/passerelle/1/alertebanquesecure/</string>
<string name="fortuneo_url_alertebourse">https://api.fortuneo.fr/passerelle/1/alertebourse/</string>
<string name="fortuneo_url_alertepassageordre">https://api.fortuneo.fr/passerelle/1/alertepassageordresecure/</string>
<string name="fortuneo_url_alertesecure">https://api.fortuneo.fr/passerelle/3/alertesecure/</string>
<string name="fortuneo_url_assurance_vie">https://api.fortuneo.fr/passerelle/2/assuranceviesecure</string>
<string name="fortuneo_url_cartevirtuelle">https://api.fortuneo.fr/passerelle/2/cartevirtuellesecure/</string>
<string name="fortuneo_url_compte">https://api.fortuneo.fr/passerelle/1/comptesecure/</string>
<string name="fortuneo_url_compteaterme">https://api.fortuneo.fr/passerelle/1/compteatermesecure</string>
<string name="fortuneo_url_compteexternesecure_2">https://api.fortuneo.fr/passerelle/2/compteexternesecure/</string>
<string name="fortuneo_url_contact">https://api.fortuneo.fr/passerelle/1/contactsecure</string>
<string name="fortuneo_url_credit_immobilier">https://api.fortuneo.fr/passerelle/1/creditimmobiliersecure</string>
<string name="fortuneo_url_editique">https://api.fortuneo.fr/passerelle/1/editiquesecure</string>
<string name="fortuneo_url_faq">https://api.fortuneo.fr/passerelle/1/faq/</string>
<string name="fortuneo_url_geogab">https://api.fortuneo.fr/passerelle/1/geogab/</string>
<string name="fortuneo_url_indice">https://api.fortuneo.fr/passerelle/1/indice/</string>
<string name="fortuneo_url_liste_perso">https://api.fortuneo.fr/passerelle/1/listeperso/</string>
<string name="fortuneo_url_livret">https://api.fortuneo.fr/passerelle/1/livretsecure/</string>
<string name="fortuneo_url_messagerie">https://api.fortuneo.fr/passerelle/1/messageriesecure</string>
<string name="fortuneo_url_mobilite">https://mabanque.fortuneo.fr/changer-de-banque/#jwt_token=%1$s&access_token=%2$s</string>
<string name="fortuneo_url_mobilite_detail_annulation">https://mabanque.fortuneo.fr/changer-de-banque/suivi/%1$s/detail#jwt_token=%2$s&access_token=%3$s</string>
<string name="fortuneo_url_mobilite_detail_demande_signature">https://mabanque.fortuneo.fr/changer-de-banque/mon-recapitulatif/%1$s#jwt_token=%2$s&access_token=%3$s</string>
<string name="fortuneo_url_news">https://api.fortuneo.fr/passerelle/1/news/</string>
<string name="fortuneo_url_operationsecure">https://api.fortuneo.fr/passerelle/1/operationsecure/</string>
<string name="fortuneo_url_operationsecure_2">https://api.fortuneo.fr/passerelle/2/operationsecure/</string>
<string name="fortuneo_url_ordre">https://api.fortuneo.fr/passerelle/1/ordresecure/</string>
<string name="fortuneo_url_partenaire">https://api.fortuneo.fr/passerelle/1/partenaire/acces/</string>
<string name="fortuneo_url_partenaire_banque">https://api.fortuneo.fr/passerelle/1/partenaire/banque/</string>
<string name="fortuneo_url_partenaire_banque_anr">https://api.fortuneo.fr/passerelle/2/partenaire/banque/</string>
<string name="fortuneo_url_partenaire_banque_anr_2">https://api.fortuneo.fr/passerelle/4/partenaire/banque/</string>
<string name="fortuneo_url_portefeuille">https://api.fortuneo.fr/passerelle/1/portefeuillesecure/</string>
<string name="fortuneo_url_portefeuillefictif">https://api.fortuneo.fr/passerelle/1/portefeuillefictif/</string>
<string name="fortuneo_url_recherche">https://api.fortuneo.fr/passerelle/1/recherche/</string>
<string name="fortuneo_url_securiteforte">https://api.fortuneo.fr/passerelle/1/securiteforte</string>
<string name="fortuneo_url_securiteforte_2">https://api.fortuneo.fr/passerelle/2/securiteforte</string>
<string name="fortuneo_url_synthese">https://api.fortuneo.fr/passerelle/1/synthese/</string>
<string name="fortuneo_url_valeur">https://api.fortuneo.fr/passerelle/1/valeur/</string>
<string name="google_api_key">AIzaSyCQSusk2pJSx1dMlsn5XwlbdZvPNKAiIk4</string>
<string name="google_app_id">1:206640500824:android:e86b83dfc8be62c9</string>
<string name="google_crash_reporting_api_key">AIzaSyCQSusk2pJSx1dMlsn5XwlbdZvPNKAiIk4</string>
<string name="google_maps_api_key">AIzaSyDCpWD77rtHekx9jT8WUpEur9XxHoE2zIY</string>
<string name="newrelic_token">AAed5e9e04f374f83da48a438c0e7750aa1e5c2a22</string>
<string name="url_about_cg">https://mabanque.fortuneo.fr/datas/files/fortuneo_cg.pdf</string>
<string name="url_about_legal_notice">https://www.fortuneo.fr/mentions-legales-avertissement-legal?iframe=true</string>
<string name="url_about_price">https://mabanque.fortuneo.fr/datas/files/tarifs_fortuneo.pdf</string>
<string name="url_about_price_info">https://mabanque.fortuneo.fr/datas/files/document-information-tarifaire.pdf</string>
<string name="url_about_privacy">https://mabanque.fortuneo.fr/datas/files/politique-de-confidentialite.pdf</string>
<string name="url_app_version">https://api.fortuneo.com/mobile-infos</string>
<string name="url_become_client">https://www.fortuneo.fr/compte-bancaire/ouvrir-un-compte/type-compte-courant?utm_source=ftno&utm_medium=appli&utm_campaign=cta_ouverture</string>
<string name="url_card_concierge_service">https://fortuneo.gconcierges.com/</string>
<string name="url_changement_mandat_assurance_vie">https://mabanque.fortuneo.fr/fr/prive/mes-comptes/assurance-vie/changement-mandat.jsp</string>
<string name="url_garantie_assistance">https://assurance-carte.europ-assistance.fr</string>
<string name="url_maintenance">https://mabanque.fortuneo.fr/placements/webstore/application-android-2/maintenance.html</string>
<string name="url_note_opposition_carte">https://mabanque.fortuneo.fr/WebStore/application-android-2/note-opposition-carte.html</string>
<string name="url_note_opposition_cheque">https://mabanque.fortuneo.fr/WebStore/application-android-2/note-opposition-cheque.html</string>
<string name="url_opposition">https://mabanque.fortuneo.fr/WebStore/application-android-2/opposition_cb.html</string>
<string name="url_privacy_policy">https://www.fortuneo.fr/mentions-legales-avertissement-legal/depot-cookies-information?iframe=true</string>
<string name="url_products_list">https://mabanque.fortuneo.fr/placements/webstore/application-mobile/cms.json</string>
<string name="url_profil_vie_dynamique">https://mabanque.fortuneo.fr/WebStore/application-android-2/profil-dynamique.html</string>
<string name="url_profil_vie_dynamique_nouveau">https://mabanque.fortuneo.fr/WebStore/application-android-2/profil-dynamique-nouveau.html</string>
<string name="url_profil_vie_equilibre">https://mabanque.fortuneo.fr/WebStore/application-android-2/profil-equilibre.html</string>
<string name="url_profil_vie_equilibre_nouveau">https://mabanque.fortuneo.fr/WebStore/application-android-2/profil-equilibre-nouveau.html</string>
<string name="url_profil_vie_prudent">https://mabanque.fortuneo.fr/WebStore/application-android-2/profil-prudent.html</string>
<string name="url_profil_vie_prudent_nouveau">https://mabanque.fortuneo.fr/WebStore/application-android-2/profil-prudent-nouveau.html</string>
<string name="url_profil_vie_securitaire">https://mabanque.fortuneo.fr/WebStore/application-android-2/profil-securitaire.html</string>
<string name="url_reseau_lent">https://mabanque.fortuneo.fr/WebStore/application-mobile/speedtest/1MB.zip</string>
<string name="url_service_patrimonial">https://www.fortuneo.fr/service-patrimonial</string>
<string name="url_streaming_bourse_websocket">https://mabanque.fortuneo.fr/rtstreaming/quotes/websocket/</string>
<string name="url_svi_visuel">https://ich-client-sdk.prod.dial-once.com/?apiKey=167d9fe0-1eb6-439e-b1be-b92034a002c1&method=clicktohubwidget</string>
<string name="url_youtube_video">https://www.youtube.com/v/</string>
<string name="url_youtube_video_thumbnail">https://img.youtube.com/vi/</string>
<string name="user_agent">Fortuneo-%1$s/%2$s %3$s</string>
<string name="website_hostname">www.mabanque.fortuneo.fr</string>
<string name="website_url">https://mabanque.fortuneo.fr</string>
<string name="account_popup_demo_mode_identifier">0102001045</string>
<string name="account_popup_demo_mode_password">fortuneo</string>
<string name="anrlib_oauth_url">http://serveuroauth.rec.s.arkea.com:8080/serveuroauth</string>
<string name="anrlib_securityapi_url">http://192.168.56.1:8080/securityapi</string>
<string name="answer_later">Plus tard</string>
<string name="api_account_rules">https://api.fortuneo.com/account-rules/v1</string>
<string name="api_accounts">https://api.fortuneo.com/account-api/v2</string>
<string name="api_consent_no_oauth">https://api.fortuneo.com/consentapinoauth</string>
<string name="api_customer">https://api.fortuneo.com/customer/v1</string>
<string name="api_event_service">https://api.fortuneo.com/events/v1</string>
<string name="api_financial_instruments">https://api.fortuneo.com/financial-instruments/v1</string>
<string name="api_institutional">https://api.fortuneo.com/institutional/v1</string>
<string name="api_life_insurance">https://api.fortuneo.com/life-insurance/v1</string>
<string name="api_market">https://api.fortuneo.com/market/v1</string>
<string name="api_payment">https://api.fortuneo.com/payment-api/v1</string>
<string name="api_paymentvalidation">https://api.fortuneo.com/dsp2-payment-validation-api</string>
<string name="api_person">https://api.fortuneo.com/person/v1</string>
<string name="api_providers">https://api.fortuneo.com/provider-api/v1</string>
<string name="api_sponsorship">https://api.fortuneo.com/sponsorship-api/v1</string>
<string name="api_subscription">https://api.fortuneo.com/subscription/v2</string>
<string name="api_tpprepository">https://api.fortuneo.com/tpprepositoryapi</string>
public class SecurityApiPaths {
public static final String ACCESSRECOVERY = "access/recovery";
public static final String ACTIVATECARDREADER = "cardReader/activate";
public static final String AUTHENTICATE = "authenticate";
public static final String CANCEL_PENDING = "enrollment/cancelPending";
public static final String CHANGEMENT_ESPACE = "/changeSpace";
public static final String CHECKFINGERPRINT = "deviceFingerprinting/checkFingerPrint";
public static final String CHECK_OATH = "mobileStrongAuth/checkOATH";
public static final String CHECK_USER = "checkuser";
public static final String DEVICE_BIOMETRY = "device-biometry";
public static final String DEVICE_BIOMETRY_OFF = "device/biometry/disabled";
public static final String DEVICE_BIOMETRY_ON = "device/biometry/enabled";
public static final String ENROLLMENT_ALLOWED = "allowed-enrollments";
public static final String ENROLLMENT_GET_DEVICES = "enrollment/devices";
public static final String ENROLLMENT_GET_PUBLIC_KEY_STATUS = "enrollment/public-key/status";
public static final String ENROLLMENT_GET_STATUS = "enrollment/getEnrollmentStatus";
public static final String ENROLLMENT_GET_STATUS_NOAUTH = "enrollment-status-noauth";
public static final String ENROLLMENT_GET_STATUS_NOT_AUTHENTIFIED = "enrollmentStatus/getEnrollmentStatus";
public static final String ENROLLMENT_REQUEST = "enrollment/requestSeed";
public static final String ENROLLMENT_SEND_BANKCARD_SMS = "enrollment/sendBankcardEnrollmentSms";
public static final String ENROLLMENT_VALIDATE = "enrollment/validateSeed";
public static final String ENROLLMENT_VALIDATE_PUBLIC_KEY = "enrollment/public-key";
public static final String EXTERNALHISTORY = "external-history";
public static final String GENERATE_CHALLENGE = "generateChallenge";
public static final String GETACCESHISTORY = "accesHistory";
public static final String GETFINGERPRINT = "deviceFingerprinting/getFingerPrint";
public static final String GETINFOSACCES = "infosAcces";
public static final String GETINFOSBANKCARD = "bankCard/infos";
public static final String GETINFOSCARDREADER = "cardReader/infos";
public static final String GETINFOSPILOTE = "canari/infosPilote";
public static final String GET_ACCESS_CODE = "person/accessCode";
public static final String GET_ALL_APPLICATIONS = "applications";
public static final String GET_AUTHENTICATION_MODE = "person/authenticationMode";
public static final String GET_BIOMETRY_STATUS = "device/biometry/status";
public static final String GET_COORDONNEES = "person/coordonnees";
public static final String GET_LIST_DEVICES = "getListDevices";
public static final String GET_PERSON = "person";
public static final String HAS_DEVICE = "hasDevice";
public static final String JWT_TOKEN = "jwt-token";
public static final String KEEPALIVE = "keepalive";
public static final String MOBILE_STRONG_AUTH = "mobileStrongAuth/validate";
public static final String MODIFY_DEVICE = "modifyDevice";
public static final String MODIFY_MCODE = "modifyMcode";
public static final String MODIFY_MCODE_V2 = "device/mcode";
public static final String MODIFY_SERIALNUMBER_DEVICE = "device/serialNumber";
public static final String NETWORKTIME = "/time";
public static final String OPERATIONRIB = "operation/rib";
public static final String OPERATION_GENERATE_SEED = "operation/generateSeed";
public static final String OPERATION_GENERATE_SEED_RENEW = "operation/generateSeedForTokenRenewal";
public static final String OPERATION_GET_OPERATION_DATAS = "operation/{pathId}/params";
public static final String OPERATION_INITIATE_SENSITIVE_OPERATION = "operation";
public static final String OTPAUTHENTICATE = "otp/authenticate";
public static final String OTPGENERATE = "otp/generate";
public static final String OTPVALIDATE = "otp/validate";
public static final String PASSWORD = "password";
public static final String PASSWORD_HASH = "password/hash/{si}/{efs}/{access}";
public static final String PASSWORD_RECOVERY = "password/recovery";
public static final String PASSWORD_STRENGTH = "password/checkStrength";
public static final String PENDING_TOKENS = "pendingTokens";
public static final String REINIT_MCODE = "device/reinitmcode";
public static final String REVOKE_DEVICE = "revokeSeedDevice";
public static final String REVOKE_REQUEST = "revoke";
public static final String SEED_FOR_NEW_PENDING = "enrollment/requestSeedForNewPending";
public static final String SEND_NEW_SEED_TO_ENROLLED_DEVICES = "enrollment/sendNewSeedToAlreadyEnrolledDevice";
public static final String STORE_BIOMETRY_SECRET = "device/biometry/secret";
public static final String TOKEN = "token";
public static final String TOKENS = "tokens";
public static final String TOTP_BASED_AUTHENTICATION = "oath/authenticate";
public static final String TRIGGERXCANAL = "operation/{id}/xcanal";
public static final String VALIDATEXCANALOPERATION = "xcanal-operation";
public static final String XCANAL_AUTHENTICATION = "xcanal-authenticate";
}
getInfosMobiles
private String getInfosMobiles() {
if (infosMobile == null) {
try {
StringBuilder sb = new StringBuilder();
sb.append(Constants.FirelogAnalytics.SDK_PLATFORM_ANDROID);
sb.append(",");
sb.append(Build.VERSION.RELEASE);
sb.append(",");
sb.append(Build.VERSION.SDK_INT);
sb.append(",");
sb.append(Build.MANUFACTURER);
sb.append(",");
sb.append(Build.MODEL);
sb.append(",");
PackageInfo packageInfo = this.context.getPackageManager().getPackageInfo(this.context.getPackageName(), 0);
sb.append(packageInfo.versionName);
sb.append(",");
sb.append(packageInfo.versionCode);
infosMobile = sb.toString();
} catch (Exception unused) {
}
}
return infosMobile;
}
public static final String CD_ERR_ADRESSE_NPAI = "BACKEND_2070";
public static final String CD_ERR_ANNULATION_REPONSE_OST_KO = "BACKEND_2176";
public static final String CD_ERR_AUTHENTIFICATION_FORTE_NON_VALIDEE = "BACKEND_2325";
public static final String CD_ERR_CAT_AUCUN_COMPTE_LIGIBLE = "BACKEND_2180";
public static final String CD_ERR_CAT_AUCUN_TAUX_COMMERCIALISABLE = "BACKEND_2182";
public static final String CD_ERR_CAT_PERSONNE_NON_AUTORISEE = "BACKEND_2181";
public static final String CD_ERR_CAT_PERSONNE_NON_ELIGIBLE = "BACKEND_2179";
public static final String CD_ERR_CODE_ACCES_COTITULAIRE = "BACKEND_2090";
public static final String CD_ERR_CODE_PROMO_EXPIRE = "BACKEND_2101";
public static final String CD_ERR_CODE_PROMO_INVALIDE = "BACKEND_2102";
public static final String CD_ERR_CODE_SECRET_INCORRECT = "BACKEND_2087";
public static final String CD_ERR_COMPTE_BOURSE_OBLIGATOIRE = "BACKEND_2127";
public static final String CD_ERR_COMPTE_NON_TROUVE = "OPERATION_DIVERSES_COMPTE_NON_TROUVE";
public static final String CD_ERR_CREER_ANNULER_OST_FERMER = "BACKEND_2183";
public static final String CD_ERR_DEBUT_OST_KO = "BACKEND_2177";
public static final String CD_ERR_DEPLAFONNEMENT_CARTE_EN_OPPOSITION = "BACKEND_0104";
public static final String CD_ERR_DEPLAFONNEMENT_CLIENT_NON_ELIGIBLE = "BACKEND_0100";
public static final String CD_ERR_DEPLAFONNEMENT_COTATION_BALE_INSUFFISANT = "BACKEND_0101";
public static final String CD_ERR_DEPLAFONNEMENT_DEMANDE_EXISTANTE = "BACKEND_0105";
public static final String CD_ERR_DEPLAFONNEMENT_EN_COURS_GLOBAL_INSUFFISANT = "BACKEND_0102";
public static final String CD_ERR_DEPLAFONNEMENT_NB_MAX_ATTEINT = "BACKEND_0103";
public static final String CD_ERR_DETAIL_OST_KO = "BACKEND_2173";
public static final String CD_ERR_DETAIL_REPONSE_OST_KO = "BACKEND_2175";
public static final String CD_ERR_ECHEANCE_OST_KO = "BACKEND_2178";
public static final String CD_ERR_EMAIL = "BACKEND_2071";
public static final String CD_ERR_ENREGISTREMENT_REPONSE_OST_KO = "BACKEND_2174";
public static final String CD_ERR_FCT_ENROLEMENT_AUCUN_NUMERO_PORTABLE_TROUVE = "BACKEND_2237";
public static final String CD_ERR_FCT_ENROLEMENT_AUCUN_NUMERO_TEL_TROUVE = "BACKEND_2236";
public static final String CD_ERR_FIND_CARTE_ACTIVABLE = "PACMAN_369";
public static final String CD_ERR_FORBIDDEN = "BACKEND_403";
public static final String CD_ERR_FUNC_ABSENCE_RESULTAT_REQUETE = "BACKEND_2166";
public static final String CD_ERR_FUNC_ANCIENNETE_COMPTE = "BACKEND_2217";
public static final String CD_ERR_FUNC_ASSURANCEVIE_TELEPHONE_NON_AUTORISE = "BACKEND_2222";
public static final String CD_ERR_FUNC_AUTHENTIFICATION_FERMEE = "BACKEND_2326";
public static final String CD_ERR_FUNC_AVIS_DEPOT_INVALIDE = "BACKEND_2113";
public static final String CD_ERR_FUNC_AVIS_OPERE = "BACKEND_2061";
public static final String CD_ERR_FUNC_BORNE_VERSEMENT_INITIAL = "BACKEND_2135";
public static final String CD_ERR_FUNC_BORNE_VERSEMENT_PROGRAMME = "BACKEND_2137";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_ACCES_SUSPENDU = "BACKEND_2320";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_ANR = "BACKEND_2309";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_AUCUNE_CARTE_REELLE_ELIGIBLE = "BACKEND_2214";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_AUCUNE_CARTE_VIRTUELLE = "BACKEND_2215";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_AUCUN_ACHAT = "BACKEND_2216";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_BLOCAGE = "BACKEND_2310";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_CARTE_REELLE_INCONNUE = "BACKEND_2190";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_CARTE_REELLE_VIDE = "BACKEND_2193";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_CARTE_VIRTUELLE_INCONNUE = "BACKEND_2213";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_CODE_EFS_VIDE = "BACKEND_2206";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_CODE_SECRET_INCORRECT = "BACKEND_2319";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_CODE_SI_VIDE = "BACKEND_2205";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_CONTRAT_CARTE_VIDE = "BACKEND_2196";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_CONTRAT_CARTE_VIRTUELLE_VIDE = "BACKEND_2212";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_DATE_EXP_CARTE_REELLE_VIDE = "BACKEND_2195";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_DATE_EXP_CARTE_VIRTUELLE_VIDE = "BACKEND_2194";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_DEMANDE_BLOCAGE = "BACKEND_2322";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_DUREE_INCORRECTE = "BACKEND_2207";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_MDP_INCORRECT = "BACKEND_2318";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_MONTANT_INCORRECT = "BACKEND_2208";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_NON_IDENTIFIEE = "BACKEND_2210";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_NO_ANR = "BACKEND_2308";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_PERSONNE_INCONNUE = "BACKEND_2192";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_PLAFOND_MONTANT_NON_NUL = "BACKEND_2204";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_PLAFOND_MONTANT_NUL = "BACKEND_2203";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_PLAFOND_MONTANT_VIDE = "BACKEND_2202";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_PLAFOND_UTILISATION_NON_NUL = "BACKEND_2201";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_PLAFOND_UTILISATION_NUL = "BACKEND_2200";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_PLAFOND_UTILISATION_VIDE = "BACKEND_2199";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_PORTEUR_CARTE = "BACKEND_2323";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_RECHERCHE_CODE_SI_IMPOSSIBLE = "BACKEND_2211";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_RESEAU_CARTE_REELLE_INCONNU = "BACKEND_2191";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_RESSOURCE_INDISPONIBLE = "BACKEND_2209";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_SCORING_IMPOSSIBLE = "BACKEND_2321";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_SERVAU_ACCES_BLOQUE = "BACKEND_2315";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_SERVAU_ACCES_CLOS = "BACKEND_2316";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_SERVAU_ACCES_NON_OPERATIONNEL = "BACKEND_2313";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_SERVAU_COMPTE_INTROUVABLE = "BACKEND_2312";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_SERVAU_DERNIERE_TENTATIVE = "BACKEND_2314";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_SERVAU_INCONNUE = "BACKEND_2317";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_SERVAU_PARAMETRES = "BACKEND_2311";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_TYPE_CARTE_VIRTUELLE_INCONNU = "BACKEND_2198";
public static final String CD_ERR_FUNC_CARTEVIRTUELLE_TYPE_CARTE_VIRTUELLE_VIDE = "BACKEND_2197";
public static final String CD_ERR_FUNC_CHECK_INTEGRITY_TOKEN = "BACKEND_2100";
public static final String CD_ERR_FUNC_CMD_CHEQUIER_COTATION_BALE_INSUFFISANTE = "BACKEND_2051";
public static final String CD_ERR_FUNC_CMD_CHEQUIER_JUSTIFICATIFS_INCORRECTS = "BACKEND_2050";
public static final String CD_ERR_FUNC_COMPTE_NON_TROUVE = "BACKEND_2184";
public static final String CD_ERR_FUNC_COTITULAIRE_INCONNU = "BACKEND_2091";
public static final String CD_ERR_FUNC_CTRL_MNT_VI = "BACKEND_2009";
public static final String CD_ERR_FUNC_DELAI_PREMIER_VERSEMENT_PROGRAMME = "BACKEND_2138";
public static final String CD_ERR_FUNC_DEMO_NOT_ALLOWED = "BACKEND_2186";
public static final String CD_ERR_FUNC_DEMO_NOT_IMPLEMENTED = "BACKEND_2185";
public static final String CD_ERR_FUNC_DISPENSE_PRELEMENT_ELIGIBILITE_COMPTE = "BACKEND_2303";
public static final String CD_ERR_FUNC_DISPENSE_PRELEMENT_ELIGIBILITE_FRANCE = "BACKEND_2302";
public static final String CD_ERR_FUNC_DISPENSE_PRELEMENT_ELIGIBILITE_INDIVISION = "BACKEND_2301";
public static final String CD_ERR_FUNC_DISPENSE_PRELEMENT_ELIGIBILITE_MAJEUR = "BACKEND_2300";
public static final String CD_ERR_FUNC_DOUBLON_VIREMENT = "BACKEND_2335";
public static final String CD_ERR_FUNC_ELIGIBILITE1 = "BACKEND_2001";
public static final String CD_ERR_FUNC_ELIGIBILITE2 = "BACKEND_2002";
public static final String CD_ERR_FUNC_FAVORIS_LIBELLE_INCORRECT = "BACKEND_2126";
public static final String CD_ERR_FUNC_FORCE_UPDATE = "BACKEND_2327";
public static final String CD_ERR_FUNC_INADEQUATION_DATE_NAISSANCE_CODE_ACCES = "BACKEND_2122";
public static final String CD_ERR_FUNC_INADEQUATION_PAYS_NAISSANCE_CODE_ACCES = "BACKEND_2307";
public static final String CD_ERR_FUNC_INADEQUATION_VILLE_NAISSANCE_CODE_ACCES = "BACKEND_2306";
public static final String CD_ERR_FUNC_INCOHERENCE_RECHERCHE_EVENEMENT = "BACKEND_2324";
public static final String CD_ERR_FUNC_INTERLOCUTEURS_INCOHERENCE_CD_ACCES_ET_NO_PERS = "BACKEND_2115";
public static final String CD_ERR_FUNC_LIBELLE_BLANK = "BACKEND_2333";
public static final String CD_ERR_FUNC_LIST_PERS_EXISTE = "BACKEND_2116";
public static final String CD_ERR_FUNC_MAJ_TARIF_COMPTE_COURTAGE_INTERDIT = "BACKEND_2063";
public static final String CD_ERR_FUNC_MAJ_TARIF_COMPTE_ERREUR = "BACKEND_2066";
public static final String CD_ERR_FUNC_MAJ_TARIF_COMPTE_TRADER_300 = "BACKEND_2062";
public static final String CD_ERR_FUNC_MAJ_TARIF_MODIFICATION_CRD = "BACKEND_2065";
public static final String CD_ERR_FUNC_MONO_DETENTEUR_AVIE = "BACKEND_2010";
public static final String CD_ERR_FUNC_MOT_DE_PASSE_ANCIEN_VIDE = "BACKEND_2160";
public static final String CD_ERR_FUNC_MOT_DE_PASSE_CHIFFRE_INVALIDE = "BACKEND_2155";
public static final String CD_ERR_FUNC_MOT_DE_PASSE_FORMAT_INVALIDE = "BACKEND_2164";
public static final String CD_ERR_FUNC_MOT_DE_PASSE_LONGUEUR_INVALIDE = "BACKEND_2163";
public static final String CD_ERR_FUNC_MOT_DE_PASSE_NOUVEAU_EGAL_ANCIEN = "BACKEND_2162";
public static final String CD_ERR_FUNC_MOT_DE_PASSE_NOUVEAU_VIDE = "BACKEND_2161";
public static final String CD_ERR_FUNC_NB_MAX_FAVORIS = "BACKEND_2128";
public static final String CD_ERR_FUNC_NI_ADRESSE_NI_TELEPHONE = "BACKEND_2124";
public static final String CD_ERR_FUNC_NON_RESIDENT_FISCAL = "BACKEND_2168";
public static final String CD_ERR_FUNC_NO_GSM_NON_ASSOCIE_ACCES = "BACKEND_2121";
public static final String CD_ERR_FUNC_OUVERTURE_COMPTE_A_ZERO_EN_COURS = "BACKEND_2330";
public static final String CD_ERR_FUNC_PARAMETRE_VIDE = "BACKEND_2165";
public static final String CD_ERR_FUNC_PERSONNE_INEXISTANTE_HOST = "BACKEND_2112";
public static final String CD_ERR_FUNC_PFFICTIF_ACCES_NON_AUTORISE = "BACKEND_2218";
public static final String CD_ERR_FUNC_PFFICTIF_NOMBRE_MAX = "BACKEND_2187";
public static final String CD_ERR_FUNC_PFFICTIF_NOMBRE_VALEURS_MAX = "BACKEND_2188";
public static final String CD_ERR_FUNC_PFFICTIF_REQUETE_BASE_KO = "BACKEND_2217";
public static final String CD_ERR_FUNC_PFFICTIF_SOLDE_NEGATIF = "BACKEND_2220";
public static final String CD_ERR_FUNC_PFFICTIF_SUPPRESSION_NONAUTORISEE = "BACKEND_2189";
public static final String CD_ERR_FUNC_PFFICTIF_TYPE_NON_SOUSCRIT = "BACKEND_2223";
public static final String CD_ERR_FUNC_PFFICTIF_TYPE_NO_COMPTE_BOURSE = "BACKEND_2224";
public static final String CD_ERR_FUNC_PFFICTIF_VENTE_SUPERIEURE_DETENUE = "BACKEND_2219";
public static final String CD_ERR_FUNC_PF_HEURE_LIMITE_DEPASSEE = "BACKEND_2221";
public static final String CD_ERR_FUNC_PLAFOND_DATE_PRELEVEMENT_PREMIER_VERSEMENT_PROGRAMME = "BACKEND_2146";
public static final String CD_ERR_FUNC_PLAFOND_DATE_VERSEMENT_INITIAL = "BACKEND_2144";
public static final String CD_ERR_FUNC_PLAFOND_DATE_VIREMENT_PREMIER_VERSEMENT_PROGRAMME = "BACKEND_2147";
public static final String CD_ERR_FUNC_PLAFOND_VI_DEPASSE = "BACKEND_2140";
public static final String CD_ERR_FUNC_PLAFOND_VP_DEPASSE = "BACKEND_2142";
public static final String CD_ERR_FUNC_PLANCHER_DATE_PRELEVEMENT_VERSEMENT_INITIAL = "BACKEND_2143";
public static final String CD_ERR_FUNC_PLANCHER_DATE_PRELEVEMENT_VERSEMENT_PROGRAMME = "BACKEND_2145";
public static final String CD_ERR_FUNC_PLANCHER_DATE_VIREMENT_PREMIER_VERSEMENT_PROGRAMME = "BACKEND_2148";
public static final String CD_ERR_FUNC_PLANCHER_VI_NON_ATTEINT = "BACKEND_2139";
public static final String CD_ERR_FUNC_PLANCHER_VP_NON_ATTEINT = "BACKEND_2141";
public static final String CD_ERR_FUNC_RECIF = "BACKEND_2040";
public static final String CD_ERR_FUNC_RECUP_REVENUS = "BACKEND_2005";
public static final String CD_ERR_FUNC_RIB_ANR = "BACKEND_2328";
public static final String CD_ERR_FUNC_SERVICE_EXISTE = "BACKEND_2129";
public static final String CD_ERR_FUNC_SERVICE_INCOMPATIBLE_COMPTE = "BACKEND_2130";
public static final String CD_ERR_FUNC_SIMULATION_INEXISTANTE = "BACKEND_2167";
public static final String CD_ERR_FUNC_SOLDE_COMPTE_A_DEBITER_INSUFFISANT = "BACKEND_2136";
public static final String CD_ERR_FUNC_SOUSCIPTION_INTRODUCTION = "BACKEND_2110";
public static final String CD_ERR_FUNC_SOUSCRIPTION_LIVRETA_AUCUNCOMPTE_VIREMENT = "BACKEND_2185";
public static final String CD_ERR_FUNC_SOUSCRIPTION_LIVRETA_AUCUNCOMPTE_VIREMENT_MINEUR = "BACKEND_2186";
public static final String CD_ERR_FUNC_SOUS_INTRO_AUCUNE_VALEUR = "BACKEND_2104";
public static final String CD_ERR_FUNC_SOUS_INTRO_PAS_NON_RESPECTE = "BACKEND_2109";
public static final String CD_ERR_FUNC_SOUS_INTRO_PEA_INTERDITE = "BACKEND_2106";
public static final String CD_ERR_FUNC_SOUS_INTRO_RESIDENCE = "BACKEND_2107";
public static final String CD_ERR_FUNC_SOUS_INTRO_VALEUR_MINIMALE = "BACKEND_2108";
public static final String CD_ERR_FUNC_SOUS_INTRO_VALEUR_NEGATIVE = "BACKEND_2105";
public static final String CD_ERR_FUNC_SPCONTROL = "BACKEND_2039";
public static final String CD_ERR_FUNC_UPDATE_EMAIL = "BACKEND_2007";
public static final String CD_ERR_FUNC_UPDATE_INFOS = "BACKEND_2008";
public static final String CD_ERR_FUNC_UPDATE_REVENUS = "BACKEND_2006";
public static final String CD_ERR_FUNC_VALEUR_VIDE = "BACKEND_2004";
public static final String CD_ERR_FUNC_VILLE_REQUISE_REEDITION_MDP = "BACKEND_2334";
public static final String CD_ERR_HISTORIQUE_OST_KO = "BACKEND_2172";
public static final String CD_ERR_INSERTION_AFFAIRE_ACTION_AUTO = "BACKEND_2031";
public static final String CD_ERR_INSERTION_PROSPECT = "BACKEND_2034";
public static final String CD_ERR_LISTE_INSTRUCTIONS_OST_KO = "BACKEND_2170";
public static final String CD_ERR_LISTE_OST_EN_COURS_KO = "BACKEND_2169";
public static final String CD_ERR_MISE_A_JOUR_ACTION = "BACKEND_2036";
public static final String CD_ERR_MISE_A_JOUR_AFFAIRE = "BACKEND_2037";
public static final String CD_ERR_MISE_A_JOUR_CLIENT = "BACKEND_2032";
public static final String CD_ERR_MISE_A_JOUR_PROSPECT = "BACKEND_2035";
public static final String CD_ERR_NO_BACKUP_PHONES = "BACKEND_2080";
public static final String CD_ERR_NO_PHONES_AFTER_FILTER = "BACKEND_2089";
public static final String CD_ERR_OPCVM_CATEGORIE_INEXISTANTE = "BACKEND_2305";
public static final String CD_ERR_OST_MENTION_NON_AUTORISE = "BACKEND_10131";
public static final String CD_ERR_OST_QUANTITE_TROP_IMPORTANTE = "BACKEND_10122";
public static final String CD_ERR_OST_VALEUR_NON_NEGOCIABLE = "BACKEND_10266";
public static final String CD_ERR_OTP_EXPIRE = "BACKEND_2082";
public static final String CD_ERR_OTP_VIDE = "BACKEND_2086";
public static final String CD_ERR_PASSAGE_ORDRE = "BACKEND_2039";
public static final String CD_ERR_PASSAGE_ORDRE_PREPARE = "BACKEND_2041";
public static final String CD_ERR_PHONE_NOT_EXIST = "BACKEND_2088";
public static final String CD_ERR_RECHERCHE_OST_KO = "BACKEND_2171";
public static final String CD_ERR_REFERENCE_CONSO_INEXISTANTE = "BACKEND_2030";
public static final String CD_ERR_RIB_FORTUNEO = "BACKEND_2103";
public static final String CD_ERR_SECURITE_FORTE_INDISPONIBLE = "BACKEND_2085";
public static final String CD_ERR_SECU_FORTE_DERNIERE_TENTATIVE = "BACKEND_2083";
public static final String CD_ERR_SECU_FORTE_INDISPONIBLE = "BACKEND_2081";
public static final String CD_ERR_SUPP_AFFAIRE = "BACKEND_2033";
public static final String CD_ERR_SUPP_DOSSIER = "BACKEND_2038";
public static final String CD_ERR_SYNTHESE_SAVHEOL = "BACKEND_2060";
public static final String CD_ERR_TECH_INCONNUE = "BACKEND_1001";
public static final String CD_ERR_TECH_TIMEOUT = "BACKEND_1002";
public static final String CD_ERR_TECH_VIDE = "BACKEND_2111";
public static final String CD_ERR_VALIDATION_CONTRAT_AUTO_CONSO = "BACKEND_2200";
public static final String CD_INTERDIT_BANCAIRE = "BACKEND_2003";
public static final String ERREUR_MISE_A_JOUR_PROFIL_SITE = "BACKEND_2150";
public static final String ERROR_LIST_EXISTS = "BACKEND_2024";
public static final String ERROR_VALEUR_ALREADY_IN_LIST = "BACKEND_2025";
public static final String LIST_PERSO_ERROR = "BACKEND_2021";
public static final String LIST_PERSO_EXISTS = "BACKEND_2022";
public static final String VALEUR_ALREADY_IN_LIST = "BACKEND_2023";
fortuneo.thrift
:
struct DeviceInfos {
1: string libelleAppli,
2: string versionAppli,
3: string osName,
4: string osVersion,
5: string media,
}
struct DeviceProperties {
1: optional string macAddress,
2: string serialNumber,
3: optional string imei,
4: optional string phoneNumber,
5: string model,
6: string vendor,
7: optional string uuid,
}
enum Media {
NONE = 0,
SVI = 1,
WEB = 2,
SMARTPHONE= 3,
WAP = 4,
IMODE = 5,
MINITEL = 6,
CVD = 7,
FTO_BV = 8,
IPHONE = 9,
IPAD = 10,
APPLET_ARIANE = 11,
ANDROID = 12,
ANDROID_TABLETTE = 13
}
struct OTP {
1: string otp,
2: string codeAcces,
3: Media media,
}
struct SecureToken {
1: string token,
2: string uuid,
3: string hashNumeroPersonne,
4: string refreshToken,
}
struct SecureTokenRequest {
1: SecureToken secureToken,
2: OTP otp,
3: string infosMobiles,
4: DeviceInfos device
}
struct AccesRequest {
1: string codeAcces,
2: string password,
3: optional string numeroPersonne,
4: optional string email,
5: bool getOptionalDatas,
6: string media,
7: string uuid,
8: Device device,
9: optional string fingerPrint,
}
struct Device {
1: optional i64 id,
2: string name,
3: DeviceProperties deviceProperties,
4: optional string media,
5: optional string biometryActivationState,
}
struct SituationProfessionnellePersonnePhysique {
1: string codeProfession,
2: string codeStatutProfessionnel,
3: double montantRevenusNetsMensuels,
4: string secteurActivite,
5: string patrimoineNet,
6: string libelleProfession,
}
enum Civilite {
INCONNU = 0,
MONSIEUR = 1,
MADAME = 2,
MADEMOISELLE = 3,
AUTRE = 4
}
struct Adresse {
1: string adresse,
2: string complementAdresse,
3: string lieuDitBP,
4: string ville,
5: string codePostal,
6: string pays,
7: string codePays,
8: string codeEtatAdresse,
9: string codeINSEE,
10: string numeroCommuneINSEE,
11: string codePaysCRM,
12: bool estAdresseNormalisee,
}
struct Personne {
1: string nom,
2: string preNom,
3: Civilite civilite,
4: i32 dateDeNaissance,
5: string capaciteJuridique,
6: string numeroPersonne,
7: string villeDeNaissance,
8: string paysNaissance,
9: string paysNationalite,
10: string email,
11: string numTelPrincipal,
12: string numTelPortable,
13: Adresse adressePostale,
14: Adresse adresseFiscale,
15: string nomJeuneFille,
16: string departementDeNaissance,
17: string codeAcces,
18: SituationProfessionnellePersonnePhysique situationProfessionnellePersonnePhysique,
19: string codeParrain,
20: string identifiantCRM,
}
struct Acces {
1: string numeroPersonne,
2: string codeAcces,
3: Personne personne,
4: i32 dateDerniereConnexion,
5: Media mediaDerniereConnexion,
}
struct PasswordProperties {
1: bool outdated,
2: i16 nbChangePasswordDifferAvailable
}
enum EtatMigrationAcces {
NA = 0,
PREMIERE_CONNEXION_ANCIEN_ACCES = 1,
PHASE_TRANSITOIRE = 2,
PHASE_BLOCAGE = 3,
TERMINEE = 4,
PREMIERE_CONNEXION_NOUVEL_ACCES = 5
}
struct AccesSecureResponse {
1: Acces acces,
2: SecureToken secureToken,
3: PasswordProperties passwordProperties,
4: EtatMigrationAcces etatMigratioAcces,
}
struct MiseAJourMotDePasseRequest {
1: string codeAcces,
2: string ancienMotDePasse,
3: string nouveauMotDePasse
}
exception TechnicalException {
1: string code,
2: string message,
3: string parametres,
4: string hostName,
5: string stringStackTrace
}
exception FunctionnalException {
1: string code,
2: string message
}
struct ValiderPremiereConnexionNouvelAccesRequest {
1: string codeAcces,
2: string numeroPersonne
}
struct ValiderPremiereConnexionAncienAccesRequest {
1: string codeAcces,
2: string numeroPersonne
}
service PartenaireAcces {
AccesSecureResponse checkAccesSmartphone(1:AccesRequest accesRequest) throws (1:TechnicalException te, 2:FunctionnalException fe)
AccesSecureResponse checkAccesSVI(1:AccesRequest accesRequest) throws (1:TechnicalException te, 2:FunctionnalException fe)
AccesSecureResponse activateOAuth(1:AccesRequest accesRequest) throws (1:TechnicalException te, 2:FunctionnalException fe)
AccesSecureResponse checkAccessOAuth(1:SecureTokenRequest secureTokenRequest) throws (1:TechnicalException te, 2:FunctionnalException fe)
void desactivateOAuth(1:SecureTokenRequest secureTokenRequest) throws (1:TechnicalException te, 2:FunctionnalException fe)
void disconnectSmartphone(1:SecureTokenRequest secureTokenRequest) throws (1:TechnicalException te, 2:FunctionnalException fe)
void miseAJourMotDePasse(1:MiseAJourMotDePasseRequest miseAJourMotDePasseRequest) throws (1:TechnicalException te, 2:FunctionnalException fe)
void validerPremiereConnexionAncienAcces(1:ValiderPremiereConnexionAncienAccesRequest validerPremiereConnexionAncienAccesRequest, 2:SecureTokenRequest secureTokenRequest) throws (1:TechnicalException te, 2:FunctionnalException fe)
void validerPremiereConnexionNouvelAcces(1:ValiderPremiereConnexionNouvelAccesRequest validerPremiereConnexionNouvelAccesRequest, 2:SecureTokenRequest secureTokenRequest) throws (1:TechnicalException te, 2:FunctionnalException fe)
void validerSecuriteForteConnexion(1:SecureTokenRequest secureTokenRequest) throws (1:TechnicalException te, 2:FunctionnalException fe)
}
struct Categorie {
1: string identifiant,
2: string nomCategorie
}
struct Groupe {
1: string identifiant,
2: string nomGroupe,
3: list<Categorie> listeCategories
}
struct GroupQuestionResponse {
1: list<Groupe> listeGroupe
}
struct ListeQuestionRequest {
1: list<Categorie> listeCategories,
2: string identifiantGroupe
}
struct Reponse {
1: string contenu,
2: string permalien
}
struct Question {
1: string identifiant,
2: string titre,
3: string contenu,
4: string permalien,
5: list<Reponse> reponses,
6: i32 dateDerniereMiseAJour,
7: bool star,
8: i16 indiceUtilite
}
struct ListeQuestionsResponse {
1: list<Question> questions
}
struct ListeQuestionCategorieRequest {
1: string identifiantCategorie,
2: i16 offset,
3: i16 nombreResultat
}
struct ReponsesSaisiesRequest {
1: Question question
}
struct ReponsesSaisiesResponse {
1: list<Reponse> reponses
}
service FAQ {
GroupQuestionResponse getGroupeQestions() throws (1:TechnicalException te, 2:FunctionnalException fe)
ListeQuestionsResponse getQestionsALaUne(1:ListeQuestionRequest listeQuestionRequest) throws (1:TechnicalException te, 2:FunctionnalException fe)
ListeQuestionsResponse getQestionsParCategorie(1:ListeQuestionCategorieRequest listeQuestionCategorieRequest) throws (1:TechnicalException te, 2:FunctionnalException fe)
ReponsesSaisiesResponse getReponsesSaisies(1:ReponsesSaisiesRequest reponsesSaisiesRequest) throws (1:TechnicalException te, 2:FunctionnalException fe)
}
enum YesNo {
YES = 0,
NO = 1,
UNKNOWN = 2
}
enum AccesFees {
UNKNOWN = 0,
DOMESTIC = 1,
INTERNATIONAL = 2,
DOMESTIC_AND_INTERNATIONAL = 3,
NO_FEE = 4
}
enum Availability {
UNKNOWN = 0,
ALWAYS_AVAILABLE = 1,
BUSINESS_HOURS = 2,
IRREGULAR_HOURS = 3
}
enum DistanceUnit {
MILE = 0,
KILOMETER = 1
}
enum LocationTypeEnum {
OTHER = 0,
AIRPORT = 1,
HOSPITAL = 2,
FINANCIAL_INSTITUTION = 3
}
struct LocationType {
1: LocationTypeEnum type,
2: string airportCode
}
struct AtmGeoLocation {
1: double latitude,
2: double longitude
}
struct Country {
1: string name,
2: string code
}
struct Address {
1: string addressLine1,
2: string addressLine2,
3: string city,
4: string postalCode,
5: Country countrySubdivision,
6: Country country
}
struct Location {
1: string name,
2: double distance,
3: DistanceUnit distanceUnit,
4: Address address,
5: AtmGeoLocation point,
6: LocationType locationType
}
enum SurchargeFreeAllianceNetwork {
DOES_NOT_PARTICIPATE_IN_SFA = 0,
ALLPOINT_PREPAID = 1,
MONEYPASS_DEBIT = 2,
ALL_SURCHARGE_FREE = 3
}
struct Atm {
1: Location location,
2: YesNo handicapAccessible,
3: YesNo camera,
4: Availability availability,
5: AccesFees accessFees,
6: string owner,
7: YesNo sharedDeposit,
8: YesNo surchargeFreeAlliance,
9: SurchargeFreeAllianceNetwork surchargeFreeAllianceNetwork,
10: string sponsor,
11: YesNo supportEMV,
12: YesNo internationalMaestroAccepted
}
struct Atms {
1: i16 pageOffset,
2: i16 totalCount,
3: list<Atm> atmList
}
struct FindAtmsResponse {
1: Atms amtList
}
struct AtmPagination {
1: i16 pageOffset,
2: i16 pageLength
}
struct QueryParameters {
1: optional AtmPagination pagination,
2: optional Address address,
3: optional AtmGeoLocation point,
4: optional DistanceUnit distanceUnit,
5: optional i16 radius,
6: optional YesNo supportEMV,
7: optional YesNo internationalMaestroAccepted
}
struct FindAtmsRequest {
1: QueryParameters queryParameters
}
service GeoGabs {
FindAtmsResponse findAtms(1:FindAtmsRequest findAtmsRequest) throws (1:TechnicalException te, 2:FunctionnalException fe)
}
fortuneo.py
:
import thriftpy2
from thriftpy2.http import make_client, THttpHeaderFactory
fortuneo = thriftpy2.load("fortuneo.thrift")
client = make_client(fortuneo.PartenaireAcces, url='https://api.fortuneo.fr/passerelle/1/partenaire/acces/', port = 443, timeout = 20000, http_header_factory = THttpHeaderFactory({
'apikey': 'Jg8HUU2jexfdbpbTFJXFHPEEY0kZf9va',
'User-Agent': 'fortuneo-9.5.2.3184_prod'
}))
request = fortuneo.AccesRequest(
codeAcces = "12345678",
password = "password",
getOptionalDatas = False,
media = "ANDROID",
uuid = "9664d56d682e549c",
device = fortuneo.Device(
name = "Pixel 3",
deviceProperties = fortuneo.DeviceProperties(
serialNumber = "9664d56d682e549c",
model = "Pixel 3",
vendor = "GOOGLE"
)
)
)
request = client.checkAccesSmartphone(request)
Requirements:
$ pip install thriftpy2