> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Authorize.Net

> Resources, examples, configuration and evidence for Authorize.Net.

Use the `@bijection/connectors/authorize-net` entrypoint to declare Authorize.Net resources.

## Availability

This page describes the pinned source package. Published availability is unestablished for this artifact. [Source build and package availability](https://docs.bijection.com/client/sdk-distribution.md).

## Resources and modes

| Resource | Mode | Description |
| - | - | - |
| Settled batches | `pull` | Settled batch list over carried 31-day settlement windows |
| Settled transactions | `pull` | Transactions of each settled batch, 1,000 per page, over carried settlement windows |

Declare a resource in application code, then bind deployment-specific settings and credentials. See [typed resources](https://docs.bijection.com/integrations/resources.md), [connections](https://docs.bijection.com/integrations/connections.md) and [source inspection](https://docs.bijection.com/integrations/cli.md).

## Settled batches

### pull: Settled batch list over carried 31-day settlement windows

The following example matches configuration `standard`.

```ts theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
import { authorizeNet } from "@bijection/connectors/authorize-net";
export const batches = authorizeNet.batches.pull({ start: "2026-01-01" });
```

> **Inferred record types**
>
> ```ts theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> Resource without an operational record table
> ```

#### Configuration: standard

Case: `authorize-net/batches/pull/standard`.

Connection and resource configuration are declared by this exact case.

Credential kind: `authorize-net`. Keep credential material in the private credential inventory.

Inspect the complete configuration contract below for settings and conditional requirements.

> **Complete configuration contract**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "setup": [],
>   "resource": {
>     "access": {},
>     "defaults": {},
>     "connector": "authorize-net",
>     "output": {
>       "kind": "single",
>       "collection": "batches"
>     },
>     "credential_kind": "authorize-net",
>     "connection_fields": [],
>     "address": {
>       "kind": "fixed",
>       "url": "https://api.authorize.net/"
>     }
>   },
>   "connection_setup": {
>     "type": "object",
>     "value": {}
>   },
>   "execution": null
> }
> ```

Native admission analysis is available for this exact declaration.

**Collection: batches**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Repeated observations of current records |
| Deletions | Deletion detection unsupported |
| Resume | No continuation |
| Gap | Not applicable |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {
>       "batches": {
>         "200": {
>           "placement": "retained_bytes",
>           "interpretation": "json",
>           "projectsBeforeRetention": false,
>           "retainedBodyLimitBytes": "524288",
>           "fileLimitBytes": null
>         }
>       }
>     },
>     "nativeInputLimitBytes": null,
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "exchange batches",
>           "limitBytes": null
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "observations",
>   "deletions": "unsupported",
>   "resume": "none",
>   "retentionMs": null,
>   "gap": "not_applicable",
>   "limits": {
>     "http_response_bytes": "524288"
>   },
>   "restrictions": [],
>   "commands": {}
> }
> ```

> **Commands, occurrences and artifacts**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "records": {
>     "batches": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {
>             "batches": {
>               "200": {
>                 "placement": "retained_bytes",
>                 "interpretation": "json",
>                 "projectsBeforeRetention": false,
>                 "retainedBodyLimitBytes": "524288",
>                 "fileLimitBytes": null
>               }
>             }
>           },
>           "nativeInputLimitBytes": null,
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "exchange batches",
>                 "limitBytes": null
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "observations",
>         "deletions": "unsupported",
>         "resume": "none",
>         "retentionMs": null,
>         "gap": "not_applicable",
>         "limits": {
>           "http_response_bytes": "524288"
>         },
>         "restrictions": [],
>         "commands": {}
>       }
>     }
>   },
>   "occurrences": null,
>   "artifacts": {
>     "raw_archive": false,
>     "native_file_transfer_limit_bytes": null,
>     "external_versions": false,
>     "files": {}
>   },
>   "commands": {}
> }
> ```

**Recorded checks**

| Requirement | Scope | Evidence | Result |
| - | - | - | - |
| page-publication-recovery | \{"kind":"collection","name":"batches"} | Fixture: ./src/connectors/authorize-net/fixtures/batch-window\.json | passed (2026-10-24T21:36:11.986Z) |
| page-publication-recovery | \{"kind":"collection","name":"batches"} | Native test: integrations/acquisition/acquisition\_windows\_preserve\_sequences\_and\_restart\_fences\_old\_work (shared\_engine) | Execution result unavailable |
| identity-account | \{"kind":"connection"} | Fixture: ./src/connectors/authorize-net/fixtures/identity.json | passed (2026-10-24T21:36:11.987Z) |

Hosted qualification: **unestablished for this catalog configuration**. Installed connections report their own identity, authority and current status.

## Settled transactions

### pull: Transactions of each settled batch, 1,000 per page, over carried settlement windows

The following example matches configuration `refreshed`.

```ts theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
import { authorizeNet } from "@bijection/connectors/authorize-net";
export const transactions = authorizeNet.transactions.pull({
  start: "2026-01-01",
  refreshEvery: { hours: 24 },
});
```

> **Inferred record types**
>
> ```ts theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> Resource without an operational record table
> ```

#### Configuration: standard

Case: `authorize-net/transactions/pull/standard`.

Connection and resource configuration are declared by this exact case.

Credential kind: `authorize-net`. Keep credential material in the private credential inventory.

Inspect the complete configuration contract below for settings and conditional requirements.

> **Complete configuration contract**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "setup": [],
>   "resource": {
>     "access": {},
>     "defaults": {},
>     "connector": "authorize-net",
>     "output": {
>       "kind": "single",
>       "collection": "transactions"
>     },
>     "credential_kind": "authorize-net",
>     "connection_fields": [],
>     "address": {
>       "kind": "fixed",
>       "url": "https://api.authorize.net/"
>     }
>   },
>   "connection_setup": {
>     "type": "object",
>     "value": {}
>   },
>   "execution": null
> }
> ```

Native admission analysis is available for this exact declaration.

**Collection: transactions**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Repeated observations of current records |
| Deletions | Deletion detection unsupported |
| Resume | No continuation |
| Gap | Not applicable |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {
>       "batches": {
>         "200": {
>           "placement": "retained_bytes",
>           "interpretation": "json",
>           "projectsBeforeRetention": false,
>           "retainedBodyLimitBytes": "524288",
>           "fileLimitBytes": null
>         }
>       },
>       "transactions": {
>         "200": {
>           "placement": "retained_bytes",
>           "interpretation": "json",
>           "projectsBeforeRetention": false,
>           "retainedBodyLimitBytes": "524288",
>           "fileLimitBytes": null
>         }
>       }
>     },
>     "nativeInputLimitBytes": null,
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "exchange batches",
>           "limitBytes": null
>         }
>       },
>       {
>         "id": "acquire.2",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "exchange transactions",
>           "limitBytes": null
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1",
>           "acquire.2"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "observations",
>   "deletions": "unsupported",
>   "resume": "none",
>   "retentionMs": null,
>   "gap": "not_applicable",
>   "limits": {
>     "http_response_bytes": "524288"
>   },
>   "restrictions": [],
>   "commands": {}
> }
> ```

> **Commands, occurrences and artifacts**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "records": {
>     "transactions": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {
>             "batches": {
>               "200": {
>                 "placement": "retained_bytes",
>                 "interpretation": "json",
>                 "projectsBeforeRetention": false,
>                 "retainedBodyLimitBytes": "524288",
>                 "fileLimitBytes": null
>               }
>             },
>             "transactions": {
>               "200": {
>                 "placement": "retained_bytes",
>                 "interpretation": "json",
>                 "projectsBeforeRetention": false,
>                 "retainedBodyLimitBytes": "524288",
>                 "fileLimitBytes": null
>               }
>             }
>           },
>           "nativeInputLimitBytes": null,
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "exchange batches",
>                 "limitBytes": null
>               }
>             },
>             {
>               "id": "acquire.2",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "exchange transactions",
>                 "limitBytes": null
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1",
>                 "acquire.2"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "observations",
>         "deletions": "unsupported",
>         "resume": "none",
>         "retentionMs": null,
>         "gap": "not_applicable",
>         "limits": {
>           "http_response_bytes": "524288"
>         },
>         "restrictions": [],
>         "commands": {}
>       }
>     }
>   },
>   "occurrences": null,
>   "artifacts": {
>     "raw_archive": false,
>     "native_file_transfer_limit_bytes": null,
>     "external_versions": false,
>     "files": {}
>   },
>   "commands": {}
> }
> ```

**Recorded checks**

| Requirement | Scope | Evidence | Result |
| - | - | - | - |
| page-publication-recovery | \{"kind":"collection","name":"transactions"} | Fixture: ./src/connectors/authorize-net/fixtures/transaction-page.json | passed (2026-10-24T21:36:11.988Z) |
| page-publication-recovery | \{"kind":"collection","name":"transactions"} | Fixture: ./src/connectors/authorize-net/fixtures/transaction-window-without-batches.json | passed (2026-10-24T21:36:11.988Z) |
| page-publication-recovery | \{"kind":"collection","name":"transactions"} | Fixture: ./src/connectors/authorize-net/fixtures/transaction-error-refused.json | passed (2026-10-24T21:36:11.989Z) |
| page-publication-recovery | \{"kind":"collection","name":"transactions"} | Native test: integrations/acquisition/acquisition\_windows\_preserve\_sequences\_and\_restart\_fences\_old\_work (shared\_engine) | Execution result unavailable |
| identity-account | \{"kind":"connection"} | Fixture: ./src/connectors/authorize-net/fixtures/identity.json | passed (2026-10-24T21:36:11.989Z) |

Hosted qualification: **unestablished for this catalog configuration**. Installed connections report their own identity, authority and current status.

#### Configuration: refreshed

Case: `authorize-net/transactions/pull/refreshed`.

Connection and resource configuration are declared by this exact case.

Credential kind: `authorize-net`. Keep credential material in the private credential inventory.

Inspect the complete configuration contract below for settings and conditional requirements.

> **Complete configuration contract**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "setup": [],
>   "resource": {
>     "access": {},
>     "defaults": {},
>     "connector": "authorize-net",
>     "output": {
>       "kind": "single",
>       "collection": "transactions"
>     },
>     "credential_kind": "authorize-net",
>     "connection_fields": [],
>     "address": {
>       "kind": "fixed",
>       "url": "https://api.authorize.net/"
>     }
>   },
>   "connection_setup": {
>     "type": "object",
>     "value": {}
>   },
>   "execution": null
> }
> ```

Native admission analysis is available for this exact declaration.

**Collection: transactions**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Repeated observations of current records |
| Deletions | Deletion detection unsupported |
| Resume | No continuation |
| Gap | Not applicable |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {
>       "batches": {
>         "200": {
>           "placement": "retained_bytes",
>           "interpretation": "json",
>           "projectsBeforeRetention": false,
>           "retainedBodyLimitBytes": "524288",
>           "fileLimitBytes": null
>         }
>       },
>       "details": {
>         "200": {
>           "placement": "retained_bytes",
>           "interpretation": "json",
>           "projectsBeforeRetention": false,
>           "retainedBodyLimitBytes": "524288",
>           "fileLimitBytes": null
>         }
>       },
>       "transactions": {
>         "200": {
>           "placement": "retained_bytes",
>           "interpretation": "json",
>           "projectsBeforeRetention": false,
>           "retainedBodyLimitBytes": "524288",
>           "fileLimitBytes": null
>         }
>       }
>     },
>     "nativeInputLimitBytes": null,
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "exchange batches",
>           "limitBytes": null
>         }
>       },
>       {
>         "id": "acquire.2",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "exchange details",
>           "limitBytes": null
>         }
>       },
>       {
>         "id": "acquire.3",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "exchange transactions",
>           "limitBytes": null
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1",
>           "acquire.2",
>           "acquire.3"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "observations",
>   "deletions": "unsupported",
>   "resume": "none",
>   "retentionMs": null,
>   "gap": "not_applicable",
>   "limits": {
>     "http_response_bytes": "524288"
>   },
>   "restrictions": [],
>   "commands": {}
> }
> ```

> **Commands, occurrences and artifacts**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "records": {
>     "transactions": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": true,
>       "reconciliation": true,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {
>             "batches": {
>               "200": {
>                 "placement": "retained_bytes",
>                 "interpretation": "json",
>                 "projectsBeforeRetention": false,
>                 "retainedBodyLimitBytes": "524288",
>                 "fileLimitBytes": null
>               }
>             },
>             "details": {
>               "200": {
>                 "placement": "retained_bytes",
>                 "interpretation": "json",
>                 "projectsBeforeRetention": false,
>                 "retainedBodyLimitBytes": "524288",
>                 "fileLimitBytes": null
>               }
>             },
>             "transactions": {
>               "200": {
>                 "placement": "retained_bytes",
>                 "interpretation": "json",
>                 "projectsBeforeRetention": false,
>                 "retainedBodyLimitBytes": "524288",
>                 "fileLimitBytes": null
>               }
>             }
>           },
>           "nativeInputLimitBytes": null,
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "exchange batches",
>                 "limitBytes": null
>               }
>             },
>             {
>               "id": "acquire.2",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "exchange details",
>                 "limitBytes": null
>               }
>             },
>             {
>               "id": "acquire.3",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "exchange transactions",
>                 "limitBytes": null
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1",
>                 "acquire.2",
>                 "acquire.3"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "observations",
>         "deletions": "unsupported",
>         "resume": "none",
>         "retentionMs": null,
>         "gap": "not_applicable",
>         "limits": {
>           "http_response_bytes": "524288"
>         },
>         "restrictions": [],
>         "commands": {}
>       }
>     }
>   },
>   "occurrences": null,
>   "artifacts": {
>     "raw_archive": false,
>     "native_file_transfer_limit_bytes": null,
>     "external_versions": false,
>     "files": {}
>   },
>   "commands": {}
> }
> ```

**Recorded checks**

| Requirement | Scope | Evidence | Result |
| - | - | - | - |
| page-publication-recovery | \{"kind":"collection","name":"transactions"} | Fixture: ./src/connectors/authorize-net/fixtures/transaction-page.json | passed (2026-10-24T21:36:11.989Z) |
| page-publication-recovery | \{"kind":"collection","name":"transactions"} | Fixture: ./src/connectors/authorize-net/fixtures/transaction-window-without-batches.json | passed (2026-10-24T21:36:11.990Z) |
| page-publication-recovery | \{"kind":"collection","name":"transactions"} | Fixture: ./src/connectors/authorize-net/fixtures/transaction-error-refused.json | passed (2026-10-24T21:36:11.990Z) |
| page-publication-recovery | \{"kind":"collection","name":"transactions"} | Native test: integrations/acquisition/acquisition\_windows\_preserve\_sequences\_and\_restart\_fences\_old\_work (shared\_engine) | Execution result unavailable |
| identity-account | \{"kind":"connection"} | Fixture: ./src/connectors/authorize-net/fixtures/identity.json | passed (2026-10-24T21:36:11.990Z) |

Hosted qualification: **unestablished for this catalog configuration**. Installed connections report their own identity, authority and current status.

## Provider guidance

Compiled declaration examples and configuration details are published in the [connector reference](https://docs.bijection.com/integrations/connectors/index).

Transaction reporting by settlement batch, declared from Authorize.Net's API
reference (read 2026-10-21).

## Connection and credential

The connection is fixed at `https://api.authorize.net/` with credential kind
`authorize-net` (`authorizeNet.credential`). The sandbox origin is
`https://apitest.authorize.net`; this recipe declares production only. The
operator configures the API login ID and transaction key as a body-fields
envelope; the recipe never declares it:

```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
{
  "kind": "body_fields",
  "fields": { "name": "<API login ID>", "transactionKey": "<transaction key>" },
  "member": "merchantAuthentication",
  "allowed_resource_origins": ["https://api.authorize.net"]
}
```

Every call is `POST /xml/v1/request.api` with a JSON body whose single
top-level member is the operation (`getSettledBatchListRequest`, ...). The host
writes `merchantAuthentication: {name, transactionKey}` as that member's first
field. No request here names `merchantAuthentication`.

Authorize.Net translates the JSON to XML, where element order is the schema's,
and the guest-built body's field order is not guaranteed to survive (bodies
pass through a value encoding that may sort keys). Every request therefore
names only fields whose alphabetical order is the schema order:

* `getSettledBatchListRequest`: `firstSettlementDate`, `lastSettlementDate`.
  `includeStatistics` (schema order before them) is omitted, so batch
  statistics are not read.
* `getTransactionListRequest`: `batchId`, then `paging` with `limit`,
  `offset`. `sorting` (schema order before `paging`) is omitted, so the
  listing is in Authorize.Net's default order.
* `getTransactionDetailsRequest`: `transId`.
* `getMerchantDetailsRequest`: nothing.

Identity is `getMerchantDetailsRequest`'s `gatewayId` (a numeric string naming
the gateway account). `authenticateTestRequest` answers `Ok` without naming
any account, so it is not used. The merchant name is not kept.

## What is read

* `batches.pull` reads `getSettledBatchListRequest` over windows of at most
  31 days (Authorize.Net's limit), bounds in UTC (`Z`), inclusive at both
  ends. A `lastSettlementDate` at `00:00:00` would include that whole day, so
  a window ends at `23:59:59` one second before the next window begins. A
  batch is keyed by `batchId` and keeps `settlementTimeUTC`,
  `settlementState` (`settledSuccessfully`, `settlementError` or
  `pendingSettlement`), `paymentMethod`, `marketType` and `product`.
* `transactions.pull` walks the same windows. For each it lists the settled
  batches (retained as data) and reads each batch's
  `getTransactionListRequest`, 1,000 per page; `paging.offset` is the 1-based
  page number, and a batch ends on a page shorter than 1,000 (or once
  `totalNumInResultSet`, when it is an integer, is reached). A transaction is
  keyed by `transId` and keeps `transactionStatus` as stated,
  `submitTimeUTC`, `settleAmount`, `accountType`, `accountNumber` (already
  masked by Authorize.Net, such as `XXXX1111`), `invoiceNumber` and the
  `batchId` it was listed under.
* With `refreshEvery`, every published transaction is read again by
  `getTransactionDetailsRequest`, which is how a status change outside the
  revisit window (an eCheck return, for example) is seen. The details answer
  is mapped onto the listing's fields: `payment.creditCard.cardType` or
  `eCheck` (for `payment.bankAccount`) as `accountType`, the masked card or
  bank account number, `order.invoiceNumber` and `batch.batchId`. That this
  mapping gives the same `accountType` spelling as the listing is unverified.
  An answer that is not `Ok`, names another transaction or no batch leaves the
  key unresolved.

## Passes and position

Both collections carry a JSON position (`sync.carry`). A pass walks from
`start` (first pass) or `revisitHours` (default 48, 1 to 744) before where the
last finished pass stopped, to the second the pass began, one window per
step, and a finished pass carries its end. A failed pass carries nothing.
While a transactions pass walks, its position holds the window, up to 100
batch ids still to read, the last batch fully read (`after`), whether more
batches were listed than held (`more`), and the page of the first held batch;
once the held ids are read, the window's batches are listed again and reading
continues after `after` (batch ids compare as integers). The position stays
far below 4,096 bytes.

## Answers and refusals

Every answer is HTTP 200 with `messages.resultCode` `Ok` or `Error`. A page
answering `Error` is refused, never published. The response contract also
classifies documented codes: `E00001` and `E00104` (processing error,
maintenance) are transient; `E00005` to `E00008` refuse the credential;
`E00011` is a credential without the Transaction Details API permission. An
empty listing is `Ok` with `I00004` and no list member, which reads as no rows.
Authorize.Net prefixes JSON answers with a UTF-8 byte order mark, which the
engine ignores when decoding.

## Exactness

Authorize.Net's JSON answers write `settleAmount` as a JSON number (`1018.88`,
`0.00`); its translated samples show a string. A fractional JSON number has
been through a double before any contract check sees it, so `settleAmount`
cannot be declared exact and is not exact by contract. The reader keeps a
string verbatim and a number as the shortest text that round-trips it, which
equals the decimal Authorize.Net sent, without trailing zeros (`0.00` becomes
`0`), whenever that decimal has at most 15 significant digits; Authorize.Net
documents amounts of up to 15 digits, and a number needing more is refused.
That argument is the recipe's, not the engine's.

## Finality

Authorize.Net's developer forum says a settle amount does not change once
settled; the API reference does not say so, and statuses can change (returned
eCheck items, for example), which is what `revisitHours` and `refreshEvery`
re-read. A batch's state can also move from `pendingSettlement`. Rows carry no
version (`version: none`): a re-read row replaces the observation. Nothing is
withdrawn.

## Limits and not built

* `firstSettlementDate` cannot precede January 1 two years before the current
  year; an older `start` fails the first pass.
* Authorize.Net publishes no rate limit, so no backoff or budget is declared.
* Unsettled transactions (`getUnsettledTransactionListRequest`), batch
  statistics, the sandbox origin and any write are not built.
* Webhooks are not built: `X-ANET-Signature` is an HMAC-SHA512 of the body and
  no ingress scheme computes SHA-512.

Nothing here has run against Authorize.Net or been qualified.

## Provider references

Provider references and prerequisites are maintained in the connector guidance above. No separate provider-documentation review date is recorded.

## Source and evidence

[Canonical connector source](https://github.com/bijectionhq/component-support/blob/b632604330ce9cbcfe17a5a680ef4fbe80f6f672/packages/connectors/src/connectors/authorize-net/README.md), [native analysis](https://github.com/bijectionhq/component-support/blob/b632604330ce9cbcfe17a5a680ef4fbe80f6f672/packages/connectors/contract-analysis.json) and [check receipts](https://github.com/bijectionhq/component-support/blob/b632604330ce9cbcfe17a5a680ef4fbe80f6f672/packages/connectors/evidence.json).

Connector artifact: `905888ea276a2a28e36981a79e8142b2547ea451c3e63162cb6915ad4a7d1305`.

The resource declaration examples above are compiled and compared with exact catalog declarations. Recorded checks apply only to their source, declaration and runtime identities. Configure a connection and inspect its status to establish deployment-specific readiness.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.