API v2
Aggiornamenti principali rispetto all'API v1
Introduzione di campi "standard"
Con la versione 2 delle API di configurazione sono stati introdotti dei campi da introdurre obbligatoriamente in ogni integrazione.
Tenant
I campi da introdurre obbligatoriamente a livello di configurazione del tenant sono:
id: identificativo univoco del tenantname: nome del tenanttax_identification_number: codice fiscale dell'ente
id
UUID
Identificativo univoco
name
String
Non vuoto, massimo 255 caratteri
tax_identification_number
String
Codice fiscale valido
Configurazione pagamento
I campi da introdurre obbligatoriamente a livello di configurazione del pagamento sono:
id: questo campo è già presente, tuttavia a differenza della v1 delle API, andrà generato dal proxy di pagamento. Importante sottolineare che ciò non toglie la possibilità per chi chiama l'API di indicare l'id, quindi, se viene indicato l'id da chi chiama l'API, si controlla che questo non sia già presente, se non lo è si inserisce la configurazione, se invece non viene specificato l'id da chi chiama l'API, allora è il proxy a generarlo sul momento.payment_type: tipo di pagamento, può assumere i valoripagopaostamp, serve a distinguere tra un pagamento ordinario (es. TARI) e una marca da bollo digitale. Questa distinzione è necessaria in quanto in alcuni intermediare i metodi di creazione di un pagamento di una marca da bollo digitale differiscono da quelli di creazione di un pagamento ordinario.remote_collection.id: identificativo della collezione di provenienza della configurazione di pagamento.remote_collection.type: tipo di collezione di provenienza della configurazione di pagamento, può assumere valori qualiapplication,serviceo altro.amount: importo del pagamento configurato.reason: causale del pagamento configuratoexpire_at: numero di giorni di validità del pagamentoreceiver.tax_identification_number: codice fiscale del beneficiario del pagamento, da usare in caso di pagamenti multibeneficiarioreceiver.name: nome del beneficiario del pagamento, da usare in caso di pagamenti multibeneficiariocollection_data: tassonomia di pagoPA dei pagamenti
payment_type
Enum
Valori: PAGOPA, STAMP
remote_collection.id
UUID
Identificativo univoco
remote_collection.type
String
Valori: application, service, altro
amount
float
Maggiore di 0
reason
String
Non vuoto, massimo 255 caratteri
expire_at
int
Maggiore di 0
receiver.tax_identification_number
String
Codice fiscale valido
receiver.name
String
Non vuoto, massimo 255 caratteri
collection_data
String
Tassonomia pagoPA valida
Configurazione tenant
L'admin, dall'interfaccia di configurazione dei pagamenti della Stanza del Cittadino compila la configurazione mediante una form, il cui json schema è servito dall'API /tenants/schema

Lo schema della form sopra riportata è il seguente
Premendo poi il bottone Salva, viene eseguita una POST /tenants servita dal proxy, con payload
Per modificare una configurazione esistente, il proxy serve l'API PUT /tenants/{tenant_id} e PATCH /tenants/{tenant_id}
Per eliminare una configurazione esistente, il proxy serve l'API DELETE /tenants/{tenant_id} . In questo caso l'eliminazione è una soft-delete, ovvero la configurazione viene semplicemente disattivata settando il parametro active a false ed eliminando la configurazione dalla memoria ma non dallo storage.
Configurazione pagamento
L'admin, dall'interfaccia di configurazione dei pagamenti per un servizio compila la configurazione mediante una form, il cui json schema è servito dall'API /configs/schema



Lo schema della form soprariportata è il seguente
Premendo poi il bottone Salva, viene eseguita una POST /configs servita dal proxy, con payload
Per modificare una configurazione esistente, il proxy serve l'API PUT /configs/{config_id} e PATCH /configs/{config_id}
Per eliminare una configurazione esistente, il proxy serve l'API DELETE /configs/{config_id} . In questo caso l'eliminazione è una soft-delete, ovvero la configurazione viene semplicemente disattivata settando il parametro active a false.
Swagger di esempio
b212c4b4-db26-4404-8c7c-47dab99dd2e6Successful Response
""Validation Error
GET /payment-proxy/iris/v2/tenants/{tenant_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
{
"active": true,
"application_code": "",
"cert": "-----BEGIN CERTIFICATE REQUEST-----MIIB9TCCAWACAQAwgbgxGTAXBgNVBAoMEFF1b1ZhZGlzIExpbWl0ZWQxHDAaBgNVBAsME0RvY3VtZW50IERlcGFydG1lbnQxOTA3BgNVBAMMMFdoeSBhcmUgeW91IGRl-----END CERTIFICATE REQUEST-----",
"code": "CBugliano",
"e2e_code": "CBugliano",
"e2e_receiver_code": "RTIRIS",
"id": "b212c4b4-db26-4404-8c7c-47dab99dd2e6",
"name": "Comune di Bugliano",
"password": "PASSWORD",
"receiver_code": "RTIRIS",
"receiver_sil_id": "SIL_IRIS_ITR",
"sil_id": "SIL_CBUGLIANO_OPEN",
"tax_identification_number": "01234567891"
}b212c4b4-db26-4404-8c7c-47dab99dd2e6""Successful Response
Validation Error
PUT /payment-proxy/iris/v2/tenants/{tenant_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Content-Type: application/json
Accept: */*
Content-Length: 559
{
"active": true,
"application_code": "",
"cert": "-----BEGIN CERTIFICATE REQUEST-----MIIB9TCCAWACAQAwgbgxGTAXBgNVBAoMEFF1b1ZhZGlzIExpbWl0ZWQxHDAaBgNVBAsME0RvY3VtZW50IERlcGFydG1lbnQxOTA3BgNVBAMMMFdoeSBhcmUgeW91IGRl-----END CERTIFICATE REQUEST-----",
"code": "CBugliano",
"e2e_code": "CBugliano",
"e2e_receiver_code": "RTIRIS",
"name": "Comune di Bugliano",
"password": "PASSWORD",
"receiver_code": "RTIRIS",
"receiver_sil_id": "SIL_IRIS_ITR",
"sil_id": "SIL_CBUGLIANO_OPEN",
"stamp_code": "CBugliano_SIL_E_BOLLO",
"stamp_password": "PASSWORD",
"tax_identification_number": "01234567891"
}No content
b212c4b4-db26-4404-8c7c-47dab99dd2e6Successful Response
No content
Validation Error
DELETE /payment-proxy/iris/v2/tenants/{tenant_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
No content
b212c4b4-db26-4404-8c7c-47dab99dd2e6Successful Response
Validation Error
PATCH /payment-proxy/iris/v2/tenants/{tenant_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Content-Type: application/json
Accept: */*
Content-Length: 42
{
"tax_identification_number": "1234567891"
}No content
""Successful Response
Validation Error
POST /payment-proxy/iris/v2/tenants HTTP/1.1
Host: api.stanzadelcittadino.it
Content-Type: application/json
Accept: */*
Content-Length: 538
{
"tax_identification_number": "01234567891",
"name": "Comune di Bugliano",
"code": "CBugliano",
"e2e_code": "CBugliano",
"receiver_code": "RTIRIS",
"e2e_receiver_code": "RTIRIS",
"receiver_sil_id": "SIL_IRIS_ITR",
"sil_id": "SIL_CBUGLIANO_OPEN",
"password": "PASSWORD",
"cert": "-----BEGIN CERTIFICATE REQUEST-----MIIB9TCCAWACAQAwgbgxGTAXBgNVBAoMEFF1b1ZhZGlzIExpbWl0ZWQxHDAaBgNVBAsME0RvY3VtZW50IERlcGFydG1lbnQxOTA3BgNVBAMMMFdoeSBhcmUgeW91IGRl-----END CERTIFICATE REQUEST-----",
"application_code": "",
"active": true,
"id": "b212c4b4-db26-4404-8c7c-47dab99dd2e6"
}No content
Lista id delle configurazioni di pagamento
Successful Response
pagopaValidation Error
GET /payment-proxy/iris/v2/configs HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
[
{
"active": true,
"amount": 1,
"code": "CONTR_PRTPM",
"collection_data": "9/0101100IM/",
"description": "Abbonamento aree di sosta",
"expire_at": 180,
"notes": "",
"office_code": "FSE",
"office_description": "Fondo Sociale Europeo",
"payment_type": "pagopa",
"reason": "test",
"reference_code": "BOLLO_TIROCINI",
"remote_collection": {
"id": "23d57b65-5eb9-4f0a-a507-fbcf3057b248",
"type": "service"
},
"split": [
{
"split_amount": 0.5,
"split_assessment": "Accertamento c1",
"split_budget_chapter": "Capitolo di bilancio c1",
"split_code": "Codice c1",
"split_description": "Descrizione c1",
"split_id": "c_1",
"split_type": "Tipo c1"
}
],
"tenant_id": "b212c4b4-db26-4404-8c7c-47dab99dd2e6"
}
]pagopaSuccessful Response
Validation Error
POST /payment-proxy/iris/v2/configs HTTP/1.1
Host: api.stanzadelcittadino.it
Content-Type: application/json
Accept: */*
Content-Length: 770
{
"id": "3e68161e-9abb-43ac-99e6-39b0ece65b40",
"tenant_id": "b212c4b4-db26-4404-8c7c-47dab99dd2e6",
"payment_type": "pagopa",
"code": "CONTR_PRTPM",
"description": "Abbonamento aree di sosta",
"active": true,
"split": [
{
"split_id": "c_1",
"split_type": "Tipo c1",
"split_code": "Codice c1",
"split_description": "Descrizione c1",
"split_amount": 0.5,
"split_budget_chapter": "Capitolo di bilancio c1",
"split_assessment": "Accertamento c1"
}
],
"amount": 1,
"reason": "test",
"expire_at": 10,
"collection_data": "9/0101100IM/",
"office_code": "FSE",
"office_description": "Fondo Sociale Europeo",
"reference_code": "BOLLO_TIROCINI",
"notes": "",
"remote_collection": {
"id": "3e68161e-9abb-43ac-99e6-39b0ece65b40",
"type": "service"
},
"receiver": {
"tax_identification_number": "06363391001",
"name": "Agenzia delle Entrate"
}
}No content
23d57b65-5eb9-4f0a-a507-fbcf3057b248Successful Response
pagopaValidation Error
GET /payment-proxy/iris/v2/configs/{config_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
{
"active": true,
"amount": 1,
"code": "CONTR_PRTPM",
"collection_data": "9/0101100IM/",
"description": "Abbonamento aree di sosta",
"expire_at": 180,
"notes": "",
"office_code": "FSE",
"office_description": "Fondo Sociale Europeo",
"payment_type": "pagopa",
"reason": "test",
"reference_code": "BOLLO_TIROCINI",
"remote_collection": {
"id": "23d57b65-5eb9-4f0a-a507-fbcf3057b248",
"type": "service"
},
"split": [
{
"split_amount": 0.5,
"split_assessment": "Accertamento c1",
"split_budget_chapter": "Capitolo di bilancio c1",
"split_code": "Codice c1",
"split_description": "Descrizione c1",
"split_id": "c_1",
"split_type": "Tipo c1"
}
],
"tenant_id": "b212c4b4-db26-4404-8c7c-47dab99dd2e6"
}23d57b65-5eb9-4f0a-a507-fbcf3057b248pagopaSuccessful Response
Validation Error
PUT /payment-proxy/iris/v2/configs/{config_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Content-Type: application/json
Accept: */*
Content-Length: 727
{
"active": true,
"amount": 1,
"code": "CONTR_PRTPM",
"collection_data": "9/0101100IM/",
"description": "Abbonamento aree di sosta",
"expire_at": 180,
"notes": "",
"office_code": "FSE",
"office_description": "Fondo Sociale Europeo",
"payment_type": "pagopa",
"reason": "test",
"receiver": {
"name": "Agenzia delle Entrate",
"tax_identification_number": "06363391001"
},
"reference_code": "BOLLO_TIROCINI",
"remote_collection": {
"id": "3e68161e-9abb-43ac-99e6-39b0ece65b40",
"type": "service"
},
"split": [
{
"split_amount": 0.5,
"split_assessment": "Accertamento c1",
"split_budget_chapter": "Capitolo di bilancio c1",
"split_code": "Codice c1",
"split_description": "Descrizione c1",
"split_id": "c_1",
"split_type": "Tipo c1"
}
],
"tenant_id": "b212c4b4-db26-4404-8c7c-47dab99dd2e6"
}No content
23d57b65-5eb9-4f0a-a507-fbcf3057b248Successful Response
No content
Validation Error
DELETE /payment-proxy/iris/v2/configs/{config_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
No content
23d57b65-5eb9-4f0a-a507-fbcf3057b248Successful Response
Validation Error
PATCH /payment-proxy/iris/v2/configs/{config_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Content-Type: application/json
Accept: */*
Content-Length: 589
{
"payment_type": "pagopa",
"code": "CONTR_PRTPM",
"description": "Abbonamento aree di sosta",
"active": true,
"split": [
{
"split_id": "c_1",
"split_type": "Tipo c1",
"split_code": "Codice c1",
"split_description": "Descrizione c1",
"split_amount": 0.5,
"split_budget_chapter": "Capitolo di bilancio c1",
"split_assessment": "Accertamento c1"
}
],
"amount": 1,
"reason": "test",
"expire_at": 10,
"collection_data": "9/0101100IM/",
"office_code": "FSE",
"office_description": "Fondo Sociale Europeo",
"reference_code": "BOLLO_TIROCINI",
"notes": "",
"remote_collection": {
"id": "3e68161e-9abb-43ac-99e6-39b0ece65b40",
"type": "service"
}
}No content
Ultimo aggiornamento
È stato utile?