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 tenant

  • name: nome del tenant

  • tax_identification_number: codice fiscale dell'ente

Campo
Tipo
Obbligatorio
Validazione

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 valori pagopa o stamp, 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 quali application, service o altro.

  • amount: importo del pagamento configurato.

  • reason: causale del pagamento configurato

  • expire_at: numero di giorni di validità del pagamento

  • receiver.tax_identification_number: codice fiscale del beneficiario del pagamento, da usare in caso di pagamenti multibeneficiario

  • receiver.name: nome del beneficiario del pagamento, da usare in caso di pagamenti multibeneficiario

  • collection_data: tassonomia di pagoPA dei pagamenti

Campo
Tipo
Obbligatorio
Validazione

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

{
    "display": "form",
    "components": [
        {
            "label": "UUID del Tenant",
            "placeholder": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
            "spellcheck": false,
            "attributes": {
                "readonly": "readonly"
            },
            "hidden": true,
            "tableView": false,
            "validate": {
                "required": true
            },
            "key": "id",
            "type": "textfield",
            "input": true
        },
        {
            "label": "Nome dell'ente",
            "placeholder": "Comune di Bugliano",
            "tableView": true,
            "validate": {
                "required": true
            },
            "key": "name",
            "type": "textfield",
            "input": true
        },
        {
            "label": "Codice IPA dell'ente",
            "placeholder": "A000",
            "description": "Codice (tutto maiuscolo) assegnato all'Ente nel registro <a href='http://www.indicepa.gov.it' target='__blank'>indice PA</a>",
            "spellcheck": false,
            "tableView": true,
            "validate": {
                "required": true
            },
            "key": "IPA_code",
            "type": "textfield",
            "input": true
        },
        {
            "label": "Codice fiscale dell'ente",
            "placeholder": "123456789",
            "spellcheck": false,
            "key": "tax_identification_number",
            "type": "textfield",
            "validate": {
                "required": true
            },
            "input": true,
            "tableView": true
        },
        {
            "label": "Password",
            "placeholder": "************",
            "description": "Password assegnata da MyPay all\u2019Ente",
            "spellcheck": false,
            "tableView": false,
            "validate": {
                "required": true
            },
            "key": "password",
            "type": "textfield",
            "input": true
        },
        {
            "label": "Password carrello dovuti",
            "placeholder": "************",
            "description": "Password assegnata all\u2019ente creditore. Tale password va richiesta all\u2019amministratore dell\u2019ente creditore.<br>ATTENZIONE: questo dato NON coincide con la password (principale) dell\u2019ente.",
            "spellcheck": false,
            "tableView": true,
            "key": "cart_password",
            "type": "textfield",
            "input": true
        },
        {
            "label": "Codice applicazione",
            "spellcheck": false,
            "tableView": true,
            "key": "application_code",
            "type": "textfield",
            "input": true,
            "hidden": true,
            "defaultValue": "SDC"
        },
        {
            "label": "Abilitato",
            "key": "active",
            "type": "checkbox",
            "input": true,
            "hidden": true,
            "defaultValue": true
        },
        {
            "label": "Salva",
            "showValidations": false,
            "tableView": false,
            "key": "submit",
            "type": "button",
            "input": true
        }
    ]
}

Premendo poi il bottone Salva, viene eseguita una POST /tenants servita dal proxy, con payload

{
    "name": "Comune di Bugliano",
    "IPA_code": "p_tn",
    "tax_identification_number": "00337460224",
    "password": "4CKSILO7FQPZ",
    "cart_password": "",
    "application_code": "",
    "active": true,
    "enable_checkout": false,
    "id": "60e35f02-1509-408c-b101-3b1a28109329"
}

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

{
    "display": "form",
    "components": [
        {
            "label": "UUID del Tenant",
            "hidden": true,
            "placeholder": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
            "spellcheck": false,
            "attributes": {
                "readonly": "readonly"
            },
            "validate": {
                "required": true
            },
            "key": "tenant_id",
            "type": "textfield",
            "input": true
        },
        {
            "label": "Container",
            "tableView": false,
            "validateWhenHidden": false,
            "key": "remote_collection",
            "type": "container",
            "input": true,
            "components": [
                {
                    "label": "UUID del Servizio",
                    "placeholder": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
                    "applyMaskOn": "change",
                    "hidden": true,
                    "spellcheck": false,
                    "tableView": true,
                    "validate": {
                        "required": true
                    },
                    "validateWhenHidden": false,
                    "key": "id",
                    "attributes": {
                        "readonly": "readonly"
                    },
                    "type": "textfield",
                    "input": true
                },
                {
                    "label": "Tipo di Servizio",
                    "description": "Valori: application, service, altro",
                    "applyMaskOn": "change",
                    "hidden": true,
                    "tableView": true,
                    "validate": {
                        "required": true
                    },
                    "key": "type",
                    "type": "textfield",
                    "input": true
                }
            ]
        },
        {
            "label": "Tipo di pagamento",
            "widget": "choicesjs",
            "tableView": true,
            "defaultValue": "pagopa",
            "data": {
                "values": [
                    {
                        "label": "PagoPA",
                        "value": "pagopa"
                    },
                    {
                        "label": "Marca da Bollo Digitale",
                        "value": "stamp"
                    }
                ]
            },
            "validate": {
                "required": true
            },
            "key": "payment_type",
            "type": "select",
            "input": true
        },
        {
            "label": "Importo",
            "applyMaskOn": "change",
            "mask": false,
            "tableView": false,
            "delimiter": false,
            "requireDecimal": false,
            "inputFormat": "plain",
            "truncateMultipleSpaces": false,
            "validate": {
                "required": true,
                "custom": "valid = (data.payment_type == 'stamp' && data.amount == 16) || (data.payment_type == 'pagopa') ? true : 'In caso di marca da bollo digitale l\\'unico importo permesso è di 16 euro'"
            },
            "validateWhenHidden": false,
            "key": "amount",
            "type": "number",
            "input": true
        },
        {
            "label": "Causale",
            "applyMaskOn": "change",
            "tableView": true,
            "validate": {
                "required": true,
                "maxLength": 140
            },
            "key": "reason",
            "type": "textfield",
            "input": true
        },
        {
            "label": "Numero di giorni di validità del pagamento",
            "applyMaskOn": "change",
            "tableView": true,
            "validate": {
                "required": true
            },
            "key": "expire_at",
            "type": "number",
            "input": true
        },
        {
            "label": "Categoria",
            "widget": "choicesjs",
            "description": "Selezione dalla Tassonomia di PagoPA dei pagamenti.",
            "tableView": true,
            "dataSrc": "url",
            "data": {
                "url": "https://api.opencityitalia.it/datasets/pagopa",
                "headers": [
                    {
                        "key": "",
                        "value": ""
                    }
                ]
            },
            "validate": {
                "required": true
            },
            "dataType": "object",
            "idPath": "",
            "valueProperty": "DATI SPECIFICI DI INCASSO",
            "template": "<span>{{ item[\"NOME MACRO AREA\"] }}: {{ item[\"TIPO SERVIZIO\"] }}</span>",
            "customDefaultValue": "await new Promise(r => setTimeout(r, 1000));",
            "key": "collection_data",
            "type": "select",
            "disableLimit": false,
            "noRefreshOnScroll": false,
            "input": true
        },
        {
            "title": "Destinatario del pagamento",
            "theme": "info",
            "collapsible": false,
            "type": "panel",
            "label": "Destinatario del pagamento",
            "tableView": false,
            "input": true,
            "components": [
                {
                    "label": "Container",
                    "tableView": false,
                    "key": "receiver",
                    "type": "container",
                    "input": true,
                    "components": [
                        {
                            "label": "Codice fiscale destinatario",
                            "applyMaskOn": "change",
                            "tableView": true,
                            "key": "tax_identification_number",
                            "type": "textfield",
                            "validate": {
                                "required": true
                            },
                            "input": true
                        },
                        {
                            "label": "Nome destinatario",
                            "applyMaskOn": "change",
                            "tableView": true,
                            "key": "name",
                            "type": "textfield",
                            "validate": {
                                "required": true
                            },
                            "input": true
                        },
                        {
                            "label": "IBAN",
                            "applyMaskOn": "change",
                            "tableView": true,
                            "key": "iban",
                            "type": "textfield",
                            "input": true
                        },
                        {
                            "label": "Indirizzo",
                            "applyMaskOn": "change",
                            "tableView": true,
                            "key": "address",
                            "type": "textfield",
                            "input": true
                        },
                        {
                            "label": "Numero civico",
                            "applyMaskOn": "change",
                            "tableView": true,
                            "key": "building_number",
                            "type": "number",
                            "input": true
                        },
                        {
                            "label": "CAP",
                            "applyMaskOn": "change",
                            "tableView": true,
                            "key": "postal_code",
                            "type": "number",
                            "input": true
                        },
                        {
                            "label": "Città",
                            "applyMaskOn": "change",
                            "tableView": true,
                            "key": "town_name",
                            "type": "textfield",
                            "input": true
                        },
                        {
                            "label": "Provincia",
                            "applyMaskOn": "change",
                            "tableView": true,
                            "key": "country_subdivision",
                            "type": "textfield",
                            "input": true
                        },
                        {
                            "label": "Stato",
                            "applyMaskOn": "change",
                            "tableView": true,
                            "key": "country",
                            "type": "textfield",
                            "input": true
                        }
                    ]
                }
            ]
        },
        {
            "label": "Codice del servizio",
            "placeholder": "0000000",
            "description": "Codice del servizio fornito da efil",
            "validate": {
                "required": true
            },
            "key": "code",
            "type": "textfield",
            "input": true
        },
        {
            "label": "Descrizione",
            "placeholder": "Servizi accessori CIE",
            "description": "Descrizione del servizio",
            "validate": {
                "required": true
            },
            "key": "description",
            "type": "textfield",
            "input": true
        },
        {
            "label": "Codici di accertamento",
            "description": "Lista dei codici di accertamento associabili al servizio",
            "multiple": true,
            "defaultValue": [
                ""
            ],
            "key": "available_split_codes",
            "type": "textfield",
            "input": true
        },
        {
            "label": "Tipologia di dovuto",
            "placeholder": "Avviso, Bolletta, Verbale, Fattura",
            "description": "Specificare la tipologia del dovuto che si sta caricando (Es: Avviso, Bolletta, Verbale, Fattura, etc)",
            "spellcheck": false,
            "validate": {
                "required": true,
                "maxLength": 35
            },
            "key": "management_id",
            "type": "textfield",
            "input": true
        },
        {
            "label": "Codice iban dell'ente",
            "placeholder": "IT60 X054 2811 1010 0000 0123 456",
            "spellcheck": false,
            "key": "iban",
            "type": "textfield",
            "input": true
        },
        {
            "label": "Abilitato",
            "key": "active",
            "type": "checkbox",
            "input": true,
            "hidden": true,
            "defaultValue": true
        },
        {
            "label": "Bilancio",
            "tableView": false,
            "key": "split_enable",
            "type": "checkbox",
            "input": true,
            "defaultValue": true
        },
        {
            "label": "Bilancio",
            "reorder": false,
            "addAnotherPosition": "bottom",
            "layoutFixed": false,
            "enableRowGroups": false,
            "initEmpty": false,
            "tableView": false,
            "defaultValue": [
                {
                    "split_id": "",
                    "split_code": "",
                    "split_amount": 0
                }
            ],
            "key": "split",
            "conditional": {
                "show": true,
                "when": "split_enable",
                "eq": "true"
            },
            "type": "datagrid",
            "input": true,
            "components": [
                {
                    "label": "ID",
                    "description": "Identificativo univoco della voce di bilancio. Testo libero o uguale al codice.",
                    "placeholder": "2020/1",
                    "tableView": true,
                    "validate": {
                        "required": true
                    },
                    "key": "id",
                    "type": "textfield",
                    "input": true
                },
                {
                    "label": "Codice",
                    "description": "Questo campo deve essere uno di quelli della lista di codici di accertamento associabili al servizio",
                    "placeholder": "2020/1",
                    "tableView": true,
                    "redrawOn": "available_split_codes",
                    "validate": {
                        "required": true,
                        "custom": "if (input && !data.available_split_codes.includes(input)){\n  valid = \"Codice non configurato nella lista dei codici di accertamento disponibili\"\n}"
                    },
                    "key": "code",
                    "type": "textfield",
                    "input": true
                },
                {
                    "label": "Importo",
                    "description": "Importo della voce di bilancio. NB: La somma degli importi delle voci DEVE equivalere all'importo totale",
                    "placeholder": "16.00",
                    "validate": {
                        "required": true
                    },
                    "mask": false,
                    "tableView": false,
                    "delimiter": false,
                    "requireDecimal": false,
                    "inputFormat": "plain",
                    "truncateMultipleSpaces": false,
                    "key": "amount",
                    "type": "number",
                    "input": true
                }
            ]
        },
        {
            "label": "hidden",
            "calculateValue": "if (!data.split || data.split == 'undefined') {\n  data.split = []\n} else if (typeof data.split==='object' && Object.keys(data.split).length === 0) {\n  data.split = [];\n}",
            "key": "hidden",
            "type": "hidden",
            "input": true,
            "tableView": false
        },
        {
            "label": "Salva",
            "showValidations": false,
            "key": "submit",
            "type": "button",
            "input": true
        }
    ]
}

Premendo poi il bottone Salva, viene eseguita una POST /configs servita dal proxy, con payload

{
    "tenant_id": "60e35f02-1509-408c-b101-3b1a28109329",
    "code": "0000087",
    "description": "Abbonamento aree di sosta",
    "payment_type": "pagopa",
    "amount": 1.34,
    "reason": "Pagamento immediato EFIL [CON BILANCIO]",
    "expire_at": 180,
    "remote_collection": {
        "id": "3bb9230d-b1e2-43f0-a80b-c3b64abff5f7",
        "type": "service"
    },
    "receiver": {
        "tax_identification_number": "00184280360",
        "name": "Comune di carpi",
        "iban": "IT49C0200823307000028474373",
        "address": "",
        "building_number": "",
        "postal_code": "",
        "town_name": "",
        "country_subdivision": "",
        "country": ""
    },
    "available_split_codes": [
        "2022/1",
        "2022/2"
    ],
    "split": [
        {
            "id": "2022/1",
            "code": "2022/1",
            "amount": 1.0
        },
        {
            "id": "2022/2",
            "code": "2022/2",
            "amount": 0.34
        }
    ],
    "management_id": "Test",
    "iban": "IT49C0200823307000028474373",
    "collection_data": "n/a",
    "active": true,
    "id": "3bb9230d-b1e2-43f0-a80b-c3b64abff5f7"
}

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

Get Tenant Form Schema

get
Responses
200

Successful Response

application/json
Responseany
get
/tenants/schema
GET /payment-proxy/iris/v2/tenants/schema HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
200

Successful Response

No content

Options Tenant Schema

options
Responses
200

Successful Response

application/json
Responseany
options
/tenants/schema
OPTIONS /payment-proxy/iris/v2/tenants/schema HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
200

Successful Response

No content

Get Tenant Configuration

get
Path parameters
tenant_idstring · uuidRequiredExample: b212c4b4-db26-4404-8c7c-47dab99dd2e6
Responses
200

Successful Response

application/json
get
/tenants/{tenant_id}
GET /payment-proxy/iris/v2/tenants/{tenant_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
{
  "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"
}

Update Tenant Configuration

put
Path parameters
tenant_idstring · uuidRequiredExample: b212c4b4-db26-4404-8c7c-47dab99dd2e6
Body
tax_identification_numberstringRequired
namestringOptional
codestringRequired
e2e_codestringOptional
sil_idstringRequired
receiver_codestringOptional
e2e_receiver_codestringOptional
receiver_sil_idstringOptional
passwordstringRequired
certstringRequired
application_codestringOptionalDefault: ""
activebooleanRequired
stamp_codestringOptional
stamp_passwordstringOptional
Responses
200

Successful Response

application/json
Responseany
put
/tenants/{tenant_id}
PUT /payment-proxy/iris/v2/tenants/{tenant_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Content-Type: application/json
Accept: */*
Content-Length: 559

{
  "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",
  "password": "PASSWORD",
  "stamp_code": "CBugliano_SIL_E_BOLLO",
  "stamp_password": "PASSWORD",
  "sil_id": "SIL_CBUGLIANO_OPEN",
  "cert": "-----BEGIN CERTIFICATE REQUEST-----MIIB9TCCAWACAQAwgbgxGTAXBgNVBAoMEFF1b1ZhZGlzIExpbWl0ZWQxHDAaBgNVBAsME0RvY3VtZW50IERlcGFydG1lbnQxOTA3BgNVBAMMMFdoeSBhcmUgeW91IGRl-----END CERTIFICATE REQUEST-----",
  "application_code": "",
  "active": true
}

No content

Delete Tenant

delete
Path parameters
tenant_idstring · uuidRequiredExample: b212c4b4-db26-4404-8c7c-47dab99dd2e6
Responses
204

Successful Response

No content

delete
/tenants/{tenant_id}
DELETE /payment-proxy/iris/v2/tenants/{tenant_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*

No content

Update Existing Tenant Configuration

patch
Path parameters
tenant_idstring · uuidRequiredExample: b212c4b4-db26-4404-8c7c-47dab99dd2e6
Body
object · NewConfigurationOptional
Responses
200

Successful Response

application/json
Responseany
patch
/tenants/{tenant_id}
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

Options Tenant Id

options
Responses
200

Successful Response

application/json
Responseany
options
/tenants/{tenant_id}
OPTIONS /payment-proxy/iris/v2/tenants/{tenant_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
200

Successful Response

No content

Save Tenant Configuration

post
Body
tax_identification_numberstringRequired
namestringOptional
codestringRequired
e2e_codestringOptional
sil_idstringRequired
receiver_codestringOptional
e2e_receiver_codestringOptional
receiver_sil_idstringOptional
passwordstringRequired
certstringRequired
application_codestringOptionalDefault: ""
activebooleanRequired
stamp_codestringOptional
stamp_passwordstringOptional
idstring · uuidRequired
Responses
201

Successful Response

application/json
Responseany
post
/tenants
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

Options Tenants

options
Responses
200

Successful Response

application/json
Responseany
options
/tenants
OPTIONS /payment-proxy/iris/v2/tenants HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
200

Successful Response

No content

Get Config Form Schema

get
Responses
200

Successful Response

application/json
Responseany
get
/configs/schema
GET /payment-proxy/iris/v2/configs/schema HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
200

Successful Response

No content

Options Config Schema

options
Responses
200

Successful Response

application/json
Responseany
options
/configs/schema
OPTIONS /payment-proxy/iris/v2/configs/schema HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
200

Successful Response

No content

Get Payment Configurations List

get
Query parameters
config_idsstring · uuid[]Optional

Lista id delle configurazioni di pagamento

Responses
200

Successful Response

application/json
get
/configs
GET /payment-proxy/iris/v2/configs HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
[
  {
    "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": 180,
    "collection_data": "9/0101100IM/",
    "office_code": "FSE",
    "office_description": "Fondo Sociale Europeo",
    "reference_code": "BOLLO_TIROCINI",
    "notes": "",
    "remote_collection": {
      "id": "23d57b65-5eb9-4f0a-a507-fbcf3057b248",
      "type": "service"
    }
  }
]

Save Payment Configuration

post
Body
tenant_idstring · uuidRequired
payment_typestringOptionalDefault: pagopa
codestringOptional
descriptionstringOptional
amountnumberRequired
reasonstring · max: 140Optional
expire_atintegerRequired
collection_datastringRequired
activebooleanRequired
office_codestringOptional
office_descriptionstringOptional
reference_codestringOptional
notesstringOptional
idstring · uuidOptional
Responses
201

Successful Response

application/json
Responseany
post
/configs
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

Options Configs

options
Responses
200

Successful Response

application/json
Responseany
options
/configs
OPTIONS /payment-proxy/iris/v2/configs HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
200

Successful Response

No content

Get Payment Configuration

get
Path parameters
config_idstring · uuidRequiredExample: 23d57b65-5eb9-4f0a-a507-fbcf3057b248
Responses
200

Successful Response

application/json
get
/configs/{config_id}
GET /payment-proxy/iris/v2/configs/{config_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
{
  "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": 180,
  "collection_data": "9/0101100IM/",
  "office_code": "FSE",
  "office_description": "Fondo Sociale Europeo",
  "reference_code": "BOLLO_TIROCINI",
  "notes": "",
  "remote_collection": {
    "id": "23d57b65-5eb9-4f0a-a507-fbcf3057b248",
    "type": "service"
  }
}

Update Payment Configuration

put
Path parameters
config_idstring · uuidRequiredExample: 23d57b65-5eb9-4f0a-a507-fbcf3057b248
Body
tenant_idstring · uuidRequired
payment_typestringOptionalDefault: pagopa
codestringOptional
descriptionstringOptional
amountnumberRequired
reasonstring · max: 140Optional
expire_atintegerRequired
collection_datastringRequired
activebooleanRequired
office_codestringOptional
office_descriptionstringOptional
reference_codestringOptional
notesstringOptional
Responses
200

Successful Response

application/json
Responseany
put
/configs/{config_id}
PUT /payment-proxy/iris/v2/configs/{config_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Content-Type: application/json
Accept: */*
Content-Length: 727

{
  "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": 180,
  "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

Delete Config

delete
Path parameters
config_idstring · uuidRequiredExample: 23d57b65-5eb9-4f0a-a507-fbcf3057b248
Responses
204

Successful Response

No content

delete
/configs/{config_id}
DELETE /payment-proxy/iris/v2/configs/{config_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*

No content

Update Existing Payment Configuration

patch
Path parameters
config_idstring · uuidRequiredExample: 23d57b65-5eb9-4f0a-a507-fbcf3057b248
Body
object · NewConfigurationOptional
Responses
200

Successful Response

application/json
Responseany
patch
/configs/{config_id}
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

Options Config Id

options
Responses
200

Successful Response

application/json
Responseany
options
/configs/{config_id}
OPTIONS /payment-proxy/iris/v2/configs/{config_id} HTTP/1.1
Host: api.stanzadelcittadino.it
Accept: */*
200

Successful Response

No content

Last updated

Was this helpful?