endi.plugins.sap_urssaf3p.models.services package¶
Submodules¶
endi.plugins.sap_urssaf3p.models.services.payment_request module¶
- class endi.plugins.sap_urssaf3p.models.services.payment_request.RejectStatus(code: str, category: str, label: str)¶
Bases :
object
- class endi.plugins.sap_urssaf3p.models.services.payment_request.RequestStatus(urssaf_status_code: str, title: str, description: str, endi_status: str, payment_recovery: bool = False)¶
Bases :
object
- class endi.plugins.sap_urssaf3p.models.services.payment_request.URSSAFPaymentRequestService¶
Bases :
objectCf Documentation-API-TiersPrestation_v1-1-7.pdf - 4.3 Statuts de la demande de paiement - 3.3.3 Description de la réponse
- REJECT_MAP = {'ANNUL_AUTRE': RejectStatus(code='ANNUL_AUTRE', category='Annulation', label='Autre motif'), 'ANNUL_DBL': RejectStatus(code='ANNUL_DBL', category='Annulation', label='Demande de paiement en doublon'), 'ANNUL_ERR_MNT': RejectStatus(code='ANNUL_ERR_MNT', category='Annulation', label='Montant facturé erroné'), 'ANNUL_ERR_TECH': RejectStatus(code='ANNUL_ERR_TECH', category='Annulation', label='Erreur technique'), 'CONTEST_AUTRE': RejectStatus(code='CONTEST_AUTRE', category='Contestation', label='Autre motif'), 'CONTEST_ERR_FACT': RejectStatus(code='CONTEST_ERR_FACT', category='Contestation', label='La facture comporte une erreur'), 'CONTEST_FACT_REGLEE': RejectStatus(code='CONTEST_FACT_REGLEE', category='Contestation', label='La facture a déjà été réglée'), 'REGUL_AUTRE': RejectStatus(code='REGUL_AUTRE', category='Régularisation', label='Autre motif'), 'REGUL_MNT_FACT': RejectStatus(code='REGUL_MNT_FACT', category='Régularisation', label='Erreur sur le montant facturé et/ou sur le tarif indiqué pour la prestation'), 'REGUL_NB_QTE_FACT': RejectStatus(code='REGUL_NB_QTE_FACT', category='Régularisation', label="Nombre d'heures ou quantités facturées erronées"), 'REGUL_PRESTA_FACT': RejectStatus(code='REGUL_PRESTA_FACT', category='Régularisation', label='Erreur sur les prestations facturées')}¶
- REJECT_STATUSES = [RejectStatus(code='REGUL_MNT_FACT', category='Régularisation', label='Erreur sur le montant facturé et/ou sur le tarif indiqué pour la prestation'), RejectStatus(code='REGUL_NB_QTE_FACT', category='Régularisation', label="Nombre d'heures ou quantités facturées erronées"), RejectStatus(code='REGUL_PRESTA_FACT', category='Régularisation', label='Erreur sur les prestations facturées'), RejectStatus(code='REGUL_AUTRE', category='Régularisation', label='Autre motif'), RejectStatus(code='CONTEST_ERR_FACT', category='Contestation', label='La facture comporte une erreur'), RejectStatus(code='CONTEST_FACT_REGLEE', category='Contestation', label='La facture a déjà été réglée'), RejectStatus(code='CONTEST_AUTRE', category='Contestation', label='Autre motif'), RejectStatus(code='ANNUL_DBL', category='Annulation', label='Demande de paiement en doublon'), RejectStatus(code='ANNUL_ERR_MNT', category='Annulation', label='Montant facturé erroné'), RejectStatus(code='ANNUL_ERR_TECH', category='Annulation', label='Erreur technique'), RejectStatus(code='ANNUL_AUTRE', category='Annulation', label='Autre motif')]¶
- STATUSES = [RequestStatus(urssaf_status_code='10', title='Intégrée', description="La demande de paiement a été reçue et acceptée par l'URSSAF.", endi_status='waiting', payment_recovery=False), RequestStatus(urssaf_status_code='20', title='En attente de validation', description="Le client a été prévenu qu'il doit valider ou rejeter la demande de paiement.", endi_status='waiting', payment_recovery=False), RequestStatus(urssaf_status_code='30', title='Validée', description='La demande de paiement a été validée par le client et le prélèvement a été initié.', endi_status='waiting', payment_recovery=False), RequestStatus(urssaf_status_code='40', title='Refusée', description='La demande de paiement a été refusée par le client.', endi_status='aborted', payment_recovery=False), RequestStatus(urssaf_status_code='50', title='Prélevée', description='Le prélèvement de la demande de paiement est en cours.', endi_status='waiting', payment_recovery=False), RequestStatus(urssaf_status_code='60', title='En refus de prélèvement', description='Le prélèvement de la demande de paiement est revenu en erreur.La demande de paiement est en impayé.', endi_status='payment_issue', payment_recovery=False), RequestStatus(urssaf_status_code='70', title='Payée', description='La demande de paiement a été payée au prestataire.', endi_status='resulted', payment_recovery=False), RequestStatus(urssaf_status_code='110', title='Annulée', description='La demande de paiement a été annulée suite à une demande motivée du prestataire.', endi_status='aborted', payment_recovery=False), RequestStatus(urssaf_status_code='111', title='Annulée après impayé', description='La demande de paiement a été annulée après impayé du client.', endi_status='aborted', payment_recovery=False), RequestStatus(urssaf_status_code='112', title='Annulée après recouvrement', description='La demande de paiement a été annulée après recouvrement par le prestataire.', endi_status='aborted', payment_recovery=True), RequestStatus(urssaf_status_code='120', title='Recouvrée', description='La demande de paiement en impayé a été recouvrée par le prestataire.', endi_status='aborted', payment_recovery=True)]¶
- URSSAF_MAP = {'10': RequestStatus(urssaf_status_code='10', title='Intégrée', description="La demande de paiement a été reçue et acceptée par l'URSSAF.", endi_status='waiting', payment_recovery=False), '110': RequestStatus(urssaf_status_code='110', title='Annulée', description='La demande de paiement a été annulée suite à une demande motivée du prestataire.', endi_status='aborted', payment_recovery=False), '111': RequestStatus(urssaf_status_code='111', title='Annulée après impayé', description='La demande de paiement a été annulée après impayé du client.', endi_status='aborted', payment_recovery=False), '112': RequestStatus(urssaf_status_code='112', title='Annulée après recouvrement', description='La demande de paiement a été annulée après recouvrement par le prestataire.', endi_status='aborted', payment_recovery=True), '120': RequestStatus(urssaf_status_code='120', title='Recouvrée', description='La demande de paiement en impayé a été recouvrée par le prestataire.', endi_status='aborted', payment_recovery=True), '20': RequestStatus(urssaf_status_code='20', title='En attente de validation', description="Le client a été prévenu qu'il doit valider ou rejeter la demande de paiement.", endi_status='waiting', payment_recovery=False), '30': RequestStatus(urssaf_status_code='30', title='Validée', description='La demande de paiement a été validée par le client et le prélèvement a été initié.', endi_status='waiting', payment_recovery=False), '40': RequestStatus(urssaf_status_code='40', title='Refusée', description='La demande de paiement a été refusée par le client.', endi_status='aborted', payment_recovery=False), '50': RequestStatus(urssaf_status_code='50', title='Prélevée', description='Le prélèvement de la demande de paiement est en cours.', endi_status='waiting', payment_recovery=False), '60': RequestStatus(urssaf_status_code='60', title='En refus de prélèvement', description='Le prélèvement de la demande de paiement est revenu en erreur.La demande de paiement est en impayé.', endi_status='payment_issue', payment_recovery=False), '70': RequestStatus(urssaf_status_code='70', title='Payée', description='La demande de paiement a été payée au prestataire.', endi_status='resulted', payment_recovery=False)}¶
- WATCHING_DELAY = datetime.timedelta(days=7)¶
- classmethod should_watch_expression(cls)¶
- classmethod should_watch_property(obj: URSSAFPaymentRequest) bool¶
Should we continue to watch this request against the URSSAF_API
checking the status is not enough since « paid » status can be or not a final status
- classmethod update_from_reject_data(reject_code: str, reject_comment: str, obj: URSSAFPaymentRequest) bool¶
Mutate URSSAF payment request after receiving reject data
- Renvoie:
True if obj was updated
- classmethod update_from_transfer_data(obj: URSSAFPaymentRequest, transfer_date: str, transfer_amount: Optional[str] = None) bool¶
Mutate URSSAF payment request after receiving transfer data
- Renvoie:
True if obj was updated
- classmethod update_from_urssaf_status_code(urssaf_status_code: str, obj: URSSAFPaymentRequest) bool¶
Mutate URSSAF payment request after receiving a new status code from URSSAF
- Renvoie:
True if this was a new status and obj was updated.